CN109359157A - 数据同步生成方法、装置、计算机设备以及存储介质 - Google Patents

数据同步生成方法、装置、计算机设备以及存储介质 Download PDF

Info

Publication number
CN109359157A
CN109359157A CN201810955920.7A CN201810955920A CN109359157A CN 109359157 A CN109359157 A CN 109359157A CN 201810955920 A CN201810955920 A CN 201810955920A CN 109359157 A CN109359157 A CN 109359157A
Authority
CN
China
Prior art keywords
data
script
platform
task
big data
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
Application number
CN201810955920.7A
Other languages
English (en)
Inventor
席旭亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Life Insurance Company of China Ltd
Original Assignee
Ping An Life Insurance Company of China Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Life Insurance Company of China Ltd filed Critical Ping An Life Insurance Company of China Ltd
Priority to CN201810955920.7A priority Critical patent/CN109359157A/zh
Publication of CN109359157A publication Critical patent/CN109359157A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及数据资源,揭示了数据同步生成方法、装置、计算机设备以及存储介质,其中,数据同步生成方法,包括:在关系数据库中读取预配置的将关系数据库数据同步到大数据平台的配置表格的表结构,以获取所述配置表格的各配置信息;根据所述配置信息生成所述大数据平台对应的调度任务、脚本和建表语句;将所述调度任务、脚本和建表语句分别传输至所述大数据平台的指定位置,以调度关系数据库的指定数据到大数据平台。开发了Sqoop数据同步自动生成工具,能自动生成Sqoop数据同步的脚本文件和建表语句,直接进行部署(挂在另外一个平台上面),通过平台进行控制脚本文件的同步,脚本运行平台统一、集中,方便运营人员统管所有脚本运行情况。

Description

