一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据同步方法、装置、设备及存储介质与流程

2022-05-18 11:32:28 来源:中国专利 TAG:
1.本技术涉及数据同步
技术领域
:,尤其涉及一种数据同步方法、装置、设备及存储介质。
背景技术
::2.通用数据同步方法使针对数据中台离线数仓数据的同步场景所提出的数据同步方法,解决现有数据中台需要根据不同数据源使用不同的工具创建etl过程进行数据同步的难点。3.目前,数据中台会根据数据源的不同采用不同的技术架构实现。比如,针对mysql数据源,采用canal kafka的数据采集架构,对mysql的binlog日志文件进行解析获取数据记录写入数据仓库;针对oracle数据库,采用oracle公司的oraclegoldengate工具完成数据同步。可以预见,随着数据中台接入的数据源种类增多,需要引入更多工具才能完成数据源到数据仓库的数据同步,使得数据中台的整体复杂度增加,不利于日常的运维管理。技术实现要素:4.本技术提供了一种数据同步方法、装置、设备及存储介质,以解决当前数据同步场景中数据中台的复杂度随着数据源种类的增多而增大的技术问题。5.为了解决上述技术问题,第一方面,本技术实施例提供了一种数据同步方法,包括:6.根据源数据库中待同步业务数据的数据表,生成数据库实体关系模型和目标索引表,数据库实体关系模型用于表征源数据库中数据实体之间的实体关系,目标索引表用于记录源数据库的第一数据主键与同步到数据中台后的第二数据主键之间的主键索引关系;7.根据目标索引表中的主键索引关系,将源数据库的数据记录同步至数据中台,数据记录包含待同步业务数据;8.根据数据库实体关系模型,还原数据记录所对应的实体关系,以完成源数据库到数据中台的数据同步。9.本实施例通过源数据库中待同步业务数据的数据表,生成数据库实体关系模型和目标索引表,以得到源数据库中数据实体之间的实体关系,以及得到记录源数据库的第一数据主键与同步到数据中台后的第二数据主键之间的主键索引关系,从而能够利用标准sql根据数据库的基础技术和数据库的元数据进行数据同步设计;并根据目标索引表中的主键索引关系,将源数据库的数据记录同步至数据中台,数据记录包含待同步业务数据;以及根据数据库实体关系模型,还原数据记录所对应的实体关系,以完成源数据库到数据中台的数据同步,从而可以在任何兼容标准sql的数据库下执行数据同步工作,而无需因数据源不同而采用不同工具进行数据同步,也无需借助数据库日志记录进行同步,有效避免数据中台的复杂度随着数据源种类的增多而增大的问题,降低数据中台的复杂度。10.在一实施例中,根据源数据库中待同步业务数据的数据表,生成数据库实体关系模型和目标索引表,包括:11.根据业务关系,确定源数据库中的待同步业务数据对应的数据表;12.根据数据表,利用数据库工具dbeaver,创建数据库实体关系模型;13.根据数据库,利用预设的数据库建表语句,创建目标索引表。14.在一实施例中,根据数据表,利用数据库工具dbeaver,创建数据库实体关系模型,包括:15.利用数据库工具dbeaver,将数据表的表结构移植至数据中台的模型数据库;16.在模型数据库,通过配置外键对应关系,建立源数据库与数据中台之间的实体关系,外键对应关系为源数据库的第一外键与数据中台的第二外键之间的对应关系。17.在一实施例中,根据数据库,利用预设的数据库建表语句,创建目标索引表,包括:18.利用数据库建表语句,在数据表的数据表名称添加预设值,得到初始索引表;19.将初始索引表的自增值配置为目标自增值,并将源数据库的第一数据主键插入到初始索引表,得到目标索引表。20.在一实施例中,目标自增值为与数据中台的数据表相同的自增值。21.在一实施例中,根据索引表中的主键索引关系,将源数据库的数据记录同步至数据中台,包括:22.从源数据库中获取待同步业务数据对应的数据记录,数据记录包括第一数据主键;23.根据主键索引关系,将数据记录中的第一数据主键替换为第二数据主键,生成新的数据记录;24.将新的数据记录添加至数据中台。25.在一实施例中,根据数据库实体关系模型,还原数据记录所对应的实体关系,包括:26.根据目标索引表,确定每个待同步业务数据的第一外键值;27.根据数据库实体关系模型中的外键对应关系,将第一外键值替换为数据记录对应的第二外键值,以还原数据记录所对应的实体关系。28.第二方面,本技术实施例提供一种数据同步装置,包括:29.生成模块,用于根据源数据库中待同步业务数据的数据表,生成数据库实体关系模型和目标索引表,数据库实体关系模型用于表征源数据库中数据实体之间的实体关系,目标索引表用于记录源数据库的第一数据主键与同步到数据中台后的第二数据主键之间的主键索引关系;30.同步模块,用于根据目标索引表中的主键索引关系,将源数据库的数据记录同步至数据中台,数据记录包含待同步业务数据;31.还原模块,用于根据数据库实体关系模型,还原数据记录所对应的实体关系,以完成源数据库到数据中台的数据同步。32.第三方面,本技术实施例提供一种计算机设备,包括处理器和存储器,存储器用于存储计算机程序,计算机程序被处理器执行时实现如第一方面的数据同步方法。33.第四方面,本技术实施例提供一种计算机可读存储介质,其存储有计算机程序,计算机程序被处理器执行时实现如第一方面述的数据同步方法。34.需要说明的是,上述第二方面至第四方面的有益效果请参见上述第一方面的相关描述,在此不再赘述。附图说明35.图1为本技术实施例示出的数据同步方法的流程示意图;36.图2为本技术实施例示出的数据库的关系示意图;37.图3为本技术实施例示出的数据库实体关系模型的示意图;38.图4为本技术实施例示出的初始索引表的示意图;39.图5为本技术实施例示出的数据索引的创建流程示意图;40.图6为本技术实施例示出的待同步业务数据的同步流程示意图;41.图7为本技术实施例示出的实体还原流程示意图;42.图8为本技术实施例示出的数据同步装置的结构示意图;43.图9为本技术实施例示出的计算机设备的结构示意图。具体实施方式44.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。45.如相关技术记载,数据中台会根据数据源的不同采用不同的技术架构实现。比如,针对mysql数据源,采用canal kafka的数据采集架构,对mysql的binlog日志文件进行解析获取数据记录写入数据仓库;针对oracle数据库,采用oracle公司的oraclegoldengate工具完成数据同步。可以预见,随着数据中台接入的数据源种类增多,需要引入更多工具才能完成数据源到数据仓库的数据同步,使得数据中台的整体复杂度增加,不利于日常的运维管理。46.为此,本技术实施例提供一种数据同步方法,通过源数据库中待同步业务数据的数据表,生成数据库实体关系模型和目标索引表,以得到源数据库中数据实体之间的实体关系,以及得到记录源数据库的第一数据主键与同步到数据中台后的第二数据主键之间的主键索引关系,从而能够利用标准sql根据数据库的基础技术和数据库的元数据进行数据同步设计;并根据目标索引表中的主键索引关系,将源数据库的数据记录同步至数据中台,数据记录包含待同步业务数据;以及根据数据库实体关系模型,还原数据记录所对应的实体关系,以完成源数据库到数据中台的数据同步,从而可以在任何兼容标准sql的数据库下执行数据同步工作,而无需因数据源不同而采用不同工具进行数据同步,也无需借助数据库日志记录进行同步,有效避免数据中台的复杂度随着数据源种类的增多而增大的问题,降低数据中台的复杂度。47.请参照图1,图1为本技术实施例提供的一种数据同步方法的流程示意图。本技术实施例的数据同步方法能够应用于计算机设备,该计算机设备包括但不限于智能手机、平板电脑、笔记本电脑、桌上型计算机、物理服务器和云服务器等设备。如图1所示,本实施例的数据同步方法包括步骤s101至步骤s104,详述如下:48.步骤s101,根据源数据库中待同步业务数据的数据表,生成数据库实体关系模型和目标索引表,所述数据库实体关系模型用于表征所述源数据库中数据实体之间的实体关系,所述目标索引表用于记录源数据库的第一数据主键与同步到所述数据中台后的第二数据主键之间的主键索引关系。49.步骤s102,根据所述目标索引表中的主键索引关系,将所述源数据库的数据记录同步至所述数据中台,所述数据记录包含所述待同步业务数据。50.步骤s103,根据所述数据库实体关系模型,还原所述数据记录所对应的实体关系,以完成所述源数据库到所述数据中台的数据同步。51.在步骤s101至步骤s103中,各个数据库包含数据库元数据,数据库元数据包括但不限于数据表名称、数据字段名称、外表约束关系、主键、外键和自增值。可选地,元数据记录在名称为information_schema的数据库中。52.作为示例而非限定,图2所示了数据库的关系示意图。本实施例采用4个数据库,分别为用于标识源数据库的source_db、用于标识数据中台的platform_db、用于标识索引库的index_db、用于标识实体关系模型的fk_db。其中,除了source_db由业务系统提供,其余数据库均由数据中台创建。53.本实施例的每个步骤都通过模板sql对实体关系模型和元数据进行组装,得到用于进行数据同步的目标sql,使用sql语句将数据同步方法封装成软件模型,为数据中台提供一种可以利用实体关系模型完成对数据源进行数据同步的通用软件,改善因数据源种类不同需要不断扩展数据中台数据同步工具的情况。以及通过在数据中台创建模型库和索引库进行建模,可以避免直接操作业务数据库给生产环境造成的数据库变动的风险。54.在一实施例中,在图1所示实施例的基础上,上述步骤s101,包括:55.根据业务关系,确定所述源数据库中的待同步业务数据对应的数据表;56.根据所述数据表,利用数据库工具dbeaver,创建所述数据库实体关系模型;57.根据所述数据库,利用预设的数据库建表语句,创建所述目标索引表。58.在本实施例中,在进行数据同步之前,需要明确数据中台从业务系统中所要获取的业务数据,并根据业务关系确定与业务相关联的数据表。接着,根据确定的数据库表,创建数据库实体关系模型,以及利用数据库建表语句创建与之对应的索引表,用于记录源数据主键同步到数据中台后数据主键的对应关系,为后续更新外键准备。59.可选地,所述根据所述数据表,利用数据库工具dbeaver,创建所述数据库实体关系模型,包括:60.利用所述数据库工具dbeaver,将所述数据表的表结构移植至所述数据中台的模型数据库;61.在所述模型数据库,通过配置外键对应关系,建立源数据库与数据中台之间的实体关系,所述外键对应关系为所述源数据库的第一外键与所述数据中台的第二外键之间的对应关系。62.在本可选实施例中,如图3所示的数据库实体关系模型的示意图,使用数据库工具dbeaver复制选定数据表的表结构到数据中台的模型数据库,并设置在模型库上设置外键建立表间约束关系,实现对数据库的实体关系建模。如图3所示,根据买家信息、订单、物流、订单明细和商品信息之间的外键id,建立各个表之间的表间约束关系。63.可选地,所述根据所述数据库,利用预设的数据库建表语句,创建所述目标索引表,包括:64.利用所述数据库建表语句,在所述数据表的数据表名称添加预设值,得到初始索引表;65.将所述初始索引表的自增值配置为目标自增值,并将所述源数据库的第一数据主键插入到所述初始索引表,得到所述目标索引表。66.在本可选实施例中,如图4所示的初始索引表的示意图。索引表的命名规则为在数据表名称前添加index_前缀,如根据图4源系统数据库(即源数据库)中的数据表名称“订单”,在数据中台的索引库生成名称为“index_订单”的初始索引表。其中数据表名称可以通过数据库实例中名为information_schema数据库存在名为tables查询得到。67.如图5所示的数据索引的创建流程示意图。information_schema数据的tables数据表会记录数据库实例中所有数据库表的auto_increment属性,也就是数据表的自增值。利用这个元数据信息,在创建数据索引之前,将索引表的自增值设置成与中台数据表的自增值一致。借助索引表主键自增特性,只需要取出源数据主键值插入索引表就可以完成源数据与目标数据的主键索引关系。例如,根据数据中台的“中台订单表”的最大记录为11,则将初始索引表“index_订单表”的最大记录改为11,并将源数据库的“源系统订单表”的第一数据主键“1002”、“1003”插入到“index_订单表”,则该“index_订单表”即为目标索引表。68.在一实施例中,在图1所示实施例的基础上,上述步骤s102,包括:69.从源数据库中获取所述待同步业务数据对应的数据记录,数据记录包括第一数据主键;70.根据所述主键索引关系,将所述数据记录中的第一数据主键替换为所述第二数据主键,生成新的数据记录;71.将所述新的数据记录添加至所述数据中台。72.在本实施例中,如图6所示的待同步业务数据的同步流程示意图。利用information_schema库中名为columns是数据表可以获取业务表的字段名称及主键信息。从源系统中取出记录,将记录的主键替换成使用与主键对应的索引生成全新的数据记录,插入数据中台指定的位置完成数据同步。例如,根据目标索引表“index_订单表”的主键索引关系,查找对应在源数据库的“源系统订单表”中第一数据主键“1002”的数据记录,根据“index_订单表”中“1002”对应的第二数据主键“12”,生成一条新的数据记录,将新的数据记录中的“12”添加数据中台的“中台订单表”,以完成“源系统订单表”到“中台订单表”的同步。73.在一实施例中,在图1所示实施例的基础上,上述步骤s103,包括:74.根据所述目标索引表,确定每个待同步业务数据的第一外键值;75.根据所述数据库实体关系模型中的外键对应关系,将所述第一外键值替换为所述数据记录对应的第二外键值,以还原所述数据记录所对应的实体关系。76.在本实施例中,如图7所示的实体的还原流程示意图。根据数据库实体关系模型找出每个实体索引表存在的外键,再根据索引,可以确定每个实体外键所对应的第一外键值。根据上述外键对应关系,将第一外键值替换为同步到数据中台的数据记录的第二外键值,以完成实体关系的还原。77.为了执行上述方法实施例对应的数据同步方法,以实现相应的功能和技术效果。参见图8,图8示出了本技术实施例提供的一种数据同步装置的结构框图。为了便于说明,仅示出了与本实施例相关的部分,本技术实施例提供的台区识别装置,包括:78.生成模块801,用于根据源数据库中待同步业务数据的数据表,生成数据库实体关系模型和目标索引表,所述数据库实体关系模型用于表征所述源数据库中数据实体之间的实体关系,所述目标索引表用于记录源数据库的第一数据主键与同步到所述数据中台后的第二数据主键之间的主键索引关系;79.同步模块802,用于根据所述目标索引表中的主键索引关系,将所述源数据库的数据记录同步至所述数据中台,所述数据记录包含所述待同步业务数据;80.还原模块803,用于根据所述数据库实体关系模型,还原所述数据记录所对应的实体关系,以完成所述源数据库到所述数据中台的数据同步。81.在一实施例中,所述生成模块801,包括:82.第一确定单元,用于根据业务关系,确定所述源数据库中的待同步业务数据对应的数据表;83.第一创建单元,用于根据所述数据表,利用数据库工具dbeaver,创建所述数据库实体关系模型;84.第二创建单元,用于根据所述数据库,利用预设的数据库建表语句,创建所述目标索引表。85.在一实施例中,所述第一创建单元,包括:86.移植子单元,用于利用所述数据库工具dbeaver,将所述数据表的表结构移植至所述数据中台的模型数据库;87.建立子单元,用于在所述模型数据库,通过配置外键对应关系,建立源数据库与数据中台之间的实体关系,所述外键对应关系为所述源数据库的第一外键与所述数据中台的第二外键之间的对应关系。88.在一实施例中,所述第二创建单元,包括:89.添加子单元,用于利用所述数据库建表语句,在所述数据表的数据表名称添加预设值,得到初始索引表;90.配置子单元,用于将所述初始索引表的自增值配置为目标自增值,并将所述源数据库的第一数据主键插入到所述初始索引表,得到所述目标索引表。91.在一实施例中,所述目标自增值为与所述数据中台的数据表相同的自增值。92.在一实施例中,所述同步模块802,包括:93.获取单元,用于从源数据库中获取所述待同步业务数据对应的数据记录,数据记录包括第一数据主键;94.第一替换单元,用于根据所述主键索引关系,将所述数据记录中的第一数据主键替换为所述第二数据主键,生成新的数据记录;95.添加单元,用于将所述新的数据记录添加至所述数据中台。96.在一实施例中,所述还原模块803,包括:97.第二确定单元,用于根据所述目标索引表,确定每个待同步业务数据的第一外键值;98.第二替换单元,用于根据所述数据库实体关系模型中的外键对应关系,将所述第一外键值替换为所述数据记录对应的第二外键值,以还原所述数据记录所对应的实体关系。99.上述的数据同步装置可实施上述方法实施例的数据同步方法。上述方法实施例中的可选项也适用于本实施例,这里不再详述。本技术实施例的其余内容可参照上述方法实施例的内容,在本实施例中,不再进行赘述。100.图9为本技术一实施例提供的计算机设备的结构示意图。如图9所示,该实施例的计算机设备9包括:至少一个处理器90(图9中仅示出一个)处理器、存储器91以及存储在所述存储器91中并可在所述至少一个处理器90上运行的计算机程序92,所述处理器90执行所述计算机程序92时实现上述任意方法实施例中的步骤。101.所述计算机设备9可以是平板电脑、笔记本电脑、桌上型计算机和云端服务器等计算设备。该计算机设备可包括但不仅限于处理器90、存储器91。本领域技术人员可以理解,图9仅仅是计算机设备9的举例,并不构成对计算机设备9的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。102.所称处理器90可以是中央处理单元(centralprocessingunit,cpu),该处理器90还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。103.所述存储器91在一些实施例中可以是所述计算机设备9的内部存储单元,例如计算机设备9的硬盘或内存。所述存储器91在另一些实施例中也可以是所述计算机设备9的外部存储设备,例如所述计算机设备9上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器91还可以既包括所述计算机设备9的内部存储单元也包括外部存储设备。所述存储器91用于存储操作系统、应用程序、引导装载程序(bootloader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器91还可以用于暂时地存储已经输出或者将要输出的数据。104.另外,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的步骤。105.本技术实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得计算机设备执行时实现上述各个方法实施例中的步骤。106.在本技术所提供的几个实施例中,可以理解的是,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意的是,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。107.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。108.以上所述的具体实施例,对本技术的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本技术的具体实施例而已,并不用于限定本技术的保护范围。特别指出,对于本领域技术人员来说,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献