CN107967316A - 一种数据同步方法、设备及计算机可读存储介质 - Google Patents

一种数据同步方法、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN107967316A
CN107967316A CN201711175125.8A CN201711175125A CN107967316A CN 107967316 A CN107967316 A CN 107967316A CN 201711175125 A CN201711175125 A CN 201711175125A CN 107967316 A CN107967316 A CN 107967316A
Authority
CN
China
Prior art keywords
storehouse
source
metadata
script
library
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
CN201711175125.8A
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 Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co 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 Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201711175125.8A priority Critical patent/CN107967316A/zh
Priority to PCT/CN2018/082270 priority patent/WO2019100638A1/zh
Publication of CN107967316A publication Critical patent/CN107967316A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation

Abstract

本发明公开了一种数据同步方法、设备及计算机可读存储介质,方法包括:获取所录入至少包括源库名称、源库表名称、源库表类型的源库信息,解析源库信息对应源库中所包括元数据得到源表结构;根据源表结构生成用于在目标库中建立临时存储数据的第一目标库表、和在目标库中建立存储与源库相同数据的第二目标库表的建表脚本;获取第一目标库表的表类型,并对应生成用于将元数据从源库依次经过第一目标库表、第二目标库表同步至目标库的同步脚本。通过配置有限的条目,自动生成建表脚本和同步脚本,使数据同步操作简单化,提升开发效率,并减少人为错误。

Description