数据同步生成方法、装置、计算机设备以及存储介质
技术领域
本申请涉及到大数据领域,特别是涉及到数据同步生成方法、装置、计算机设备以及存储介质。
背景技术
现有的关系数据库中的数据需同步到大数据平台,才能被应用于不同的应用领域,才能不断地扩充大数据平台的数据量,以便将特定关系数据库中的数据共享给其他的关系数据库。现有关系数据库的权限较严格,其他关系数据库不能从指定关系数据库中直接获取相应信息,且由于各关系数据库的数据类型不具有兼容性,其他关系数据库也不能直接识别指定关系数据库中数据,需要将关系数据库同步到大数据平台,然后再进行共享,但目前项目没有Sqoop(一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库间进行数据传递)数据同步自动生成工具,需要人工参与撰写脚本代码、容易出现代码错误,且工作量大,产品上线需要的时间较长,工作效率不高。
发明内容
本申请的主要目的为提供一种将关系数据库数据同步到大数据平台的数据同步生成方法,旨在解决将关系数据库同步到大数据平台时均需人工参与,工作效率不高的技术问题。
本申请提出一种数据同步生成方法,将关系数据库数据同步到大数据平台,包括:
在关系数据库中读取预配置的将关系数据库数据同步到大数据平台的配置表格的表结构,以获取所述配置表格的各配置信息;
根据所述配置信息生成所述大数据平台对应的调度任务、脚本和建表语句;
将所述调度任务、脚本和建表语句分别传输至所述大数据平台的指定位置,以调度关系数据库的指定数据到大数据平台。
优选地,所述在关系数据库中读取预配置的将关系数据库数据同步到大数据平台的配置表格的表结构的步骤之前,包括:
接收各所述配置信息分别对应的字段,其中各所述配置信息根据任务协议配置到配置表格内;
检测各所述字段是否符合预设的配置规则;
若是,则生成读取所述配置表格的表结构的指令。
优选地,所述检测各所述字段是否符合预设的配置规则的步骤,包括:
获取各字段分别对应的字段内容;
判断各所述字段内容的书写方式是否与预设配置规则中的各书写规则一一对应匹配;
若是,则判定所述配置表格的各字段符合预设配置规则,否则所述配置表格的各字段不符合预设配置规则。
优选地,所述根据所述配置信息生成所述大数据平台对应的调度任务、脚本和建表语句的步骤,包括:
根据所述配置信息构建关系数据库对应的大数据平台的数据表;
根据所述数据表的抽数模式构建对应的脚本和建表语句;
根据所述脚本和建表语句自动生成对应的调度任务,所述调度任务用于调度所述关系数据库的指定数据到大数据平台。
优选地,所述根据所述数据表的抽数模式构建对应的脚本和建表语句的步骤,包括:
判断所述抽数模式是否为全量抽取;
若是,则抽取所述表结构中携带的表名对应的所有表数据至所述数据表;
将所述数据表形成对应全量数据的第一脚本和第一建表语句。
优选地,所述根据所述数据表的抽数模式构建对应的脚本和建表语句的步骤,包括:
判断所述抽数模式是否为增量抽取;
若是,则分别抽取所述表结构中携带的表名对应的初始化表和增量表;
将所述初始化表和增量表合并为所述数据表;
将所述数据表形成对应增量数据的第二脚本和第二建表语句。
优选地,所述根据所述脚本和建表语句调度任务,所述调度任务用于调度所述关系数据库的指定数据到大数据平台的步骤,包括:
判断获取的初始化表任务、获取增量表任务以及合并所述初始化表和增量表的任务的依赖关系是否正确;
若是,则根据所述第二脚本和第二建表语句自动生成调度任务。
本申请还提供了一种数据同步生成装置,包括:
读取模块,用于在关系数据库中读取预配置的将关系数据库数据同步到大数据平台的配置表格的表结构,以获取所述配置表格的各配置信息;
生成模块,用于根据所述配置信息生成所述大数据平台对应的调度任务、脚本和建表语句;
传输模块,用于将所述调度任务、脚本和建表语句分别传输至所述大数据平台的指定位置,以调度关系数据库的指定数据到大数据平台。
本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
本申请通过开发了Sqoop数据同步自动生成工具,能自动生成Sqoop数据同步的脚本文件和建表语句,直接进行部署(挂在另外一个平台上面),通过平台进行控制脚本文件的按天、周、月、季、年等进行同步,还可以设置每天几点执行,是否需要执行等,脚本文件内容规范化方便查看、脚本日志可追踪,脚本运行平台统一、集中,方便一个运营人员统管所有脚本运行情况,相比于将数据直接传输到指定平台更方便管控。提高Sqoop数据同步的流程化、准确度,极大地缩短产品上线的时间耗量,显著提高工作效率。通过设置自动检验的过程,提高Sqoop数据同步自动生成工具的准确性,以及流程流畅化。通过不同的抽取方式自动选择Sqoop数据同步生成对应的脚本和建表语句,以满足不同的任务需求,扩大Sqoop数据同步自动生成工具的应用领域。
附图说明
图1本申请一实施例的数据同步生成方法的流程示意图;
图2本申请一实施例的数据同步生成装置的结构示意图;
图3本申请另一实施例的数据同步生成装置的结构示意图;
图4本申请一实施例的监测模块的结构示意图;
图5本申请一实施例的第一生成模块的结构示意图;
图6本申请一实施例的第二构建单元的结构示意图;
图7本申请另一实施例的第二构建单元的结构示意图;
图8本申请另一实施例的生成单元的结构示意图;
图9本申请一实施例的计算机设备的内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请一实施例的将关系数据库数据同步到大数据平台的数据同步生成方法,包括:
S1:在关系数据库中读取预配置的将关系数据库数据同步到大数据平台的配置表格的表结构,以获取所述配置表格的各配置信息。
本实施例的关系数据库是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式的表格作用的实质是装载着数据项的特殊收集体,这些表格中的数据能以许多不同的方式被存取或重新召集而不需要重新组织数据库表格,每个表格包含用列表示的一个或更多的数据种类。本实施例的关系数据库包括Oracle、Db2、Sqlserver、Sybase、Mysql、Pg等。本实施例的表结构包括,表名称、库名称、表中包括哪些字段、各字段的描述信息等。
举例地,本实施例的表结构的参数表如下:
S2:根据所述配置信息生成所述大数据平台对应的调度任务、脚本和建表语句。
本实施例以从关系数据库到大数据平台的Sqoop数据同步自动生成为例,根据配置信息通过调用程序,自动生成大数据平台对应的标准化的Sqoop同步脚本和建表语句,本根据Sqoop同步脚本和建表语句自动生成从关系数据库向大数据平台同步数据的调度任务,省却了人工参与代码编程的过程,提高了代码的准确度,而且极大的提高了工作效率,相比于人工编写代码脚本,工作效率提升几倍甚至几十倍。
S3:将所述调度任务、脚本和建表语句分别传输至所述大数据平台的指定位置,以调度关系数据库的指定数据到大数据平台。
本实施例通过部署文档将所述调度任务、脚本和建表语句分别传输至所述大数据平台的指定位置,本实施例的部署文档用于生产部署,生成过程逻辑根据用户自定义的配置信息经程序处理后自动生成。
进一步地,本实施例的步骤S1之前,包括:
S10:接收各所述配置信息分别对应的字段,其中各所述配置信息根据任务协议配置到配置表格内。
本实施例的任务协议为任务双方协商的协议,任务协议中包括了配置规则等内容,以便任务双方共同协同完成相应的任务。
S11:检测各所述字段是否符合预设的配置规则。
本实施例的配置规则具体到配置表格中每一列字段的匹配规则,举例地,某字段的开始要以字母开始,以数字结束等。
S12:若是,则生成读取所述配置表格的表结构的指令。
本实施例在检测完各字段的书写方式符合任务协议的配置规则后,再在关系数据库中读取配置表格的表结构,以减少读取表结构的错误概率,提高读取信息的准确度,提高Sqoop数据同步自动生成的效率。
进一步地,本实施例的步骤S11,包括:
S111:获取各字段分别对应的字段内容。
本实施例的配置表格中,每一列的字段各代表不同内容,比如,表名、库名、任务名、任务依赖关系等。
S112:判断各所述字段内容的书写方式是否与预设配置规则中的各书写规则一一对应匹配。
本实施例的每个字段对应的匹配规则也不同,比如,任务名不能用中文,任务依赖关系用英文逗号表示,如任务名一列为‘A’,任务依赖关系一列为‘E,F’,则表示任务A依赖于任务E,F,表示只有任务E,F为已完成的有效任务时,任务A才能进行。
S113:若是,则判定所述配置表格的各字段符合预设配置规则,否则所述配置表格的各字段不符合预设配置规则。
本实施例的字符段只有在符合相应的匹配规则后,才被正确识别,否则报错,报错后将导致后续的流程无法继续进行,影响自动生成相应脚本的过程。
进一步地,本实施例的步骤S2,包括:
S20:根据所述配置信息构建关系数据库对应的大数据平台的数据表。
本实施例通过在关系数据库中构建大数据平台可识别的数据表,以便将Sqoop数据同步到数据表中,然后再发送至大数据平台。大数据平台的数据结构为字符串类型,将关系数据库中的数据同步至大数据平台后要转化为字符串类型,以提高各种领域数据的容纳性。但关系数据库的数据类型有多种定义,比如为字符串、时间、数字、浮点数等,但将时间、数字、浮点数等类型的数据直接传输至大数据平台,某些大数据平台则无法识别,所以要在关系数据库中构建大数据平台的数据表,以便做统一的转换处理提高兼容性,以适应大数据平台的数据结构。
S21:根据所述数据表的抽数模式构建对应的脚本和建表语句。
本实施例的抽数模式表示构建大数据平台的数据表的规范方式,包括全量抽数方式和增量抽数方式。增量抽数只抽取关系数据库中对应表名的表中的新增或修改数据,应用范围更广泛,抽取数据更及时。本实施例的全量抽数方式和增量抽数方式所分别对应的脚本自动生成机制不同,建表语句也不同。
S22:根据所述脚本和建表语句自动生成对应的调度任务,所述调度任务用于调度所述关系数据库的指定数据到大数据平台。
本实施例全量抽数方式和增量抽数方式所分别对应的脚本自动生成机制不同,建表语句也不同,本实施例全量抽数方式和增量抽数方式所分别对应的调度任务也不同。
进一步地,本实施例的步骤S21,包括:
S210:判断所述抽数模式是否为全量抽取。
本实施例根据要抽取的数据覆盖范围为某个表名中表数据全覆盖,则为全量抽取,对应的抽数任务只有一个。
S211:若是,则抽取所述表结构中携带的表名对应的所有表数据至所述数据表。
本实施例的全量抽取方式中,执行一次相应的抽数任务则一次性抽取表名对应表数据中的所有数据,并生成对应的Sqoop数据脚本和全量抽取对应的建表语句。
S212:将所述数据表形成对应全量数据的第一脚本和第一建表语句。
本实施例的全量抽取方式的Sqoop数据脚本和建表语句对应为第一脚本和第一建表语句,以区别于增量抽取方式下的脚本和建表语句。此处的“第一”只为区别,不作限定,本申请其他处的“第一”、“第二”等作用相同,不赘述。
进一步地,本申请另一实施例的步骤S21,包括:
S213:判断所述抽数模式是否为增量抽取。
本实施例通过要抽取的数据覆盖范围为某个表名中表数据的部分,且通过数据形成的时间戳或运行日志判断要抽取的部分数据为新增加或新修改的数据内容,则为增量抽取。
S214:若是,则分别抽取所述表结构中携带的表名对应的初始化表和增量表。
本实施例的增量抽取中首先包括两个任务,一个抽取原始基本数据形成初始化表,另一个任务是抽取新增加或新修改的数据内容形成增量表,根据区分初始化表和增量表,增大数据的应用范围。
S215:将所述初始化表和增量表合并为所述数据表。
本实施例在增量抽取的方式中,即生成初始化表和增量表两个任务后,还包括第三个任务,将上述初始化表和增量表进行合并,生成对应的大数据平台可识别的数据表。
S216:将所述数据表形成对应增量数据的第二脚本和第二建表语句。
本实施例的Sqoop数据的增量抽取方式,任务流程细节不同于全量抽取方式,必然使得增量数据的第二脚本和第二建表语句,与全量抽取方式的Sqoop数据对应的第一脚本和第一建表语句有着本质区别。
进一步地,本申请另一实施例的步骤S22,包括:
S221:判断获取的初始化表任务、获取增量表任务以及合并所述初始化表和增量表的任务的依赖关系是否正确。
本实施例在增量抽取中,存在着与时间顺序相关的三个任务,需要调度平台自动识别调度三个任务的依赖关系是否正确;三个任务的是否与任务栏中的某一任务重复;或任务的字段是否合法等。本实施例主要判定三个任务的依赖关系或时间顺序是否符合要求。
S222:若是,则根据所述第二脚本和第二建表语句自动生成调度任务。
本实施例通过判断获取的初始化表任务、获取增量表任务的任务合法,且获取的初始化表任务、获取增量表任务以及合并所述初始化表和增量表的任务的依赖关系也正确,则控制自动生成标准化的Sqoop数据同步脚本。
本实施例通过开发了Sqoop数据同步自动生成工具,能自动生成Sqoop数据同步的脚本文件和建表语句,直接进行部署(挂在另外一个平台上面),通过平台进行控制脚本文件的按天、周、月、季、年等进行同步,还可以设置每天几点执行,是否需要执行等,脚本文件内容规范化方便查看、脚本日志可追踪,脚本运行平台统一、集中,方便一个运营人员统管所有脚本运行情况,相比于将数据直接传输到指定平台更方便管控。提高Sqoop数据同步的流程化、准确度,极大地缩短产品上线的时间耗量,显著提高工作效率。通过设置自动检验的过程,提高Sqoop数据同步自动生成工具的准确性,以及流程流畅化。通过不同的抽取方式自动选择Sqoop数据同步生成对应的脚本和建表语句,以满足不同的任务需求,扩大Sqoop数据同步自动生成工具的应用领域。
参照图2,本申请一实施例的将关系数据库数据同步到大数据平台的数据同步生成装置,包括:
读取模块1,用于在关系数据库中读取预配置的将关系数据库数据同步到大数据平台的配置表格的表结构,以获取所述配置表格的各配置信息。
本实施例的关系数据库是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式的表格作用的实质是装载着数据项的特殊收集体,这些表格中的数据能以许多不同的方式被存取或重新召集而不需要重新组织数据库表格,每个表格包含用列表示的一个或更多的数据种类。本实施例的关系数据库包括Oracle、Db2、Sqlserver、Sybase、Mysql、Pg等。本实施例的表结构包括,表名称、库名称、表中包括哪些字段、各字段的描述信息等。
举例地,本实施例的表结构的参数表如下:
第一生成模块2,用于根据所述配置信息生成所述大数据平台对应的调度任务、脚本和建表语句。
本实施例以从关系数据库到大数据平台的Sqoop数据同步自动生成为例,根据配置信息通过调用程序,自动生成大数据平台对应的标准化的Sqoop同步脚本和建表语句,本根据Sqoop同步脚本和建表语句自动生成从关系数据库向大数据平台同步数据的调度任务,省却了人工参与代码编程的过程,提高了代码的准确度,而且极大的提高了工作效率,相比于人工编写代码脚本,工作效率提升几倍甚至几十倍。
传输模块3,用于将所述调度任务、脚本和建表语句分别传输至所述大数据平台的指定位置,以调度关系数据库的指定数据到大数据平台。
本实施例通过部署文档将所述调度任务、脚本和建表语句分别传输至所述大数据平台的指定位置,本实施例的部署文档用于生产部署,生成过程逻辑根据用户自定义的配置信息经程序处理后自动生成。
参照图3,本申请另一实施例的数据同步生成装置,包括:
接收模块10,用于接收各所述配置信息分别对应的字段,其中各所述配置信息根据任务协议配置到配置表格内。
本实施例的任务协议为任务双方协商的协议,任务协议中包括了配置规则等内容,以便任务双方共同协同完成相应的任务。
监测模块11,用于检测各所述字段是否符合预设的配置规则。
本实施例的配置规则具体到配置表格中每一列字段的匹配规则,举例地,某字段的开始要以字母开始,以数字结束等。
第二生成模块12,用于若字段符合预设的配置规则,则生成读取所述配置表格的表结构的指令。
本实施例在检测完各字段的书写方式符合任务协议的配置规则后,再在关系数据库中读取配置表格的表结构,以减少读取表结构的错误概率,提高读取信息的准确度,提高Sqoop数据同步自动生成的效率。
参照图4,本实施例的监测模块11,包括:
获取单元111,用于获取各字段分别对应的字段内容。
本实施例的配置表格中,每一列的字段各代表不同内容,比如,表名、库名、任务名、任务依赖关系等。
判断单元112,用于判断各所述字段内容的书写方式是否与预设配置规则中的各书写规则一一对应匹配。
本实施例的每个字段对应的匹配规则也不同,比如,任务名不能用中文,任务依赖关系用英文逗号表示,如任务名一列为‘A’,任务依赖关系一列为‘E,F’,则表示任务A依赖于任务E,F,表示只有任务E,F为已完成的有效任务时,任务A才能进行。
判定单元113,用于若字段内容的书写方式与预设配置规则中的各书写规则一一对应匹配,则判定所述配置表格的各字段符合预设配置规则,否则所述配置表格的各字段不符合预设配置规则。
本实施例的字符段只有在符合相应的匹配规则后,才被正确识别,否则报错,报错后将导致后续的流程无法继续进行,影响自动生成相应脚本的过程。
参照图5,本实施例的第一生成模块2,包括:
第一构建单元20,用于根据所述配置信息构建关系数据库对应的大数据平台的数据表。
本实施例通过在关系数据库中构建大数据平台可识别的数据表,以便将Sqoop数据同步到数据表中,然后再发送至大数据平台。大数据平台的数据结构为字符串类型,将关系数据库中的数据同步至大数据平台后要转化为字符串类型,以提高各种领域数据的容纳性。但关系数据库的数据类型有多种定义,比如为字符串、时间、数字、浮点数等,但将时间、数字、浮点数等类型的数据直接传输至大数据平台,某些大数据平台则无法识别,所以要在关系数据库中构建大数据平台的数据表,以便做统一的转换处理提高兼容性,以适应大数据平台的数据结构。
第二构建单元21,用于根据所述数据表的抽数模式构建对应的脚本和建表语句。
本实施例的抽数模式表示构建大数据平台的数据表的规范方式,包括全量抽数方式和增量抽数方式。增量抽数只抽取关系数据库中对应表名的表中的新增或修改数据,应用范围更广泛,抽取数据更及时。本实施例的全量抽数方式和增量抽数方式所分别对应的脚本自动生成机制不同,建表语句也不同。
生成单元22,用于根据所述脚本和建表语句调度任务,所述调度任务用于调度所述关系数据库的指定数据到大数据平台。
本实施例全量抽数方式和增量抽数方式所分别对应的脚本自动生成机制不同,建表语句也不同,本实施例全量抽数方式和增量抽数方式所分别对应的调度任务也不同。
参照图6,本实施例的第二构建单元21,包括:
第一判断子单元210,用于判断所述抽数模式是否为全量抽取。
本实施例根据要抽取的数据覆盖范围为某个表名中表数据全覆盖,则为全量抽取,对应的抽数任务只有一个。
第一抽取子单元211,用于若是全量抽取,则抽取所述表结构中携带的表名对应的所有表数据至所述数据表。
本实施例的全量抽取方式中,执行一次相应的抽数任务则一次性抽取表名对应表数据中的所有数据,并生成对应的Sqoop数据脚本和全量抽取对应的建表语句。
第一形成子单元212,用于将所述数据表形成对应全量数据的第一脚本和第一建表语句。
本实施例的全量抽取方式的Sqoop数据脚本和建表语句对应为第一脚本和第一建表语句,以区别于增量抽取方式下的脚本和建表语句。此处的“第一”只为区别,不作限定,本申请其他处的“第一”、“第二”等作用相同,不赘述。
参照图7,本申请另一实施例的第二构建单元21,包括:
第二判断子单元213,用于判断所述抽数模式是否为增量抽取。
本实施例通过要抽取的数据覆盖范围为某个表名中表数据的部分,且通过数据形成的时间戳或运行日志判断要抽取的部分数据为新增加或新修改的数据内容,则为增量抽取。
第二抽取子单元214,用于若增量抽取,则分别抽取所述表结构中携带的表名对应的初始化表和增量表。
本实施例的增量抽取中首先包括两个任务,一个抽取原始基本数据形成初始化表,另一个任务是抽取新增加或新修改的数据内容形成增量表,根据区分初始化表和增量表,增大数据的应用范围。
合并子单元215,用于将所述初始化表和增量表合并为所述数据表。
本实施例在增量抽取的方式中,即生成初始化表和增量表两个任务后,还包括第三个任务,将上述初始化表和增量表进行合并,生成对应的大数据平台可识别的数据表。
第二形成子单元216,用于将所述数据表形成对应增量数据的第二脚本和第二建表语句。
本实施例的Sqoop数据的增量抽取方式,任务流程细节不同于全量抽取方式,必然使得增量数据的第二脚本和第二建表语句,与全量抽取方式的Sqoop数据对应的第一脚本和第一建表语句有着本质区别。
参照图8,本申请另一实施例的生成单元22,包括:
第三判断子单元221,用于判断获取的初始化表任务、获取增量表任务以及合并所述初始化表和增量表的任务的依赖关系是否正确。
本实施例在增量抽取中,存在着与时间顺序相关的三个任务,需要调度平台自动识别调度三个任务的依赖关系是否正确;三个任务的是否与任务栏中的某一任务重复;或任务的字段是否合法等。本实施例主要判定三个任务的依赖关系或时间顺序是否符合要求。
生成子单元222:若依赖关系正确,则根据所述第二脚本和第二建表语句自动生成调度任务。
本实施例通过判断获取的初始化表任务、获取增量表任务的任务合法,且获取的初始化表任务、获取增量表任务以及合并所述初始化表和增量表的任务的依赖关系也正确,则控制自动生成标准化的Sqoop数据同步脚本。
参照图9,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据同步生成过程需要的所有数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现数据同步生成方法。
上述处理器执行上述数据同步生成方法,包括:在关系数据库中读取预配置的将关系数据库数据同步到大数据平台的配置表格的表结构,以获取所述配置表格的各配置信息;根据所述配置信息生成所述大数据平台对应的调度任务、脚本和建表语句;将所述调度任务、脚本和建表语句分别传输至所述大数据平台的指定位置,以调度关系数据库的指定数据到大数据平台。
上述计算机设备,通过开发了Sqoop数据同步自动生成工具,能自动生成Sqoop数据同步的脚本文件和建表语句,直接进行部署(挂在另外一个平台上面),通过平台进行控制脚本文件的按天、周、月、季、年等进行同步,还可以设置每天几点执行,是否需要执行等,脚本文件内容规范化方便查看、脚本日志可追踪,脚本运行平台统一、集中,方便一个运营人员统管所有脚本运行情况,相比于将数据直接传输到指定平台更方便管控。提高Sqoop数据同步的流程化、准确度,极大地缩短产品上线的时间耗量,显著提高工作效率。通过设置自动检验的过程,提高Sqoop数据同步自动生成工具的准确性,以及流程流畅化。通过不同的抽取方式自动选择Sqoop数据同步生成对应的脚本和建表语句,以满足不同的任务需求,扩大Sqoop数据同步自动生成工具的应用领域。
在一个实施例中,上述处理器在关系数据库中读取预配置的将关系数据库数据同步到大数据平台的配置表格的表结构的步骤之前,包括:接收各所述配置信息分别对应的字段,其中各所述配置信息根据任务协议配置到配置表格内;检测各所述字段是否符合预设的配置规则;若是,则生成读取所述配置表格的表结构的指令。
在一个实施例中,上述处理器检测各所述字段是否符合预设的配置规则的步骤,包括:获取各字段分别对应的字段内容;判断各所述字段内容的书写方式是否与预设配置规则中的各书写规则一一对应匹配;若是,则判定所述配置表格的各字段符合预设配置规则,否则所述配置表格的各字段不符合预设配置规则。
在一个实施例中,上述处理器根据所述配置信息生成所述大数据平台对应的调度任务、脚本和建表语句的步骤,包括:根据所述配置信息构建关系数据库对应的大数据平台的数据表;根据所述数据表的抽数模式构建对应的脚本和建表语句;根据所述脚本和建表语句调度任务,所述调度任务用于调度所述关系数据库的指定数据到大数据平台。
在一个实施例中,上述处理器根据所述数据表的抽数模式构建对应的脚本和建表语句的步骤,包括:判断所述抽数模式是否为全量抽取;若是,则抽取所述表结构中携带的表名对应的所有表数据至所述数据表;将所述数据表形成对应全量数据的第一脚本和第一建表语句。
在一个实施例中,上述处理器根据所述数据表的抽数模式构建对应的脚本和建表语句的步骤,包括:判断所述抽数模式是否为增量抽取;若是,则分别抽取所述表结构中携带的表名对应的初始化表和增量表;将所述初始化表和增量表合并为所述数据表;将所述数据表形成对应增量数据的第二脚本和第二建表语句。
在一个实施例中,上述处理器根据所述脚本和建表语句调度任务,所述调度任务用于调度所述关系数据库的指定数据到大数据平台的步骤,包括:判断获取的初始化表任务、获取增量表任务以及合并所述初始化表和增量表的任务的依赖关系是否正确;若是,则根据所述第二脚本和第二建表语句自动生成调度任务。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现数据同步生成方法,包括:在关系数据库中读取预配置的将关系数据库数据同步到大数据平台的配置表格的表结构,以获取所述配置表格的各配置信息;根据所述配置信息生成所述大数据平台对应的调度任务、脚本和建表语句;将所述调度任务、脚本和建表语句分别传输至所述大数据平台的指定位置,以调度关系数据库的指定数据到大数据平台。
上述计算机可读存储介质,通过开发了Sqoop数据同步自动生成工具,能自动生成Sqoop数据同步的脚本文件和建表语句,直接进行部署(挂在另外一个平台上面),通过平台进行控制脚本文件的按天、周、月、季、年等进行同步,还可以设置每天几点执行,是否需要执行等,脚本文件内容规范化方便查看、脚本日志可追踪,脚本运行平台统一、集中,方便一个运营人员统管所有脚本运行情况,相比于将数据直接传输到指定平台更方便管控。提高Sqoop数据同步的流程化、准确度,极大地缩短产品上线的时间耗量,显著提高工作效率。通过设置自动检验的过程,提高Sqoop数据同步自动生成工具的准确性,以及流程流畅化。通过不同的抽取方式自动选择Sqoop数据同步生成对应的脚本和建表语句,以满足不同的任务需求,扩大Sqoop数据同步自动生成工具的应用领域。
在一个实施例中,上述处理器在关系数据库中读取预配置的将关系数据库数据同步到大数据平台的配置表格的表结构的步骤之前,包括:接收各所述配置信息分别对应的字段,其中各所述配置信息根据任务协议配置到配置表格内;检测各所述字段是否符合预设的配置规则;若是,则生成读取所述配置表格的表结构的指令。
在一个实施例中,上述处理器检测各所述字段是否符合预设的配置规则的步骤,包括:获取各字段分别对应的字段内容;判断各所述字段内容的书写方式是否与预设配置规则中的各书写规则一一对应匹配;若是,则判定所述配置表格的各字段符合预设配置规则,否则所述配置表格的各字段不符合预设配置规则。
在一个实施例中,上述处理器根据所述配置信息生成所述大数据平台对应的调度任务、脚本和建表语句的步骤,包括:根据所述配置信息构建关系数据库对应的大数据平台的数据表;根据所述数据表的抽数模式构建对应的脚本和建表语句;根据所述脚本和建表语句调度任务,所述调度任务用于调度所述关系数据库的指定数据到大数据平台。
在一个实施例中,上述处理器根据所述数据表的抽数模式构建对应的脚本和建表语句的步骤,包括:判断所述抽数模式是否为全量抽取;若是,则抽取所述表结构中携带的表名对应的所有表数据至所述数据表;将所述数据表形成对应全量数据的第一脚本和第一建表语句。
在一个实施例中,上述处理器根据所述数据表的抽数模式构建对应的脚本和建表语句的步骤,包括:判断所述抽数模式是否为增量抽取;若是,则分别抽取所述表结构中携带的表名对应的初始化表和增量表;将所述初始化表和增量表合并为所述数据表;将所述数据表形成对应增量数据的第二脚本和第二建表语句。
在一个实施例中,上述处理器根据所述脚本和建表语句调度任务,所述调度任务用于调度所述关系数据库的指定数据到大数据平台的步骤,包括:判断获取的初始化表任务、获取增量表任务以及合并所述初始化表和增量表的任务的依赖关系是否正确;若是,则根据所述第二脚本和第二建表语句自动生成调度任务。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种数据同步生成方法,其特征在于,将关系数据库数据同步到大数据平台,方法包括:
在关系数据库中读取预配置的将关系数据库数据同步到大数据平台的配置表格的表结构,以获取所述配置表格的各配置信息;
根据所述配置信息生成所述大数据平台对应的调度任务、脚本和建表语句;
将所述调度任务、脚本和建表语句分别传输至所述大数据平台的指定位置,以调度关系数据库的指定数据到大数据平台。
2.根据权利要求1所述的数据同步生成方法,其特征在于,所述在关系数据库中读取预配置的将关系数据库数据同步到大数据平台的配置表格的表结构的步骤之前,包括:
接收各所述配置信息分别对应的字段,其中各所述配置信息根据任务协议配置到配置表格内;
检测各所述字段是否符合预设的配置规则;
若是,则生成读取所述配置表格的表结构的指令。
3.根据权利要求2所述的数据同步生成方法,其特征在于,所述检测各所述字段是否符合预设的配置规则的步骤,包括:
获取各字段分别对应的字段内容;
判断各所述字段内容的书写方式是否与预设配置规则中的各书写规则一一对应匹配;
若是,则判定所述配置表格的各字段符合预设配置规则,否则所述配置表格的各字段不符合预设配置规则。
4.根据权利要求1所述的数据同步生成方法,其特征在于,所述根据所述配置信息生成所述大数据平台对应的调度任务、脚本和建表语句的步骤,包括:
根据所述配置信息构建关系数据库对应的大数据平台的数据表;
根据所述数据表的抽数模式构建对应的脚本和建表语句;
根据所述脚本和建表语句自动生成对应的调度任务,所述调度任务用于调度所述关系数据库的指定数据到大数据平台。
5.根据权利要求4所述的数据同步生成方法,其特征在于,所述根据所述数据表的抽数模式构建对应的脚本和建表语句的步骤,包括:
判断所述抽数模式是否为全量抽取;
若是,则抽取所述表结构中携带的表名对应的所有表数据至所述数据表;
将所述数据表形成对应全量数据的第一脚本和第一建表语句。
6.根据权利要求4所述的数据同步生成方法,其特征在于,所述根据所述数据表的抽数模式构建对应的脚本和建表语句的步骤,包括:
判断所述抽数模式是否为增量抽取;
若是,则分别抽取所述表结构中携带的表名对应的初始化表和增量表;
将所述初始化表和增量表合并为所述数据表;
将所述数据表形成对应增量数据的第二脚本和第二建表语句。
7.根据权利要求6所述的数据同步生成方法,其特征在于,所述根据所述脚本和建表语句自动生成对应的调度任务的步骤,包括:
判断获取的初始化表任务、获取增量表任务以及合并所述初始化表和增量表的任务的依赖关系是否正确;
若是,则根据所述第二脚本和第二建表语句自动生成调度任务。
8.一种数据同步生成装置,其特征在于,包括:
读取模块,用于在关系数据库中读取预配置的将关系数据库数据同步到大数据平台的配置表格的表结构,以获取所述配置表格的各配置信息;
生成模块,用于根据所述配置信息生成所述大数据平台对应的调度任务、脚本和建表语句;
传输模块,用于将所述调度任务、脚本和建表语句分别传输至所述大数据平台的指定位置,以调度关系数据库的指定数据到大数据平台。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN201810955920.7A 2018-08-21 2018-08-21 数据同步生成方法、装置、计算机设备以及存储介质 Pending CN109359157A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810955920.7A CN109359157A (zh) 2018-08-21 2018-08-21 数据同步生成方法、装置、计算机设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810955920.7A CN109359157A (zh) 2018-08-21 2018-08-21 数据同步生成方法、装置、计算机设备以及存储介质

