CN112650754A - 一种关系型数据库的数据全量导入Hive的方法 - Google Patents
一种关系型数据库的数据全量导入Hive的方法 Download PDFInfo
- Publication number
- CN112650754A CN112650754A CN202011551010.6A CN202011551010A CN112650754A CN 112650754 A CN112650754 A CN 112650754A CN 202011551010 A CN202011551010 A CN 202011551010A CN 112650754 A CN112650754 A CN 112650754A
- Authority
- CN
- China
- Prior art keywords
- hive
- relational database
- data
- field type
- importing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000013507 mapping Methods 0.000 claims abstract description 11
- 230000008676 import Effects 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 abstract description 10
- 238000007405 data analysis Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 15
- 238000011161 development Methods 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种关系型数据库的数据全量导入Hive的方法,涉及数据转换技术领域;采用string字段类型创建Hive中间表,将关系型数据库的数据导入Hive中间表,根据关系型数据库的数据表字段类型,将关系型数据库的表字段类型映射为Hive目标表的字段类型,创建Hive目标表,采用HiveSQL将Hive中间表的数据导入Hive目标表,基于Hive目标表进行数据分析。
Description
技术领域
本发明公开一种方法,涉及数据转换技术领域,具体地说是一种关系型数据库的数据全量导入Hive的方法。
背景技术
传统的数据大多存储在关系型数据库(如MySQL、Oracle等)中,这些关系型数据库能支持字符、数值等形式多样的数据类型,不同关系型数据库对字符、数值等数据类型的处理不尽相同。
目前大部分系统采用数据采集工具如Flume、NiFi等采集关系型数据库的数据并写入大数据存储Hive,在数据处理过程中仍然存在数据类型转换的问题,导致整个数据导入流程是有差异性的,无法形成一套流程来实现数据导入,增加了开发成本和运维成本。
发明内容
本发明针对现有技术的问题,提供一种关系型数据库的数据全量导入 Hive的方法,旨在简化各种关系型数据库的数据导入Hive时的复杂性。
本发明提出的具体方案是:
一种关系型数据库的数据全量导入Hive的方法,采用string字段类型创建Hive中间表,将关系型数据库的数据导入Hive中间表,
根据关系型数据库的数据表字段类型,将关系型数据库的表字段类型映射为Hive目标表的字段类型,创建Hive目标表,
采用HiveSQL将Hive中间表的数据导入Hive目标表,完成关系型数据库的数据全量导入Hive。
优选地,所述的一种关系型数据库的数据全量导入Hive的方法中参照关系型数据库的数据表定义Hive中间表,将关系型数据库的数据表结构转换为Hive的建表语句,采用string字段类型创建Hive中间表。
优选地,所述的一种关系型数据库的数据全量导入Hive的方法中定义 Hive数据库,根据关系型数据库的数据表字段类型,分析关系型数据库数据表支持的字段类型和Hive目标表的字段类型的映射关系,将关系型数据库的数据表结构转换为Hive的建表语句,创建Hive目标表。
优选地,所述的一种关系型数据库的数据全量导入Hive的方法中将关系型数据库的数据表中char字段类型及varchar字段类型映射为Hive目标表中string字段类型,将关系型数据库的数据表中numeric字段类型映射为Hive目标表的decimal字段类型。
一种关系型数据库的数据全量导入Hive的系统,包括包括建表模块及导入模块,建表模块包括Hive中间表构建模块和Hive目标表构建模块,
Hive中间表构建模块采用string字段类型创建Hive中间表,将关系型数据库的数据导入Hive中间表,
Hive目标表构建模块根据关系型数据库的数据表字段类型,将关系型数据库的表字段类型映射为Hive目标表的字段类型,创建Hive目标表,
导入模块采用HiveSQL将Hive中间表的数据导入Hive目标表,完成关系型数据库的数据全量导入Hive。
优选地,所述的一种关系型数据库的数据全量导入Hive的系统中建表模块参照关系型数据库的数据表定义Hive中间表,将关系型数据库的数据表结构转换为Hive的建表语句,采用string字段类型创建Hive中间表。
优选地,所述的一种关系型数据库的数据全量导入Hive的系统中建表模块定义Hive数据库,根据关系型数据库的数据表字段类型,分析关系型数据库数据表支持的字段类型和Hive目标表的字段类型的映射关系,将关系型数据库的数据表结构转换为Hive的建表语句,创建Hive目标表。
优选地,所述的一种关系型数据库的数据全量导入Hive的系统中建表模块将关系型数据库的数据表中char字段类型及varchar字段类型映射为 Hive目标表中string字段类型,将关系型数据库的数据表中numeric字段类型映射为Hive目标表的decimal字段类型。
一种关系型数据库的数据全量导入Hive的装置,包括至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行所述的一种关系型数据库的数据全量导入Hive的方法。
本发明的有益之处是:
本发明提供一种关系型数据库的数据全量导入Hive的方法,将关系型数据库的数据导入Hive中间表,将关系型数据库的表字段类型映射为Hive 目标表的字段类型,创建Hive目标表,采用HiveSQL将Hive中间表的数据导入Hive目标表,关系型数据库的数据全量导入Hive;通过本发明方法能够快速简便地完成关系型数据库内全量数据与Hive内数据的格式转换,过程简捷不易出错,能够达到一次开发,重复使用的效果,节省开发成本和运维成本。可广泛应用,尤其适合如零售行业等涉及金额的处理的场景,能够保证数值类型的数据精确。
附图说明
图1是本发明方法中数据转换示意图;
图2是本发明方法流程示意图。
图中①:创建Hive中间表:Hive中间表的字段类型采用string;将关系型数据库的数据导入Hive中间表。②:创建 Hive目标表:将关系型数据库的表字段类型映射为Hive目标表的字段类型;采用HiveSQL将Hive中间表的数据导入Hive目标表。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
每种关系型数据库(如MySQL、Oracle等)都支持多种数据类型(如字符类型、数值类型、日期类型等),当业务要求做数据汇聚以实现大数据分析的目的时,由于原有关系型数据库的表字段都具有明确的业务含义,所以将数据采集到大数据存储Hive时,也要求保留原始表字段类型,比如关系型数据库表中的数值类型的数据存储到Hive时仍要求是数值类型,能支持加、减、乘、除等数值型的函数计算。受限于每种关系型数据库、大数据存储Hive支持的数据类型不同,将关系型数据库的数据全量导入Hive时,对数据类型的处理也是不尽相同的,在这种差异性的约束下,数据导入Hive 的工作变得复杂且极易出错。
而本发明提供一种关系型数据库的数据全量导入Hive的方法,采用 string字段类型创建Hive中间表,将关系型数据库的数据导入Hive中间表,
根据关系型数据库的数据表字段类型,将关系型数据库的表字段类型映射为Hive目标表的字段类型,创建Hive目标表,
采用HiveSQL将Hive中间表的数据导入Hive目标表,完成关系型数据库的数据全量导入Hive。通过本发明方法能够快速简便地完成关系型数据库内全量数据与Hive内数据的格式转换,过程简捷不易出错,能够达到一次开发,重复使用的效果,节省开发成本和运维成本。可广泛应用,尤其适合如零售行业等涉及金额的处理的场景,能够保证数值类型的数据精确。
具体应用中,目前Hive支持的字符类型有VARCHAR、CHAR、STRING,而关系型数据库支持的字符类型也各有不同,如MySQL数据库支持的字符类型有TEXT等,Oracle数据库支持的字符类型有VARCHAR、CHAR、LONG等。
在本发明的一些实施例中,采用string字段类型创建Hive中间表, STRING类型的字段能够支持各种关系型数据库的字符类型的数据的存储,能够避免数据在从关系型数据库全量导入Hive数据库的过程中因数据类型转换导致的数值类型的数据的精度丢失;同时也能普遍适用于各种关系型数据库的各种数值类型,减少数据转换的开发成本,减少数值转换带来的维护成本,因此参照关系型数据库的表定义Hive中间表,例如某关系数据库的表结构如下:
CREATE TABLE`mydb`.`tbl_test`(
`co_code`varchar(16)NOT NULL,
`user_id`varchar(32)NOT NULL,
`summ_day`varchar(8)NOT NULL,
`print_time`numeric(18,6),
PRIMARY KEY(`co_code`,`user_id`)
);
则Hive中创建字段类型为string的表来存储,Hive中间表结构如下:
CREATE TABLE`mydbstr`.`tbl_test`(
`co_code`string,
`user_id`string,
`summ_day`string,
`print_time`string
)STORED AS PARQUET;
这个过程中不用解析关系型数据库的数据类型,可采用存储过程或编写代码将关系型数据库的表结构转换为Hive的建表语句,利用string字段类型完成Hive中间表的建立,并将将关系型数据库的数据导入Hive中间表。
在上述实施的基础上,在实际业务过程中,用户更期望Hive表字段类型是可以执行函数运算的,比如数值类型、日期类型等。本发明根据关系型数据库表的字段类型来处理Hive表字段。
其中定义Hive数据库,根据关系型数据库的表字段类型构建Hive目标表。分析具体的关系型数据库支持的字段类型和Hive字段类型的映射关系,确认关系型数据库的char、varchar等映射为Hive表的string,numeric 映射为Hive表的decimal等,采用存储过程或编写代码将关系型数据库的表结构转换为Hive的建表语句,其中,Hive建表语句中各字段的数据类型和关系型数据库表字段类型相关。
上述示例的某关系型数据库的表"mydb"."tbl_test"对应的Hive表结构,其中,关系型数据库的varchar映射为Hive的string,关系型数据库的numeric映射为Hive的decimal:
CREATE TABLE`mydb`.`tbl_test`(
`co_code`string,
`user_id`string,
`summ_day`string,
`print_time`decimal(18,6)
)STORED AS PARQUET;
在Hive中创建好表之后,采用HiveSQL从Hive中间表导入数据至Hive 目标表,采用HiveSQL自身特性,实现数据类型的转换。最终,用户的数据分析都是基于Hive目标表进行的。
HiveSQL示例如下:
insert into table `mydb`.`tbl_test`select*from `mydbstr`.`tbl_test`;
完成关系型数据库的数据全量导入Hive。利用本发明方法简化各种关系型数据库的数据导入Hive时的复杂性。能够达到一次开发,重复使用的效果,节省开发成本。
本发明还提供一种关系型数据库的数据全量导入Hive的系统,包括包括建表模块及导入模块,建表模块包括Hive中间表构建模块和Hive目标表构建模块,
Hive中间表构建模块采用string字段类型创建Hive中间表,将关系型数据库的数据导入Hive中间表,
Hive目标表构建模块根据关系型数据库的数据表字段类型,将关系型数据库的表字段类型映射为Hive目标表的字段类型,创建Hive目标表,
导入模块采用HiveSQL将Hive中间表的数据导入Hive目标表,完成关系型数据库的数据全量导入Hive。
上述系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
同时本发明提供一种关系型数据库的数据全量导入Hive的装置,包括至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行所述的一种关系型数据库的数据全量导入Hive的方法。
上述装置内的处理器的信息交互、执行可读程序过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
需要说明的是,上述较佳实施例中各流程和各系统装置结构中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
Claims (9)
1.一种关系型数据库的数据全量导入Hive的方法,其特征是采用string字段类型创建Hive中间表,将关系型数据库的数据导入Hive中间表,
根据关系型数据库的数据表字段类型,将关系型数据库的表字段类型映射为Hive目标表的字段类型,创建Hive目标表,
采用HiveSQL将Hive中间表的数据导入Hive目标表,完成关系型数据库的数据全量导入Hive。
2.根据权利要求1所述的一种关系型数据库的数据全量导入Hive的方法,其特征是参照关系型数据库的数据表定义Hive中间表,将关系型数据库的数据表结构转换为Hive的建表语句,采用string字段类型创建Hive中间表。
3.根据权利要求1或2所述的一种关系型数据库的数据全量导入Hive的方法,其特征是定义Hive数据库,根据关系型数据库的数据表字段类型,分析关系型数据库数据表支持的字段类型和Hive目标表的字段类型的映射关系,将关系型数据库的数据表结构转换为Hive的建表语句,创建Hive目标表。
4.根据权利要求3所述的一种关系型数据库的数据全量导入Hive的方法,其特征是将关系型数据库的数据表中char字段类型及varchar字段类型映射为Hive目标表中string字段类型,将关系型数据库的数据表中numeric字段类型映射为Hive目标表的decimal字段类型。
5.一种关系型数据库的数据全量导入Hive的系统,其特征是包括建表模块及导入模块,建表模块包括Hive中间表构建模块和Hive目标表构建模块,
Hive中间表构建模块采用string字段类型创建Hive中间表,将关系型数据库的数据导入Hive中间表,
Hive目标表构建模块根据关系型数据库的数据表字段类型,将关系型数据库的表字段类型映射为Hive目标表的字段类型,创建Hive目标表,
导入模块采用HiveSQL将Hive中间表的数据导入Hive目标表,完成关系型数据库的数据全量导入Hive。
6.根据权利要求5所述的一种关系型数据库的数据全量导入Hive的系统,其特征是建表模块参照关系型数据库的数据表定义Hive中间表,将关系型数据库的数据表结构转换为Hive的建表语句,采用string字段类型创建Hive中间表。
7.根据权利要求5或6所述的一种关系型数据库的数据全量导入Hive的系统,其特征是建表模块定义Hive数据库,根据关系型数据库的数据表字段类型,分析关系型数据库数据表支持的字段类型和Hive目标表的字段类型的映射关系,将关系型数据库的数据表结构转换为Hive的建表语句,创建Hive目标表。
8.根据权利要求7所述的一种关系型数据库的数据全量导入Hive的系统,其特征是建表模块将关系型数据库的数据表中char字段类型及varchar字段类型映射为Hive目标表中string字段类型,将关系型数据库的数据表中numeric字段类型映射为Hive目标表的decimal字段类型。
9.一种关系型数据库的数据全量导入Hive的装置,其特征是包括至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行权利要求1至4中任一所述的一种关系型数据库的数据全量导入Hive的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011551010.6A CN112650754A (zh) | 2020-12-24 | 2020-12-24 | 一种关系型数据库的数据全量导入Hive的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011551010.6A CN112650754A (zh) | 2020-12-24 | 2020-12-24 | 一种关系型数据库的数据全量导入Hive的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112650754A true CN112650754A (zh) | 2021-04-13 |
Family
ID=75360068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011551010.6A Pending CN112650754A (zh) | 2020-12-24 | 2020-12-24 | 一种关系型数据库的数据全量导入Hive的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112650754A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114490858A (zh) * | 2022-02-22 | 2022-05-13 | 北京科杰科技有限公司 | 一种大数据与rmdb的表结构类型转换系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170270590A1 (en) * | 2016-03-18 | 2017-09-21 | Palo Alto Research Center Incorporated | System and method for a real-time egocentric collaborative filter on large datasets |
CN109977110A (zh) * | 2019-04-28 | 2019-07-05 | 杭州数梦工场科技有限公司 | 数据清洗方法、装置及设备 |
CN110502585A (zh) * | 2019-08-30 | 2019-11-26 | 山东健康医疗大数据有限公司 | 一种可配置的MySql数据库间数据同步方法 |
CN111930835A (zh) * | 2020-07-16 | 2020-11-13 | 广州运达智能科技有限公司 | 一种城市轨道交通用智能运维大数据管理系统和方法 |
-
2020
- 2020-12-24 CN CN202011551010.6A patent/CN112650754A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170270590A1 (en) * | 2016-03-18 | 2017-09-21 | Palo Alto Research Center Incorporated | System and method for a real-time egocentric collaborative filter on large datasets |
CN109977110A (zh) * | 2019-04-28 | 2019-07-05 | 杭州数梦工场科技有限公司 | 数据清洗方法、装置及设备 |
CN110502585A (zh) * | 2019-08-30 | 2019-11-26 | 山东健康医疗大数据有限公司 | 一种可配置的MySql数据库间数据同步方法 |
CN111930835A (zh) * | 2020-07-16 | 2020-11-13 | 广州运达智能科技有限公司 | 一种城市轨道交通用智能运维大数据管理系统和方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114490858A (zh) * | 2022-02-22 | 2022-05-13 | 北京科杰科技有限公司 | 一种大数据与rmdb的表结构类型转换系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20050183002A1 (en) | Data and metadata linking form mechanism and method | |
Karnitis et al. | Migration of relational database to document-oriented database: structure denormalization and data transformation | |
CN105045817B (zh) | 基于事务日志的SQL Server数据库取证分析系统及方法 | |
CN108280056A (zh) | 一种Excel文件解析方法 | |
CN112199302A (zh) | 测试数据生成方法、系统及相应设备和存储介质 | |
CN112883042A (zh) | 数据更新及展示方法、装置、电子设备及存储介质 | |
CN110222071A (zh) | 一种数据查询方法、装置、服务器及存储介质 | |
CN111291025A (zh) | 逻辑模型支持多物理模型转换的方法及存储设备 | |
CN103246753A (zh) | 一种根据数据库结构生成实体元数据模型的方法 | |
CN111695330B (zh) | 生成表格的方法、装置、电子设备及计算机可读存储介质 | |
CN115617773A (zh) | 数据迁移的方法、装置和系统 | |
CN112650754A (zh) | 一种关系型数据库的数据全量导入Hive的方法 | |
US20070282804A1 (en) | Apparatus and method for extracting database information from a report | |
CN109684395B (zh) | 一种基于自然语言处理的可视化数据接口通用解析方法 | |
CN102866985B (zh) | 用于联机分析处理系统的数据格式化装置和方法 | |
CN117540343B (zh) | 一种数据融合方法与系统 | |
CN116126873B (zh) | 基于非标数据表的数据汇总方法、装置及存储介质 | |
CN110704635B (zh) | 一种知识图谱中三元组数据的转换方法及装置 | |
CN113988003B (zh) | Excel文件多个sheet内容按照指定配置自定义定向解析的方法 | |
CN110647518B (zh) | 一种数据源融合计算方法、组件及装置 | |
WO2005076900A2 (en) | Data and metadata linking form mechanism and method | |
CN109815297A (zh) | 一种不依赖关系数据库的树状结构存取运算系统 | |
CN110134957B (zh) | 一种基于语义分析的科技成果入库方法及系统 | |
CN116010439A (zh) | 一种可视化中文sql系统及构建查询方法 | |
CN115114297A (zh) | 数据轻量存储及查找方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210413 |
|
RJ01 | Rejection of invention patent application after publication |