一种数据同步方法、设备及计算机可读存储介质
技术领域
本发明涉及数据同步技术领域,具体涉及一种数据同步方法、设备及计算机可读存储介质。
背景技术
目前,对企业级数据库的数据进行同步操作(即将数据通过同步工具由源库同步至目标库)时,需要进行如下的开发:
1、根据源库表结构信息,建立目标hive数据库中对应的表;
2、根据使用的同步工具开发同步脚本程序;
上述过程中的建表脚本、以及同步脚本都是开发人员通过人工开发,开发过程复杂,效率低下,错误率高,极大的降低了数据同步的效率。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足之处,本发明的目的在于提供数据同步方法、设备及计算机可读存储介质,旨在解决现有技术中在数据同步过程中建表脚本、以及同步脚本都是开发人员通过人工开发,开发过程复杂,效率低下,错误率高,极大的降低了数据同步的效率的缺陷。
为了达到上述目的,本发明采取了以下技术方案:
一种数据同步方法,其中,包括如下步骤:
获取所录入至少包括源库名称、源库表名称、源库表类型的源库信息,解析源库信息对应源库中所包括元数据得到源表结构;
根据源表结构生成用于在目标库中建立临时存储数据的第一目标库表、和在目标库中建立存储与源库相同数据的第二目标库表的建表脚本;
获取第一目标库表的表类型,并对应生成用于将元数据从源库依次经过第一目标库表、第二目标库表同步至目标库的同步脚本。
所述数据同步方法,其中,所述第一目标库表的表类型为增量表、流水表或全量表中的一种;所述第二目标库表的表类型为增量表、流水表或全量表中的一种。
所述数据同步方法,其中,所述获取所录入至少包括源库名称、源库表名称、源库表类型的源库信息,解析源库信息对应源库中所包括元数据得到源表结构的步骤包括:
获取所录入包括源库名称、源库表名、源库表类型、源表更新字段、源表除重字段及目标库名称的源库信息;
从与源库信息中源库名称对应的源库获取元数据;
解析获取元数据的元数据信息表,并根据元数据信息表对应得到源表结构。
所述数据同步方法,其中,所述获取第一目标库表的表类型,并对应生成用于将元数据从源库依次经过第一目标库表、第二目标库表同步至目标库的同步脚本的步骤包括;
获取第一目标库表的表类型,判断第一目标库表的表类型是增量表、流水表或是全量表;
当第一目标库表的表类型是增量表时,则对应生成第一sqoop同步脚本及hive程序;所述第一sqoop同步脚本及hive程序用于将元数据从源库同步至第一目标库表的指定分区中,再将第一目标库表中的元数据根据源表除重字段进行除重后存入第二目标库表。
所述数据同步方法,其中,所述获取第一目标库表的表类型,并对应生成用于将元数据从源库依次经过第一目标库表、第二目标库表同步至目标库的同步脚本的步骤中还包括:
当第一目标库表的表类型是流水表时,则对应生成第二sqoop同步脚本及hive程序;所述第二sqoop同步脚本及hive程序用于将元数据从源库同步至第一目标库表的指定分区中,再将第一目标库表中的元数据存入第二目标库表。
所述数据同步方法,其中,所述获取第一目标库表的表类型,并对应生成用于将元数据从源库依次经过第一目标库表、第二目标库表同步至目标库的同步脚本的步骤中还包括:
当第一目标库表的表类型是全量表时,则对应生成第三sqoop同步脚本及hive程序;所述第三sqoop同步脚本及hive程序用于将元数据从源库同步至第一目标库表,再将第一目标库表中的元数据存入第二目标库表。
所述数据同步方法,其中,所述第一sqoop同步脚本及hive程序、第二sqoop同步脚本及hive程序、第三sqoop同步脚本及hive程序的执行周期均为24h。
所述数据同步方法,其中,所述元数据对应的元数据信息表至少包括表属主,表名称,表注释,列名称,列注释及列顺序。
一种数据同步设备,其中,包括:处理器、存储器、通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现所述的数据同步方法中的步骤。
一种计算机可读存储介质,其中,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现所述的数据同步方法中的步骤。
相较于现有技术,本发明提供的数据同步方法、设备及计算机可读存储介质,分别在源库和目标库中建立对应的表,再根据用户录入源库名称,源库表名称、源库表类型及目标hive库名称等条目和既定的规则,由程序自动生成建表脚本及同步脚本,根据自动生成的建表脚本和同步脚本,将源库中的数据同步到目标库中。通过配置有限的条目,自动生成建表脚本和同步脚本,使数据同步操作简单化,提升开发效率,并减少人为错误。
附图说明
图1为本发明提供的数据同步方法的流程图。
图2为本发明提供的数据同步方法中步骤S100的流程图。
图3为本发明提供的数据同步方法中步骤S300的流程图。
图4为本发明提供的数据同步设备的较佳实施例的运行环境示意图。
图5为本发明所述的数据同步程序的较佳实施例的功能模块图。
图6为本发明提供的数据同步***的结构框图。
具体实施方式
鉴于现有技术中数据同步过程中建表脚本、以及同步脚本都是开发人员通过人工开发,开发过程复杂,效率低下,错误率高,极大的降低了数据同步的效率的缺点,本发明的目的在于提供一种数据同步方法、设备及计算机可读存储介质,通过配置有限的条目,自动生成建表脚本和同步脚本,使数据同步操作简单化,提升开发效率,并减少人为错误。
为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
请参阅图1,本发明提供的数据同步方法,包括以下步骤:
步骤S100、获取所录入至少包括源库名称、源库表名称、源库表类型的源库信息,解析源库信息对应源库中所包括元数据得到源表结构。
本实施例中,当需要将元数据从源库同步至目标库中时,只需在由所述数据同步方法对应设计的同步工具(同步工具即是一个应用程序)的界面中,录入包括源库名称、源库表名、源库表类型、源表更新字段、源表除重字段及目标库名称的源库信息即可。在完成了源库信息录入后,后续自动生成建表脚本和同步脚本,使数据同步操作简单化。
其中,元数据所初始存储的源库为oracle数据库(oracle数据库又名OracleRDBMS,或简称Oracle,是甲骨文公司的一款关系数据库管理***),MySQL(MySQL是一个开放源码的小型关联式数据库管理***)数据库或PostgreSQL(PostgreSQL 是一个自由的对象-关系数据库服务器)数据库,所述目标库为hive(hive是基于Hadoop的一个数据仓库工具)数据库。这些数据库均为常见且易于操作的数据库管理***及工具,便于在本实施例中对数据进行分析及处理。
步骤S200,根据源表结构生成用于在目标库中建立临时存储数据的第一目标库表、和在目标库中建立存储与源库相同数据的第二目标库表的建表脚本。
本实施例中,当录入源库信息后,则需根据录入的源库信息自动解析源表结构,根据源表结构即及预设的建表规则来自动生成建表脚本。为了更清楚的理解自动生成建表脚本的过程,下面具体对预设的建表规则进行说明。
源库的建表规则如下,源库中的源表分为三种类型,分别为源表增量表(也可称为源库表增量表)、源表流水表(也可称为源库表流水表)及源表全量表(也可称为源库表全量表)三种。其中,源表增量表中数据不断有更新和新增,且当天会更新当天之前的历史数据;源表流水表中数据不断有新增,且当天不更新当天之前的历史数据;源表全量表中数据量较小,保存例如一些配置表或者维度表。
目标库的建表规则如下,在目标库中建立与源表相对应的第一目标库表(即src表,也即源文件表、source表)和第二目标库表(即ods表,也即Operational Data Store表、操作数据存储表)。其中,src表作为临时表,其分为src增量表(按日分区)、src流水表(按日分区)、src全量表(不需分区)。ods表与源表数据一致,其分为ods增量表(不需分区、ods增量表将src增量表中全部数据除重后即可使用)、ods流水表(按日分区、不除重)、ods全量表(不需分区、不除重)。
当预设了上述的建表规则后,在同步工具的界面中,录入包括源库名称、源库表名、源库表类型、源表更新字段、源表除重字段及目标库名称的源库信息即可,这样简化了操作。
步骤S300、获取第一目标库表的表类型,并对应生成用于将元数据从源库依次经过第一目标库表、第二目标库表同步至目标库的同步脚本。
本实施例中,由于所述第一目标库表的表类型为增量表、流水表或全量表中的一种;所述第二目标库表的表类型为增量表、流水表或全量表中的一种;且所述第一目标库表的表类型与源库表类型相同,且所述第二目标库表的表类型与源库表类型相同。这样,根据所录入源库信息的源库表类型,即可得到所述第一目标库表的表类型,并得到所述第二目标库表的表类型。
在一个实施例中,如图2所示,所述步骤S100具体包括:
步骤S101、获取所录入包括源库名称、源库表名、源库表类型、源表更新字段、源表除重字段及目标库名称的源库信息。
具体的,例如,当需要将元数据从nesop数据库(nesop是源库名称)中同步一张表n_bas_pc_sop(n_bas_pc_sop也仅仅是一个源数据库中一张源库表名,其中包括的数据为元数据)至hive数据库pa_nesop(pa_nesop是hive类型的目标库名称),则可在同步工具的界面上需录入如下信息:
源库名称:nesop
源库表名:n_bas_pc_sop
源库表类型:增量表
源表更新字段:update_date
源表除重字段:id
目标库名称:pa_nesop。
在整个的配置过程中,只需完成上述源库信息的录入即可,极大地方便了用户。
步骤S102、从与源库信息中源库名称对应的源库获取元数据。
元数据信息主要为前端业务***的各种信息,如银行业务***的客户的各种身份及存款信息等,元数据信息体现在由表属主、表名称、表注释、列名称,列注释和列顺序等部分组成的元数据信息表中。
步骤S103、解析获取元数据的元数据信息表,并根据元数据信息表对应得到源表结构。
表结构定义一个表的字段、类型、主键、外键、索引,这些基本的属性组成了数据库的表结构。源表结构,也即源库中源库表对应表结构。在业务***中,其表结构改变主要体现在列名称的变化上,如增加或修改了如客户的性别信息栏、收入状况信息栏等等,故本实施例中主要针对元数据信息的各个表属主的列名称进行对比。
在一个实施例中,如图3所示,所述步骤S300包括:
步骤S301、获取第一目标库表的表类型,判断第一目标库表的表类型是增量表、流水表或是全量表;
步骤S302、当第一目标库表的表类型是增量表时,则对应生成第一sqoop同步脚本及hive程序;所述第一sqoop同步脚本及hive程序用于将元数据从源库同步至第一目标库表的指定分区中,再将第一目标库表中的元数据根据源表除重字段进行除重后存入第二目标库表。
根据建表脚本,即可自动生成第一目标库表(n_bas_pc_sop_src)和第二目标库表(n_bas_pc_sop_ods)。此时,判断第一目标库表(n_bas_pc_sop_src)是增量表(即该增量表为分区表,按天分区)时,则程序会自动生成第一sqoop同步脚本及hive程序,每天将数据从源库同步至第一目标库表(n_bas_pc_sop_src)的一个新分区中,之后将第一目标库表(n_bas_pc_sop_src)中所有数据根据源表除重字段(id)除重,存入第二目标库表(n_bas_pc_sop_ods)。其中,所述第一sqoop同步脚本及hive程序的执行周期为24h(即每天执行一次)。
为了更清楚的了解sqoop同步脚本,下面通过一具体实施例来说明。例如执行sqoop指令将数据从mysql导入到hive中,指令为如下:
Sqoop import--connect jdbc:mysql://10.1.11.78:3306/video --table base_event --username root --password 123456 --m 1 --hive-import --hive-databasevideo --hive-table base_event --hive-overwrite --fields-terminated --by "\t"–lines –terminated --by “\n”---as-textfile;
其中,sqoop import --执行sqoop导入指令;
--connect jdbc:mysql://hostname:port/database--要连接的数据库地址、端口号、数据库database;
--table base_app-----要操作的数据库表;
--username root-----连接数据库的用户名;
--password 123456---连接数据库的密码;
-m 1 ------要启动的map数量;
--hive-import--- 采用hive方式导入;
[--create-hive-table] --- 如果导入的表在hive中不存在的话,sqoop自动在hive中创建该表。但是当表存在的情况下,添加该选项会导致指令报错。
--hive-database XXX --- 要将数据库表导入到hive的那个database中;
--hive-table base_ XXX --- 要将数据库表导入到hive的表中;
--hive-overwrite ---如果hive的表中已经存在数据,添加该项操作后,会将原有的数据覆盖掉;
--fields-terminated-by “\t” --- hive存储到hdfs中的文件中字段间的分隔符;
--lines-terminated-by “\n”– hive存储到hdfs中的文件中每行间的分隔符;
--as-textfile ---hive存储到hdfs中的文件格式,采用文本存储。
也即根据所录入的源库信息,及预设的建表规则就能自动生成同步脚本。
在一个实施例中,如图3所示,所述步骤S300还包括:
步骤S303、当第一目标库表的表类型是流水表时,则对应生成第二sqoop同步脚本及hive程序;所述第二sqoop同步脚本及hive程序用于将元数据从源库同步至第一目标库表的指定分区中,再将第一目标库表中的元数据存入第二目标库表。
判断第一目标库表(n_bas_pc_sop_src)是流水表(即该流水表为分区表,按天分区)时,则程序会自动生成第二sqoop同步脚本及hive程序,每天将数据从源库同步至第一目标库表(n_bas_pc_sop_src)的一个新分区中,之后将第一目标库表(n_bas_pc_sop_src)中所有数据根据源表无需除重,直接存入第二目标库表(n_bas_pc_sop_ods)。其中,所述第二sqoop同步脚本及hive程序的执行周期为24h(即每天执行一次)。
在一个实施例中,如图3所示,所述步骤S300还包括:
步骤S304、当第一目标库表的表类型是全量表时,则对应生成第三sqoop同步脚本及hive程序;所述第三sqoop同步脚本及hive程序用于将元数据从源库同步至第一目标库表,再将第一目标库表中的元数据存入第二目标库表。
判断第一目标库表(n_bas_pc_sop_src)是全量表(即该全量表为非分区表)时,则程序会自动生成第三sqoop同步脚本及hive程序,每天将数据从源库的全表不进行除重直接同步至第一目标库表(n_bas_pc_sop_src),之后将第一目标库表(n_bas_pc_sop_src)中所有数据,直接存入第二目标库表(n_bas_pc_sop_ods)。其中,所述第三sqoop同步脚本及hive程序的执行周期为24h(即每天执行一次)。
请继续参阅图4,图4为一个实施例中计算机设备的内部结构示意图。该计算机设备可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等具有通信功能的电子设备。服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。参照图4,该计算机设备包括通过***总线连接的处理器、非易失性存储介质、内存储器和网络接口。其中,该计算机设备的非易失性存储介质可存储操作***和计算机可读程序,该计算机可读程序被执行时,可使得处理器执行一种核保难度预测的方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该内存储器中可储存有计算机可读程序,该计算机可读程序被处理器执行时,可使得处理器执行一种数据同步方法。计算机设备的网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本发明还提供一种数据同步设备,其包括处理器10、存储器20及显示器30。图4仅示出了数据同步设备的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
所述存储器20在一些实施例中可以是所述数据同步设备的各组件的内部存储单元,例如数据同步设备的硬盘或内存。所述存储器20在另一些实施例中也可以是所述数据同步设备的各组件的外部存储设备,例如数据同步设备的各组件上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(FlashCard)等。进一步地,所述存储器20还可以既包括所述数据同步设备的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述数据同步设备的应用软件及各类数据,例如所述安装数据同步设备的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有数据同步程序40,该数据同步程序40可被处理器10所执行,从而实现本申请各实施例的修改源数据库表结构方法。
所述处理器10在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述权限认证方法等。
所述显示器30在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。所述显示器30用于显示在所述微信客户行为反馈设备中处理的信息以及用于显示可视化的用户界面,例如指派信息界面、认证报告界面等。所述微信客户行为反馈设备的部件10-30通过***总线相互通信。
在一实施例中,当处理器10执行所述存储器20中数据同步程序40时实现以下步骤:
获取所录入至少包括源库名称、源库表名称、源库表类型的源库信息,解析源库信息对应源库中所包括元数据得到源表结构;
根据源表结构生成用于在目标库中建立临时存储数据的第一目标库表、和在目标库中建立存储与源库相同数据的第二目标库表的建表脚本;
获取第一目标库表的表类型,并对应生成用于将元数据从源库依次经过第一目标库表、第二目标库表同步至目标库的同步脚本。
请参阅图5,其为本发明安装数据同步程序的设备的较佳实施例的功能模块图。在本实施例中,安装数据同步程序可以被分割成一个或多个模块,所述一个或者多个模块被存储于所述存储器中,并由一个或多个处理器(本实施例为所述处理器)所执行,以完成本发明。例如,在图5中,安装数据同步程序的数据同步设备可以被分割成录入解析模块31、建表脚本生成模块32和同步脚本生成模块33。本发明所称的模块是指能够完成特定功能的一系列计算机程序段,比程序更适合于描述所述数据同步程序在所述数据同步设备中的执行过程。以下描述将具体介绍所述模块31-33的功能。
录入解析模块31,用于获取所录入至少包括源库名称、源库表名称、源库表类型的源库信息,解析源库信息对应源库中所包括元数据得到源表结构;
建表脚本生成模块32,用于根据源表结构生成用于在目标库中建立临时存储数据的第一目标库表、和在目标库中建立存储与源库相同数据的第二目标库表的建表脚本;
同步脚本生成模块33,用于获取第一目标库表的表类型,并对应生成用于将元数据从源库依次经过第一目标库表、第二目标库表同步至目标库的同步脚本。
在一个实施例中,在所述的数据同步设备中,所述第一目标库表的表类型为增量表、流水表或全量表中的一种;所述第二目标库表的表类型为增量表、流水表或全量表中的一种。
在一个实施例中,在所述的数据同步设备中,所述获取所录入至少包括源库名称、源库表名称、源库表类型的源库信息,解析源库信息对应源库中所包括元数据得到源表结构的步骤包括:
获取所录入包括源库名称、源库表名、源库表类型、源表更新字段、源表除重字段及目标库名称的源库信息;
从与源库信息中源库名称对应的源库获取元数据;
解析获取元数据的元数据信息表,并根据元数据信息表对应得到源表结构。
在一个实施例中,在所述的数据同步设备中,所述所述获取第一目标库表的表类型,并对应生成用于将元数据从源库依次经过第一目标库表、第二目标库表同步至目标库的同步脚本的步骤包括:
获取第一目标库表的表类型,判断第一目标库表的表类型是增量表、流水表或是全量表;
当第一目标库表的表类型是增量表时,则对应生成第一sqoop同步脚本及hive程序;所述第一sqoop同步脚本及hive程序用于将元数据从源库同步至第一目标库表的指定分区中,再将第一目标库表中的元数据根据源表除重字段进行除重后存入第二目标库表。
在一个实施例中,在所述的数据同步设备中,所述所述获取第一目标库表的表类型,并对应生成用于将元数据从源库依次经过第一目标库表、第二目标库表同步至目标库的同步脚本的步骤还包括:
当第一目标库表的表类型是流水表时,则对应生成第二sqoop同步脚本及hive程序;所述第二sqoop同步脚本及hive程序用于将元数据从源库同步至第一目标库表的指定分区中,再将第一目标库表中的元数据存入第二目标库表。
在一个实施例中,在所述的数据同步设备中,所述所述获取第一目标库表的表类型,并对应生成用于将元数据从源库依次经过第一目标库表、第二目标库表同步至目标库的同步脚本的步骤还包括:
当第一目标库表的表类型是全量表时,则对应生成第三sqoop同步脚本及hive程序;所述第三sqoop同步脚本及hive程序用于将元数据从源库同步至第一目标库表,再将第一目标库表中的元数据存入第二目标库表。
在一个实施例中,在所述的数据同步设备中,所述第一sqoop同步脚本及hive程序、第二sqoop同步脚本及hive程序、第三sqoop同步脚本及hive程序的执行周期均为24h。
在一个实施例中,在所述的数据同步设备中,所述元数据对应的元数据信息表至少包括表属主,表名称,表注释,列名称,列注释及列顺序。
基于上述数据同步方法和数据同步设备,本发明还相应提供了一种数据同步***,请参阅图6,其包括若干个源数据库110、一目标数据库120和一数据同步设备130。
其中,若干个源数据库110的元数据,均通过数据同步设备130中处理后由自动生成的建表脚本和同步脚本上传至目标数据库120。
基于上述数据同步方法和数据同步设备,本发明还相应提供了一种储介质。所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现所述的数据同步方法的步骤:
获取所录入至少包括源库名称、源库表名称、源库表类型的源库信息,解析源库信息对应源库中所包括元数据得到源表结构;
根据源表结构生成用于在目标库中建立临时存储数据的第一目标库表、和在目标库中建立存储与源库相同数据的第二目标库表的建表脚本;
获取第一目标库表的表类型,并对应生成用于将元数据从源库依次经过第一目标库表、第二目标库表同步至目标库的同步脚本。
在一个实施例中,计算机在执行所述计算机可读存储介质中存储的数据同步程序时,所述第一目标库表的表类型为增量表、流水表或全量表中的一种;所述第二目标库表的表类型为增量表、流水表或全量表中的一种。
在一个实施例中,计算机在执行所述计算机可读存储介质中存储的数据同步程序时,所述获取所录入至少包括源库名称、源库表名称、源库表类型的源库信息,解析源库信息对应源库中所包括元数据得到源表结构的步骤包括:
获取所录入包括源库名称、源库表名、源库表类型、源表更新字段、源表除重字段及目标库名称的源库信息;
从与源库信息中源库名称对应的源库获取元数据;
解析获取元数据的元数据信息表,并根据元数据信息表对应得到源表结构。
在一个实施例中,计算机在执行所述计算机可读存储介质中存储的数据同步程序时,所述所述获取第一目标库表的表类型,并对应生成用于将元数据从源库依次经过第一目标库表、第二目标库表同步至目标库的同步脚本的步骤包括:
获取第一目标库表的表类型,判断第一目标库表的表类型是增量表、流水表或是全量表;
当第一目标库表的表类型是增量表时,则对应生成第一sqoop同步脚本及hive程序;所述第一sqoop同步脚本及hive程序用于将元数据从源库同步至第一目标库表的指定分区中,再将第一目标库表中的元数据根据源表除重字段进行除重后存入第二目标库表。
在一个实施例中,计算机在执行所述计算机可读存储介质中存储的数据同步程序时,所述所述获取第一目标库表的表类型,并对应生成用于将元数据从源库依次经过第一目标库表、第二目标库表同步至目标库的同步脚本的步骤还包括:
当第一目标库表的表类型是流水表时,则对应生成第二sqoop同步脚本及hive程序;所述第二sqoop同步脚本及hive程序用于将元数据从源库同步至第一目标库表的指定分区中,再将第一目标库表中的元数据存入第二目标库表。
在一个实施例中,计算机在执行所述计算机可读存储介质中存储的数据同步程序时,所述所述获取第一目标库表的表类型,并对应生成用于将元数据从源库依次经过第一目标库表、第二目标库表同步至目标库的同步脚本的步骤还包括:
当第一目标库表的表类型是全量表时,则对应生成第三sqoop同步脚本及hive程序;所述第三sqoop同步脚本及hive程序用于将元数据从源库同步至第一目标库表,再将第一目标库表中的元数据存入第二目标库表。
在一个实施例中,计算机在执行所述计算机可读存储介质中存储的数据同步程序时,所述第一sqoop同步脚本及hive程序、第二sqoop同步脚本及hive程序、第三sqoop同步脚本及hive程序的执行周期均为24h。
在一个实施例中,计算机在执行所述计算机可读存储介质中存储的数据同步程序时,所述元数据对应的元数据信息表至少包括表属主,表名称,表注释,列名称,列注释及列顺序。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,前述计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,前述计算机可读取存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质。
综上所述,本发明提供的数据同步方法、设备及计算机可读存储介质,方法包括:获取所录入至少包括源库名称、源库表名称、源库表类型的源库信息,解析源库信息对应源库中所包括元数据得到源表结构;根据源表结构生成用于在目标库中建立临时存储数据的第一目标库表、和在目标库中建立存储与源库相同数据的第二目标库表的建表脚本;获取第一目标库表的表类型,并对应生成用于将元数据从源库依次经过第一目标库表、第二目标库表同步至目标库的同步脚本。通过配置有限的条目,自动生成建表脚本和同步脚本,使数据同步操作简单化,提升开发效率,并减少人为错误。
当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述程序可存储于一计算机可读取的存储介质中,该程序在执行时可包括如上述各方法实施例的流程。其中所述的计算机可读存储介质可为存储器、磁碟、光盘等。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (10)