Publications (1)

Publication Number Publication Date
CN109359157A true CN109359157A (zh) 2019-02-19

Family

ID=65350208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810955920.7A Pending CN109359157A (zh) 2018-08-21 2018-08-21 数据同步生成方法、装置、计算机设备以及存储介质

Country Status (1)

Country Link
CN (1) CN109359157A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110059134A (zh) * 2019-03-18 2019-07-26 深圳市买买提信息科技有限公司 一种数据同步至云平台的方法、相关装置和设备
CN110069481A (zh) * 2019-03-12 2019-07-30 平安科技(深圳)有限公司 基于大数据的生产库数据统一清理方法及相关设备
CN110389955A (zh) * 2019-07-13 2019-10-29 北京海致星图科技有限公司 一种数据仓库调度文件自动生成系统及生成方法
CN111177247A (zh) * 2019-12-30 2020-05-19 腾讯科技(深圳)有限公司 一种数据转换的方法、装置及存储介质
CN111897806A (zh) * 2020-06-28 2020-11-06 苏宁金融科技(南京)有限公司 大数据离线数据质量检查方法及装置
CN112579586A (zh) * 2020-12-23 2021-03-30 平安普惠企业管理有限公司 数据处理方法、装置、设备及存储介质
CN114155037A (zh) * 2021-12-09 2022-03-08 兴业银行股份有限公司 工作成果可视化方法及系统
CN115576605A (zh) * 2022-10-09 2023-01-06 苏州领慧立芯科技有限公司 一种自动生成代码和文档的寄存器管理装置及形成方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101149752A (zh) * 2007-11-10 2008-03-26 邹昌陆 基于sql的横向组合查询计算系统及方法
CN101854400A (zh) * 2010-06-09 2010-10-06 中兴通讯股份有限公司 一种数据库同步部署及监控的方法和装置
CN106528070A (zh) * 2015-09-15 2017-03-22 阿里巴巴集团控股有限公司 一种数据表生成方法及设备
CN107908631A (zh) * 2017-07-25 2018-04-13 平安科技(深圳)有限公司 数据处理方法、装置、存储介质和计算机设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101149752A (zh) * 2007-11-10 2008-03-26 邹昌陆 基于sql的横向组合查询计算系统及方法
CN101854400A (zh) * 2010-06-09 2010-10-06 中兴通讯股份有限公司 一种数据库同步部署及监控的方法和装置
CN106528070A (zh) * 2015-09-15 2017-03-22 阿里巴巴集团控股有限公司 一种数据表生成方法及设备
CN107908631A (zh) * 2017-07-25 2018-04-13 平安科技(深圳)有限公司 数据处理方法、装置、存储介质和计算机设备

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110069481A (zh) * 2019-03-12 2019-07-30 平安科技(深圳)有限公司 基于大数据的生产库数据统一清理方法及相关设备
CN110059134A (zh) * 2019-03-18 2019-07-26 深圳市买买提信息科技有限公司 一种数据同步至云平台的方法、相关装置和设备
CN110389955A (zh) * 2019-07-13 2019-10-29 北京海致星图科技有限公司 一种数据仓库调度文件自动生成系统及生成方法
CN111177247A (zh) * 2019-12-30 2020-05-19 腾讯科技(深圳)有限公司 一种数据转换的方法、装置及存储介质
CN111177247B (zh) * 2019-12-30 2023-10-20 腾讯科技(深圳)有限公司 一种数据转换的方法、装置及存储介质
CN111897806A (zh) * 2020-06-28 2020-11-06 苏宁金融科技(南京)有限公司 大数据离线数据质量检查方法及装置
CN112579586A (zh) * 2020-12-23 2021-03-30 平安普惠企业管理有限公司 数据处理方法、装置、设备及存储介质
CN114155037A (zh) * 2021-12-09 2022-03-08 兴业银行股份有限公司 工作成果可视化方法及系统
CN115576605A (zh) * 2022-10-09 2023-01-06 苏州领慧立芯科技有限公司 一种自动生成代码和文档的寄存器管理装置及形成方法

