CN107704597A - 关系型数据库至Hive的ETL脚本创建方法 - Google Patents
关系型数据库至Hive的ETL脚本创建方法 Download PDFInfo
- Publication number
- CN107704597A CN107704597A CN201710953948.2A CN201710953948A CN107704597A CN 107704597 A CN107704597 A CN 107704597A CN 201710953948 A CN201710953948 A CN 201710953948A CN 107704597 A CN107704597 A CN 107704597A
- Authority
- CN
- China
- Prior art keywords
- data
- etl
- relevant database
- hive
- tables
- 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
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/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- 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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
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)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种关系型数据库至Hive的ETL脚本创建方法,所述方法包含以下步骤:获取数据库元数据信息;快速识别关系型数据库中各数据表的特征分类;根据所属分类为各数据表自动创建ETL脚本;通过模拟访问技术或者服务调用方式将生成的ETL脚本注册到调度平台中。本发明自定义了数据表与ETL相关的两个维度特征,并可快速将数据表特征归类,在进行批量关系型数据表到Hive的ETL操作时,利用定义好的脚本模板,可以高效地为各数据表自动创建相应的ETL脚本,并提交到调度平台,进而极大地提高数据迁移效率。
Description
技术领域
本发明属于数据库领域,尤其涉及一种关系型数据库至Hive的ETL脚本创建方法。
背景技术
伴随着信息化时代的到来,数据规模急速膨胀,分布式大数据存储和处理技术也应运而生。作为建设开源企业级数据仓库中坚力量的Hive(基于Hadoop的数据库工件),因其强大的存储和计算能力,是数据工作人员尤为倚重的数据源之一。落地到Hive的数据,一般来自于关系型数据库、NoSQL数据库(泛指非关系型数据库)、消息队列等,其中关系型数据库由于其事务支持特性和与应用系统的成熟衔接,是应用业务数据落地的不二之选。因此,从关系型数据库到Hive的ETL(Extract,Transform,Load,抽取,转换,加载)是目前数据迁移最主要方式之一。而关系型数据库的数据的特征分类有多种,例如,关系型数据库的数据可以分为日志型数据或业务型数据,也可以分为静态数据或动态数据。针对不同特征分类的数据,有不同策略的ETL操作。在进行批量关系型数据库到Hive的ETL操作时,为了对某一关系型数据库的数据进行操作,同时避免影响其他数据库访问和应用,ETL工程师往往会花费精力,针对不同特征分类的数据手工配置相应的ETL脚本,尤其在数据库中数据量(例如数据表的数量)非常大的情况下,需要针对每张数据表创建相应的ETL脚本,效率很低、成本很高。
发明内容
本发明要解决的技术问题是:针对现有技术中,进行批量关系型数据库到Hive的ETL操作时,手动编写相应的ETL脚本效率低、时间成本高的缺陷,提供一种关系型数据库至Hive的ETL脚本创建方法。
本发明通过以下技术方案解决上述技术问题:一种关系型数据库至Hive的ETL脚本创建方法,所述关系型数据库至Hive的ETL脚本创建方法包含以下步骤:
S1、识别关系型数据库中的数据表的特征分类;
S2、根据识别出的特征分类为所述关系型数据库数据表创建ETL脚本;
S3、将创建的ETL脚本注册至调度平台进行ETL作业。
较佳地,S1包含:根据所述关系型数据库的动态管理系统表的统计信息,识别所述数据表的特征分类是日志型还是业务型。
较佳地,S1包含:根据所述关系型数据库的动态管理系统表的统计信息,识别所述数据表的特征分类是动态还是静态。
较佳地,所述统计信息包含所述关系型数据库中的数据的变更的次数,所述变更包含、数据删除、数据更新中的至少一项;
S1包含:根据所述变更的次数,识别所述数据表的特征分类是日志型还是业务型。
较佳地,所述统计信息包含所述关系型数据库中的数据表的记录数和大小;
S1包含:根据所述数据表的记录数和大小,识别所述特征分类是动态还是静态。
较佳地,所述关系型数据库数据表的取数的时间字段为随数据更新而更新的时间字段,该字段必须在索引列或者联合索引的第一列;
S1包含:获取所述关系型数据库的时间字段,根据所述时间字段指定数据表取数的时间范围。
较佳地,S3包含:获取调度平台的注册方式,根据所述注册方式将生成的ETL脚本提交到调度平台。
较佳地,所述注册方式包含模拟用户登录的方式。
较佳地,所述注册方式包含调用作业调度平台服务的方式。
本发明的积极进步效果在于:通过本发明的关系型数据库至Hive的ETL脚本方法,可以快速识别关系型数据库的数据表的分类特征,进行批量关系型数据库到Hive的ETL操作时,可以快速高效地为关系型数据库创建相应的ETL脚本,进而提高数据迁移的效率。
附图说明
图1为实施例1的关系型数据库至Hive的ETL脚本创建方法的流程图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本发明的关系型数据库至Hive的ETL脚本方法,如图1所示,包含以下步骤:
S101、识别关系型数据库中的数据的特征分类。
关系型数据表的数据按照是否更新角度可以分为两类:一类为插入表后不会更新(即不会对表中数据进行删除或更新操作)的日志型数据;另一类为插入表后会更新(即会对表中数据进行删除或更新)的业务性数据。针对这两类数据,ETL至Hive的方式有所不同。对日志型数据,每天的ETL任务为将前一天产生的数据迁移到Hive对应的分区;而对业务型数据,每天的任务则是将前一天所有改动的数据(即发生数据新增、数据更新的数据)迁移至Hive,并和最近历史数据归并去重(merge)形成最新的分区以保证Hive中的数据状态为最接近关系型数据表。
根据上述日志型数据和业务型数据的不同特性,根据关系型数据库的动态管理系统表的统计信息,可以识别关系型数据库中的数据表的分类特征。因此,作为一种较佳的实施例,在S101中,根据所述关系型数据库的动态管理系统表的统计信息,识别所述特征分类是日志型还是业务型。具体地,所述统计信息包含所述关系型数据库中的数据的变更的次数,所述变更包含数据删除、数据更新。每当进行数据删除、数据更新操作,所述变更的次数的数值都会增加1。因为日志型数据不会发生变更,而业务型数据会发生变更,因此,变更的次数为0的数据,为日志型数据,而变更的次数不为0的数据为业务型数据。
S102、根据识别出的特征分类为所述关系型数据库创建ETL脚本。具体地,获取数据库名、认证信息、作业调度策略等,并结合识别出的特征分类是日志型还是业务型,整合成参数,针对选取的ETL工具,为关系型数据库数据表创建对应的ETL脚本。目前开源社区主要有Sqoop(用来将Hadoop和关系型数据库中的数据相互转移的工具。Hadoop:由Apache基金会所开发的分布式系统基础架构)和DataX(在异构的数据库/文件系统之间高速交换数据的工具)这两种从关系型数据库ETL到Hive的工具,可以根据这两种工具的特性各自定义相关参数,创建相应的执行脚本。较佳地,可以使用软件手段根据识别出的特征分类,并获取数据库的数据表元数据信息以及其他参数,批量创建ETL脚本。
S103、将创建的ETL脚本注册至调度平台进行ETL作业。
具体实施中,S103中包括:获取调度平台的注册方式,根据所述注册方式将生成的ETL脚本提交到调度平台。其中,调度平台的注册方式包含模拟用户登录的方式或调用作业调度平台服务的方式。
如果ETL作业需要运行在作业调度平台,如Zeus(一个完整的Hadoop的作业平台)平台上,通过调度平台公开的作业(Job)配置API(Application Programming Interface,应用程序编程接口)或者模拟用户登录的方式,可以将ETL作业注册提交上去,设置好相应的执行时间点和频率;如不需要提交到作业调度平台,则可以在一台ETL工具客户端的节点上配置相应的定期作业。
将ETL脚本在Zeus平台上注册时,可以采用两种方案注册作业:一种为模拟用户登录的方式,通过分析Zeus平台的网络请求关系,提交适当的参数至对应的URL(Uniform/Universal Resource Locator,统一资源定位符);另一种为调用Zeus提交Job(作业)的服务(即调用作业调度平台服务的方式)。两种方案均可实现ETL作业的注册。
通过本发明的关系型数据库至Hive的ETL脚本创建方法,可以快速识别关系型数据库的数据的分类特征,进行批量关系型数据库数据表到Hive的ETL操作时,可以快速高效地为关系型数据库数据表创建相应的ETL脚本。进而在作业调度平台上运行所述ETL脚本,从而完成数据迁移,因此本发明提高了数据迁移的效率。
实施例2
本实施例的数据库脚本创建方法,如图1所示,包含以下步骤:
S101、识别关系型数据库中的数据的特征分类。
关系型数据表的数据从数据写入频率可以分为静态数据和动态数据。静态数据的特点是数据更新迭代得较慢,比如供应商数据,一旦录入以后,更新得不频繁;而动态数据则会随着业务系统流量的增加而增加。这样造成两类数据对应的Hive的ETL方式也有所不同。静态数据需要始终在Hive中保存着最新的全量数据,而动态数据本身只需要保存最近的热度数据即可。
根据上述动态数据和静态数据的不同特性,根据关系型数据库的动态管理系统表的统计信息,可以识别关系型数据库中的数据的分类特征。所述统计信息中包含关系型数据库中的数据表的记录数和大小,因此,作为一种较佳的实施例,在S101中,根据所述数据表的记录数和大小,识别所述特征分类是动态还是静态。具体地,例如,静态数据中,往往数据表的记录的条数较少,且一般不会发生变化,并且数据表的总体大小(字节数)较小;而动态数据则会随着业务系统流量的增加而增加,因此数据表的记录的条数会发生变化(增加),并且数据表的总体大小(字节数)较大。因此,当某一数据表的总体大小超过预设大小时,将其识别为动态数据;反之,将其识别为静态数据。或者,当某一数据表的记录数少于预设数值时,将其识别为静态数据;反之,将其识别为动态数据。为了获得更优的识别效果,还可以进一步结合数据表的记录数,采取动态识别的策略。例如,对于原识别为静态数据的数据表,或者进行初次识别时,当数据表的记录数较更早的时间点发生变化(增加)时,则识别该数据为动态数据。前述预设大小、预设数值可根据历史统计数据的分析值、或者经验值进行设置,也可以根据数据库具体特征、具体情况合理调整。
S102、根据识别出的特征分类为所述关系型数据库创建ETL脚本。具体地,根据识别出的特征分类是动态还是静态,有针对性地为关系型数据库创建ETL脚本。
实施例3
本发明的关系型数据库至Hive的ETL脚本创建方法如图1所示,其与实施例1的区别在于加入增量取数的时间字段识别。
在识别关系型数据库中的数据表特征分类后,还需要指定每次ETL操作的取数的时间范围,因此,识别数据表的增量取数的时间字段是必须步骤之一。进一步地,在S101中,获取到关系型数据库的时间字段,并判断该时间字段是否跟随数据的变更而更新,如果是,判断所述时间字段是否能使用索引(在索引列或联合索引的第一列),若满足上述两种原则将上述时间字段指定为增量取数的时间字段,生成取数的时间范围。
本实施例的关系型数据库至Hive的ETL脚本创建方法的其余步骤与前述几个实施例类似,不再赘述。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (9)
1.一种关系型数据库至Hive的ETL脚本创建方法,其特征在于,所述关系型数据库至Hive的ETL脚本创建方法包含以下步骤:
S1、识别关系型数据库中的数据表的特征分类;
S2、根据识别出的特征分类为所述关系型数据库数据表创建ETL脚本;
S3、将创建的ETL脚本注册至调度平台进行ETL作业。
2.如权利要求1所述的关系型数据库至Hive的ETL脚本创建方法,其特征在于,S1包含:根据所述关系型数据库的动态管理系统表的统计信息,识别所述数据表的特征分类是日志型还是业务型。
3.如权利要求1所述的关系型数据库至Hive的ETL脚本创建方法,其特征在于,S1包含:根据所述关系型数据库的动态管理系统表的统计信息,识别所述数据表的特征分类是动态还是静态。
4.如权利要求2所述的关系型数据库至Hive的ETL脚本创建方法,其特征在于,所述统计信息包含所述关系型数据库中的数据的变更的次数,所述变更包含、数据删除、数据更新中的至少一项;
S1包含:根据所述变更的次数,识别所述数据表的特征分类是日志型还是业务型。
5.如权利要求3所述的关系型数据库至Hive的ETL脚本创建方法,其特征在于,所述统计信息包含所述关系型数据库中的数据表的记录数和大小;
S1包含:根据所述数据表的记录数和大小,识别所述特征分类是动态还是静态。
6.如权利要求1所述的关系型数据库至Hive的ETL脚本创建方法,其特征在于,所述关系型数据库数据表的取数的时间字段为随数据更新而更新的时间字段,该字段必须在索引列或者联合索引的第一列;
S1包含:获取所述关系型数据库的时间字段,根据所述时间字段指定数据表取数的时间范围。
7.如权利要求1所述的关系型数据库至Hive的ETL脚本创建方法,其特征在于,S3包含:获取调度平台的注册方式,根据所述注册方式将生成的ETL脚本提交到调度平台。
8.如权利要求7所述的关系型数据库至Hive的ETL脚本创建方法,其特征在于,所述注册方式包含模拟用户登录的方式。
9.如权利要求7所述的关系型数据库至Hive的ETL脚本创建方法,其特征在于,所述注册方式包含调用作业调度平台服务的方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710953948.2A CN107704597A (zh) | 2017-10-13 | 2017-10-13 | 关系型数据库至Hive的ETL脚本创建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710953948.2A CN107704597A (zh) | 2017-10-13 | 2017-10-13 | 关系型数据库至Hive的ETL脚本创建方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107704597A true CN107704597A (zh) | 2018-02-16 |
Family
ID=61183478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710953948.2A Pending CN107704597A (zh) | 2017-10-13 | 2017-10-13 | 关系型数据库至Hive的ETL脚本创建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107704597A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241033A (zh) * | 2018-08-21 | 2019-01-18 | 北京京东尚科信息技术有限公司 | 创建实时数据仓库的方法和装置 |
CN109840267A (zh) * | 2019-03-01 | 2019-06-04 | 成都品果科技有限公司 | 一种数据etl系统及方法 |
CN109977157A (zh) * | 2019-02-27 | 2019-07-05 | 深圳点猫科技有限公司 | 一种基于数据平台将数据导入目标目录的方法和电子设备 |
CN110209652A (zh) * | 2019-05-20 | 2019-09-06 | 平安科技(深圳)有限公司 | 数据表迁移方法、装置、计算机设备和存储介质 |
CN110309145A (zh) * | 2019-04-15 | 2019-10-08 | 中国银行股份有限公司 | 一种数据表调整方法、数据表创建方法及装置 |
CN111107137A (zh) * | 2019-12-06 | 2020-05-05 | 携程旅游信息技术(上海)有限公司 | 通信数据同步及处理方法和系统 |
CN111367890A (zh) * | 2020-03-13 | 2020-07-03 | 深圳壹账通智能科技有限公司 | 一种数据迁移的方法、装置、计算机设备及可读存储介质 |
CN113076365A (zh) * | 2021-04-07 | 2021-07-06 | 杭州数梦工场科技有限公司 | 数据同步方法、装置、电子设备及存储介质 |
CN114116602A (zh) * | 2021-11-24 | 2022-03-01 | 中国银行股份有限公司 | 批量数据文件下传方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130325788A1 (en) * | 2012-05-31 | 2013-12-05 | Cellco Partnership D/B/A Verizon Wireless | Etl data transit method and system |
CN105426394A (zh) * | 2015-10-18 | 2016-03-23 | 广州赛意信息科技股份有限公司 | 基于跨平台的移动报表生成方法和系统 |
CN105893529A (zh) * | 2016-03-30 | 2016-08-24 | 乐视控股(北京)有限公司 | 一种数据采集方法以及etl组件 |
CN107092474A (zh) * | 2016-12-13 | 2017-08-25 | 北京小度信息科技有限公司 | 程序开发方法、etl处理方法及装置 |
-
2017
- 2017-10-13 CN CN201710953948.2A patent/CN107704597A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130325788A1 (en) * | 2012-05-31 | 2013-12-05 | Cellco Partnership D/B/A Verizon Wireless | Etl data transit method and system |
CN105426394A (zh) * | 2015-10-18 | 2016-03-23 | 广州赛意信息科技股份有限公司 | 基于跨平台的移动报表生成方法和系统 |
CN105893529A (zh) * | 2016-03-30 | 2016-08-24 | 乐视控股(北京)有限公司 | 一种数据采集方法以及etl组件 |
CN107092474A (zh) * | 2016-12-13 | 2017-08-25 | 北京小度信息科技有限公司 | 程序开发方法、etl处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
龙显磊: "ETL工作流过程建模与可视化开发", 《计算机系统应用》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241033A (zh) * | 2018-08-21 | 2019-01-18 | 北京京东尚科信息技术有限公司 | 创建实时数据仓库的方法和装置 |
CN109977157A (zh) * | 2019-02-27 | 2019-07-05 | 深圳点猫科技有限公司 | 一种基于数据平台将数据导入目标目录的方法和电子设备 |
CN109840267B (zh) * | 2019-03-01 | 2023-04-21 | 成都品果科技有限公司 | 一种数据etl系统及方法 |
CN109840267A (zh) * | 2019-03-01 | 2019-06-04 | 成都品果科技有限公司 | 一种数据etl系统及方法 |
CN110309145A (zh) * | 2019-04-15 | 2019-10-08 | 中国银行股份有限公司 | 一种数据表调整方法、数据表创建方法及装置 |
CN110209652A (zh) * | 2019-05-20 | 2019-09-06 | 平安科技(深圳)有限公司 | 数据表迁移方法、装置、计算机设备和存储介质 |
WO2020232884A1 (zh) * | 2019-05-20 | 2020-11-26 | 平安科技(深圳)有限公司 | 数据表迁移方法、装置、计算机设备和存储介质 |
CN110209652B (zh) * | 2019-05-20 | 2024-02-02 | 平安科技(深圳)有限公司 | 数据表迁移方法、装置、计算机设备和存储介质 |
CN111107137A (zh) * | 2019-12-06 | 2020-05-05 | 携程旅游信息技术(上海)有限公司 | 通信数据同步及处理方法和系统 |
CN111367890A (zh) * | 2020-03-13 | 2020-07-03 | 深圳壹账通智能科技有限公司 | 一种数据迁移的方法、装置、计算机设备及可读存储介质 |
CN113076365A (zh) * | 2021-04-07 | 2021-07-06 | 杭州数梦工场科技有限公司 | 数据同步方法、装置、电子设备及存储介质 |
CN113076365B (zh) * | 2021-04-07 | 2024-05-10 | 杭州数梦工场科技有限公司 | 数据同步方法、装置、电子设备及存储介质 |
CN114116602A (zh) * | 2021-11-24 | 2022-03-01 | 中国银行股份有限公司 | 批量数据文件下传方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107704597A (zh) | 关系型数据库至Hive的ETL脚本创建方法 | |
US12099483B2 (en) | Rules based scheduling and migration of databases using complexity and weight | |
US11847103B2 (en) | Data migration using customizable database consolidation rules | |
US5357631A (en) | Method and system for creating and maintaining multiple document versions in a data processing system library | |
US6728727B2 (en) | Data management apparatus storing uncomplex data and data elements of complex data in different tables in data storing system | |
CN111459985B (zh) | 标识信息处理方法及装置 | |
US5732257A (en) | Object conversion method from a flat object space to a class structured space | |
US8145685B2 (en) | Object relational mapping layer | |
US5495610A (en) | Software distribution system to build and distribute a software release | |
US20100030995A1 (en) | Method and apparatus for applying database partitioning in a multi-tenancy scenario | |
WO1991008542A1 (en) | Software distribution system | |
CN111651451A (zh) | 一种场景驱动的单体系统微服务拆分方法 | |
US20140181059A1 (en) | Batching content management operations to facilitate efficient database interactions | |
CN106557307B (zh) | 业务数据的处理方法及处理系统 | |
CN108897876A (zh) | 一种数据接入方法及装置 | |
CN102508919A (zh) | 数据处理方法及系统 | |
CN108038215A (zh) | 数据处理方法及系统 | |
US6266661B1 (en) | Method and apparatus for maintaining multi-instance database management systems with hierarchical inheritance and cross-hierarchy overrides | |
CN105978744A (zh) | 一种资源分配方法、装置及系统 | |
CN112068812B (zh) | 一种微服务生成方法、装置、计算机设备和存储介质 | |
CN111414422B (zh) | 一种数据分布方法、装置、设备和存储介质 | |
US7409380B1 (en) | Facilitated reuse of K locations in a knowledge store | |
CN102034140A (zh) | 改善制造执行系统的性能 | |
CN115543428A (zh) | 一种基于策略模板的模拟数据生成方法和装置 | |
US11544294B2 (en) | Distributing tables in a distributed database using consolidated grouping sources |
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: 20180216 |
|
RJ01 | Rejection of invention patent application after publication |