1.一种数据同步方法,其特征在于,包括如下步骤:
获取所录入至少包括源库名称、源库表名称、源库表类型的源库信息,解析源库信息对应源库中所包括元数据得到源表结构;
根据源表结构生成用于在目标库中建立临时存储数据的第一目标库表、和在目标库中建立存储与源库相同数据的第二目标库表的建表脚本;
获取第一目标库表的表类型,并对应生成用于将元数据从源库依次经过第一目标库表、第二目标库表同步至目标库的同步脚本。
2.根据权利要求1所述数据同步方法,其特征在于,所述第一目标库表的表类型为增量表、流水表或全量表中的一种;所述第二目标库表的表类型为增量表、流水表或全量表中的一种。
3.根据权利要求2所述数据同步方法,其特征在于,所述获取所录入至少包括源库名称、源库表名称、源库表类型的源库信息,解析源库信息对应源库中所包括元数据得到源表结构的步骤包括:
获取所录入包括源库名称、源库表名、源库表类型、源表更新字段、源表除重字段及目标库名称的源库信息;
从与源库信息中源库名称对应的源库获取元数据;
解析获取元数据的元数据信息表,并根据元数据信息表对应得到源表结构。
4.根据权利要求3所述数据同步方法,其特征在于,所述获取第一目标库表的表类型,并对应生成用于将元数据从源库依次经过第一目标库表、第二目标库表同步至目标库的同步脚本的步骤包括:
获取第一目标库表的表类型,判断第一目标库表的表类型是增量表、流水表或是全量表;
当第一目标库表的表类型是增量表时,则对应生成第一sqoop同步脚本及hive程序;所述第一sqoop同步脚本及hive程序用于将元数据从源库同步至第一目标库表的指定分区中,再将第一目标库表中的元数据根据源表除重字段进行除重后存入第二目标库表。
5.根据权利要求4所述数据同步方法,其特征在于,所述获取第一目标库表的表类型,并对应生成用于将元数据从源库依次经过第一目标库表、第二目标库表同步至目标库的同步脚本的步骤中还包括:
当第一目标库表的表类型是流水表时,则对应生成第二sqoop同步脚本及hive程序;所述第二sqoop同步脚本及hive程序用于将元数据从源库同步至第一目标库表的指定分区中,再将第一目标库表中的元数据存入第二目标库表。
6.根据权利要求5所述数据同步方法,其特征在于,所述获取第一目标库表的表类型,并对应生成用于将元数据从源库依次经过第一目标库表、第二目标库表同步至目标库的同步脚本的步骤中还包括:
当第一目标库表的表类型是全量表时,则对应生成第三sqoop同步脚本及hive程序;所述第三sqoop同步脚本及hive程序用于将元数据从源库同步至第一目标库表,再将第一目标库表中的元数据存入第二目标库表。
7.根据权利要求6所述数据同步方法,其特征在于,所述第一sqoop同步脚本及hive程序、第二sqoop同步脚本及hive程序、第三sqoop同步脚本及hive程序的执行周期均为24h。
8.根据权利要求1-7任一项所述数据同步方法,其特征在于,所述元数据对应的元数据信息表至少包括表属主,表名称,表注释,列名称,列注释及列顺序。
9.一种数据同步设备,其特征在于,包括:处理器、存储器、通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如权利要求1-8任意一项所述的数据同步方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-8任意一项所述的数据同步方法中的步骤。
CN201711175125.8A 2017-11-22 2017-11-22 一种数据同步方法、设备及计算机可读存储介质 Pending CN107967316A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201711175125.8A CN107967316A (zh) 2017-11-22 2017-11-22 一种数据同步方法、设备及计算机可读存储介质
PCT/CN2018/082270 WO2019100638A1 (zh) 2017-11-22 2018-04-09 数据同步方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711175125.8A CN107967316A (zh) 2017-11-22 2017-11-22 一种数据同步方法、设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN107967316A true CN107967316A (zh) 2018-04-27