Similar Documents

Publication Publication Date Title
CN109359157A (zh) 数据同步生成方法、装置、计算机设备以及存储介质
CN109388676A (zh) 数据同步生成方法、装置、计算机设备以及存储介质
CN106528165B (zh) 代码生成方法及代码生成系统
Amrani et al. A tridimensional approach for studying the formal verification of model transformations
US7552116B2 (en) Method and system for extracting web query interfaces
CN110147445A (zh) 基于文本分类的意图识别方法、装置、设备及存储介质
CN111078780A (zh) 一种ai优化数据治理的方法
CN106940654A (zh) 源代码中内存错误的自动检测和定位方法
CN105589874A (zh) Etl任务依赖关系的检测方法、装置及etl工具
US11176329B2 (en) Source code compiler using natural language input
CN109408811A (zh) 一种数据处理方法及服务器
CN103064721A (zh) 多种解释性编程语言间的第一类对象共享
CN106843840A (zh) 一种基于相似度分析的源代码版本演化注释复用方法
CN108139898A (zh) 数据处理图编译
CN108279885A (zh) 一种对多个模型代码进行软件集成的方法及装置
CN110442332A (zh) 自然语言转换成程序语言的方法、装置及计算机设备
CN109299093A (zh) Hive数据库中拉链表的更新方法、装置和计算机设备
CN109408591A (zh) 支持sql驱动的ai与特征工程的决策型分布式数据库系统
CN106339313B (zh) 一种Java API程序异常与文档的描述不一致自动检测方法
CN108664237A (zh) 一种基于启发式和神经网络的非api成员推荐方法
CN110084371A (zh) 基于机器学习的模型迭代更新方法、装置和计算机设备
CN108376064A (zh) 规则引擎系统及规则引擎的相关方法
CN117312281A (zh) 一种多源异构数据自动融合方法、系统、设备及存储介质
JP6857661B2 (ja) 臨床治験のための無作為化及び治験供給管理(rtsm)システムを生成するコンピュータシステム
CN105138612B (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