Family

ID=62000385

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711175125.8A Pending CN107967316A (zh) 2017-11-22 2017-11-22 一种数据同步方法、设备及计算机可读存储介质

Country Status (2)

Country Link
CN (1) CN107967316A (zh)
WO (1) WO2019100638A1 (zh)

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109241026A (zh) * 2018-07-18 2019-01-18 阿里巴巴集团控股有限公司 数据管理的方法、装置及***
CN109241184A (zh) * 2018-08-20 2019-01-18 中国平安人寿保险股份有限公司 数据同步方法、装置、计算机设备和存储介质
CN109558448A (zh) * 2018-10-10 2019-04-02 北京海数宝科技有限公司 数据处理方法、装置、计算机设备和存储介质
CN109614446A (zh) * 2018-11-23 2019-04-12 金色熊猫有限公司 数据同步方法、装置、电子设备及存储介质
CN109657002A (zh) * 2018-11-09 2019-04-19 山东中创软件商用中间件股份有限公司 一种多表批量数据同步方法、装置及设备
CN109684407A (zh) * 2018-11-23 2019-04-26 武汉达梦数据库有限公司 一种dml操作的数据同步方法
CN109977157A (zh) * 2019-02-27 2019-07-05 深圳点猫科技有限公司 一种基于数据平台将数据导入目标目录的方法和电子设备
CN110020840A (zh) * 2019-01-04 2019-07-16 阿里巴巴集团控股有限公司 数据传输方法及其***
CN110059134A (zh) * 2019-03-18 2019-07-26 深圳市买买提信息科技有限公司 一种数据同步至云平台的方法、相关装置和设备
CN110933144A (zh) * 2019-11-09 2020-03-27 许继集团有限公司 一种变电站主站***及数据库同步方法
CN111125254A (zh) * 2019-12-23 2020-05-08 北京懿医云科技有限公司 数据库同步方法、装置、电子设备及计算机可读介质
CN111209282A (zh) * 2020-01-10 2020-05-29 深圳前海环融联易信息科技服务有限公司 数据存储方法、装置、计算机设备及存储介质
CN111259068A (zh) * 2020-04-28 2020-06-09 成都四方伟业软件股份有限公司 一种基于数据仓库的数据开发方法及***
CN111324610A (zh) * 2020-02-19 2020-06-23 深圳市融壹买信息科技有限公司 一种数据同步的方法及装置
CN111400397A (zh) * 2020-02-29 2020-07-10 平安科技(深圳)有限公司 数据同步方法、装置、设备和计算机存储介质
CN111767267A (zh) * 2020-06-18 2020-10-13 杭州数梦工场科技有限公司 元数据处理方法、装置、电子设备
CN111858760A (zh) * 2020-07-13 2020-10-30 中国工商银行股份有限公司 一种异构数据库的数据处理方法及装置
CN112269788A (zh) * 2020-11-13 2021-01-26 中盈优创资讯科技有限公司 提升ClickHouse数据入库性能的方法及装置
CN112364049A (zh) * 2020-11-10 2021-02-12 中国平安人寿保险股份有限公司 数据同步脚本生成方法、***、终端及存储介质
CN112597150A (zh) * 2020-12-04 2021-04-02 光大科技有限公司 数据采集方法、装置、可读存储介质和电子装置
CN112817934A (zh) * 2021-01-21 2021-05-18 厦门熵基科技有限公司 一种数据迁移方法、装置、设备和计算机可读存储介质
CN113076314A (zh) * 2021-03-30 2021-07-06 深圳市酷开网络科技股份有限公司 数据表的存储方法、装置及计算机可读存储介质
CN113127448A (zh) * 2021-04-23 2021-07-16 深圳市酷开网络科技股份有限公司 一种地域维度表生成方法、装置、服务器及存储介质
WO2021169277A1 (zh) * 2020-02-25 2021-09-02 平安科技(深圳)有限公司 数据同步方法、装置、设备及计算机可读存储介质
CN114780641A (zh) * 2022-05-07 2022-07-22 湖南长银五八消费金融股份有限公司 多库多表同步方法、装置、计算机设备和存储介质
CN116089537A (zh) * 2023-04-07 2023-05-09 江西省智能产业技术创新研究院 增量数据同步方法、***、计算机及存储介质
CN111767267B (zh) * 2020-06-18 2024-05-10 杭州数梦工场科技有限公司 元数据处理方法、装置、电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100106749A1 (en) * 2008-10-29 2010-04-29 International Business Machines Corporation Reorganizing table-based data objects
CN102346775A (zh) * 2011-09-26 2012-02-08 苏州博远容天信息科技有限公司 一种基于日志的异构多源数据库同步方法
US20140279878A1 (en) * 2013-03-12 2014-09-18 Gregory Francis Buerk General, flexible, resilent ticketing interface between a device management system and ticketing systems
CN106919697A (zh) * 2017-03-07 2017-07-04 郑州云海信息技术有限公司 一种将数据同时导入多个Hadoop组件的方法
CN107301250A (zh) * 2017-07-27 2017-10-27 南京南瑞集团公司 一种多源数据库协同备份方法
CN107330003A (zh) * 2017-06-12 2017-11-07 上海藤榕网络科技有限公司 数据同步方法、***、存储器及数据同步设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102495910B (zh) * 2011-12-28 2013-09-18 畅捷通信息技术股份有限公司 实现异构***数据定时同步的装置和方法
CN103440273B (zh) * 2013-08-06 2016-08-24 北京航空航天大学 一种数据跨平台迁移方法及装置
CN103744949B (zh) * 2013-12-31 2017-12-12 金蝶软件(中国)有限公司 数据集成方法和***
CN104317843B (zh) * 2014-10-11 2017-08-25 上海瀚之友信息技术服务有限公司 一种数据同步etl***
US10552453B2 (en) * 2015-11-25 2020-02-04 International Business Machines Corporation Determining data replication cost for cloud based application

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100106749A1 (en) * 2008-10-29 2010-04-29 International Business Machines Corporation Reorganizing table-based data objects
CN102346775A (zh) * 2011-09-26 2012-02-08 苏州博远容天信息科技有限公司 一种基于日志的异构多源数据库同步方法
US20140279878A1 (en) * 2013-03-12 2014-09-18 Gregory Francis Buerk General, flexible, resilent ticketing interface between a device management system and ticketing systems
CN106919697A (zh) * 2017-03-07 2017-07-04 郑州云海信息技术有限公司 一种将数据同时导入多个Hadoop组件的方法
CN107330003A (zh) * 2017-06-12 2017-11-07 上海藤榕网络科技有限公司 数据同步方法、***、存储器及数据同步设备
CN107301250A (zh) * 2017-07-27 2017-10-27 南京南瑞集团公司 一种多源数据库协同备份方法

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109241026B (zh) * 2018-07-18 2021-10-15 创新先进技术有限公司 数据管理的方法、装置及***
CN109241026A (zh) * 2018-07-18 2019-01-18 阿里巴巴集团控股有限公司 数据管理的方法、装置及***
CN109241184B (zh) * 2018-08-20 2024-03-15 中国平安人寿保险股份有限公司 数据同步方法、装置、计算机设备和存储介质
CN109241184A (zh) * 2018-08-20 2019-01-18 中国平安人寿保险股份有限公司 数据同步方法、装置、计算机设备和存储介质
CN109558448A (zh) * 2018-10-10 2019-04-02 北京海数宝科技有限公司 数据处理方法、装置、计算机设备和存储介质
CN109657002A (zh) * 2018-11-09 2019-04-19 山东中创软件商用中间件股份有限公司 一种多表批量数据同步方法、装置及设备
CN109657002B (zh) * 2018-11-09 2022-04-08 山东中创软件商用中间件股份有限公司 一种多表批量数据同步方法、装置及设备
CN109684407A (zh) * 2018-11-23 2019-04-26 武汉达梦数据库有限公司 一种dml操作的数据同步方法
CN109614446A (zh) * 2018-11-23 2019-04-12 金色熊猫有限公司 数据同步方法、装置、电子设备及存储介质
CN110020840A (zh) * 2019-01-04 2019-07-16 阿里巴巴集团控股有限公司 数据传输方法及其***
CN109977157A (zh) * 2019-02-27 2019-07-05 深圳点猫科技有限公司 一种基于数据平台将数据导入目标目录的方法和电子设备
CN110059134A (zh) * 2019-03-18 2019-07-26 深圳市买买提信息科技有限公司 一种数据同步至云平台的方法、相关装置和设备
CN110933144A (zh) * 2019-11-09 2020-03-27 许继集团有限公司 一种变电站主站***及数据库同步方法
CN111125254A (zh) * 2019-12-23 2020-05-08 北京懿医云科技有限公司 数据库同步方法、装置、电子设备及计算机可读介质
CN111209282A (zh) * 2020-01-10 2020-05-29 深圳前海环融联易信息科技服务有限公司 数据存储方法、装置、计算机设备及存储介质
CN111324610A (zh) * 2020-02-19 2020-06-23 深圳市融壹买信息科技有限公司 一种数据同步的方法及装置
WO2021169277A1 (zh) * 2020-02-25 2021-09-02 平安科技(深圳)有限公司 数据同步方法、装置、设备及计算机可读存储介质
CN111400397B (zh) * 2020-02-29 2023-04-11 平安科技(深圳)有限公司 数据同步方法、装置、设备和计算机存储介质
CN111400397A (zh) * 2020-02-29 2020-07-10 平安科技(深圳)有限公司 数据同步方法、装置、设备和计算机存储介质
CN111259068A (zh) * 2020-04-28 2020-06-09 成都四方伟业软件股份有限公司 一种基于数据仓库的数据开发方法及***
CN111767267A (zh) * 2020-06-18 2020-10-13 杭州数梦工场科技有限公司 元数据处理方法、装置、电子设备
CN111767267B (zh) * 2020-06-18 2024-05-10 杭州数梦工场科技有限公司 元数据处理方法、装置、电子设备
CN111858760A (zh) * 2020-07-13 2020-10-30 中国工商银行股份有限公司 一种异构数据库的数据处理方法及装置
CN111858760B (zh) * 2020-07-13 2024-03-22 中国工商银行股份有限公司 一种异构数据库的数据处理方法及装置
CN112364049A (zh) * 2020-11-10 2021-02-12 中国平安人寿保险股份有限公司 数据同步脚本生成方法、***、终端及存储介质
CN112364049B (zh) * 2020-11-10 2024-05-17 中国平安人寿保险股份有限公司 数据同步脚本生成方法、***、终端及存储介质
CN112269788A (zh) * 2020-11-13 2021-01-26 中盈优创资讯科技有限公司 提升ClickHouse数据入库性能的方法及装置
CN112597150A (zh) * 2020-12-04 2021-04-02 光大科技有限公司 数据采集方法、装置、可读存储介质和电子装置
CN112817934A (zh) * 2021-01-21 2021-05-18 厦门熵基科技有限公司 一种数据迁移方法、装置、设备和计算机可读存储介质
CN113076314A (zh) * 2021-03-30 2021-07-06 深圳市酷开网络科技股份有限公司 数据表的存储方法、装置及计算机可读存储介质
CN113076314B (zh) * 2021-03-30 2024-04-19 深圳市酷开网络科技股份有限公司 数据表的存储方法、装置及计算机可读存储介质
CN113127448A (zh) * 2021-04-23 2021-07-16 深圳市酷开网络科技股份有限公司 一种地域维度表生成方法、装置、服务器及存储介质
CN114780641A (zh) * 2022-05-07 2022-07-22 湖南长银五八消费金融股份有限公司 多库多表同步方法、装置、计算机设备和存储介质
CN114780641B (zh) * 2022-05-07 2023-07-14 湖南长银五八消费金融股份有限公司 多库多表同步方法、装置、计算机设备和存储介质
CN116089537B (zh) * 2023-04-07 2023-08-04 江西省智能产业技术创新研究院 增量数据同步方法、***、计算机及存储介质
CN116089537A (zh) * 2023-04-07 2023-05-09 江西省智能产业技术创新研究院 增量数据同步方法、***、计算机及存储介质

Also Published As

Publication number Publication date
WO2019100638A1 (zh) 2019-05-31

Similar Documents

Publication Publication Date Title
CN107967316A (zh) 一种数据同步方法、设备及计算机可读存储介质
CN105487864B (zh) 代码自动生成的方法和装置
CN106980669B (zh) 一种数据的存储、获取方法及装置
US11172022B2 (en) Migrating cloud resources
US9363252B2 (en) Method for customizing software applications
CN109885316B (zh) 基于kubernetes的hdfs-hbase部署方法及装置
CN108536761A (zh) 报表数据查询方法及服务器
CN108737325A (zh) 一种多租户数据隔离方法、装置及***
CN103744680B (zh) 一种业务流程处理方法及装置
CN110287097A (zh) 批量测试方法、装置及计算机可读存储介质
CN104517181B (zh) 一种核电站企业内容管理***及方法
CN105814579A (zh) 沙盒应用数据重定向至数据中心
CN112860777B (zh) 数据处理方法、装置及设备
CN109358965A (zh) 云计算集群资源调度方法、介质、装置和计算设备
CN103455591A (zh) 一种并行协同***的标准数据交换接口方法
CN103458022A (zh) 一种多人异地并行协同***
CN109558191A (zh) 一种配置页面的方法、装置、存储介质及计算机设备
CN101789944B (zh) 多功能电能表通信协议栈的开发***
CN106648569A (zh) 目标序列化实现方法和装置
CN105678118B (zh) 一种含数字证书的软件版本生成方法及装置
CN104239412B (zh) 数据存储库中应用至存储库的数据映射及相关方法、***和计算机可读介质
US20170235558A1 (en) System and method for recapture and rebuild of application definition from installed instance
CN102289367B (zh) 根据模式的命令行外壳命令生成
US10706225B2 (en) Form management system and method
US11900269B2 (en) Method and apparatus for managing knowledge base, device and medium

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: 20180427

RJ01 Rejection of invention patent application after publication