CN115391459A - 数据同步方法、装置、电子设备及计算机可读存储介质 - Google Patents

数据同步方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN115391459A
CN115391459A CN202211019666.2A CN202211019666A CN115391459A CN 115391459 A CN115391459 A CN 115391459A CN 202211019666 A CN202211019666 A CN 202211019666A CN 115391459 A CN115391459 A CN 115391459A
Authority
CN
China
Prior art keywords
data
target
task
field
data synchronization
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
CN202211019666.2A
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.)
Nanjing Leading Technology Co Ltd
Original Assignee
Nanjing Leading Technology 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 Nanjing Leading Technology Co Ltd filed Critical Nanjing Leading Technology Co Ltd
Priority to CN202211019666.2A priority Critical patent/CN115391459A/zh
Publication of CN115391459A publication Critical patent/CN115391459A/zh
Pending legal-status Critical Current

Links

Images

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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data 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)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种数据同步方法、装置、电子设备及计算机可读存储介质,通过获取数据同步指令,生成数据同步指令所指示的读取任务和写入任务,数据同步指令包括源数据库的第一地址,第一目标字段,根据源数据库的第一地址访问源数据库,并读取第一目标字段的对应数据,根据数据同步指令的第二地址,将读取的数据写入第二地址对应的目标数据库,在写入前,将读取的第一目标字段输出为符合目标数据库定义的第二目标字段的字段名和字段类型写入,通过在数据同步指令中指示不同的参数内容,进而获得对应读取不同数据库的读取任务和写入不同数据库的写入任务,使得数据可以在不同数据库之间方便的进行同步,提高数据同步的通用性。

Description

数据同步方法、装置、电子设备及计算机可读存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据同步方法、装置、电子设备及计算机可读存储介质。
背景技术
随着互联网的普及,用户使用产品产生的产品数据或企业日常运行产生的业务数据越来越庞大,在利用这些数据进行大数据开发时,经常需要将存储在不同数据库的数据互相同步。
目前,数据同步工具可以针对关系型数据库之间及大数据组件工具之间进行数据同步。
但是,数据的同步任务需要开发人员每次同步时单独配置任务,数据的同步任务无法高效的与大数据开发整体流程融合,并且无法灵活的在不同数据库之间进行同步。
发明内容
本发明实施例提供一种数据同步方法、装置、电子设备及计算机可读存储介质,以解决现有技术中不同数据库之间数据同步不灵活的问题。
第一方面,本发明实施例提供了一种数据同步方法,所述方法包括:
获取数据同步指令,所述数据同步指令包括:源数据库的第一地址,第一目标字段,目标数据库的第二地址,第二目标字段;
根据所述数据同步指令创建读取所述源数据库的数据的读取任务和将数据同步至所述目标数据库的写入任务;
响应于所述读取任务,根据所述第一地址访问所述源数据库,并根据所述第一目标字段获取所述第一目标字段对应的第一目标数据;
响应于所述写入任务,将所述第一目标数据转换为第二目标数据,并将所述第二目标数据写入所述第二地址对应的目标数据库,所述第二目标数据为符合所述第二目标字段定义的字段名和字段类型的数据。
第二方面,本发明实施例提供了一种数据同步装置,所述装置包括:
指令获取模块,用于获取数据同步指令,所述数据同步指令包括:源数据库的第一地址,第一目标字段,目标数据库的第二地址,第二目标字段;
同步任务生成模块,用于根据所述数据同步指令创建读取所述源数据库的数据的读取任务和将数据同步至所述目标数据库的写入任务;
读取模块,用于响应于所述读取任务,根据所述第一地址访问所述源数据库,并根据所述第一目标字段获取所述第一目标字段对应的第一目标数据;
写入模块,用于响应于所述写入任务,将所述第一目标数据转换为第二目标数据,并将所述第二目标数据写入所述第二地址对应的目标数据库,所述第二目标数据为符合所述第二目标字段定义的字段名和字段类型的数据。
第三方面,本发明实施例还提供了一种电子设备,包括处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现所述第一方面的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行所述第一方面的方法。
在本发明实施例中,通过获取数据同步指令,生成数据同步指令所指示的读取任务和写入任务,数据同步指令包括源数据库的第一地址,第一目标字段,根据源数据库的第一地址访问源数据库,并读取第一目标字段的对应数据,根据数据同步指令的第二地址,将读取的数据写入第二地址对应的目标数据库,在写入前,将读取的第一目标字段输出为符合目标数据库定义的第二目标字段的字段名和字段类型写入,通过在数据同步指令中指示不同的参数内容,进而获得对应读取不同数据库的读取任务和写入不同数据库的写入任务,使得数据可以在不同数据库之间方便的进行同步,提高了数据同步的通用性,以及整体开发流程的效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
图1是本发明实施例提供的一种数据同步方法的步骤流程图;
图2是本发明实施例提供的一种实现数据同步方法的程序架构图;
图3是本发明实施例提供的又一种数据同步方法的步骤流程图;
图4是本发明实施例提供的一种使用同步工具时方法调用示意图;
图5是本发明实施例提供的一种数据同步装置框图;
图6本发明实施例的一种电子设备的逻辑框图;
图7是发明实施例的另一种电子设备的逻辑框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1是本发明实施例提供的一种指标采集方法的步骤流程图,如图1所示,该方法可以包括:
步骤101,获取数据同步指令,所述数据同步指令包括:源数据库的第一地址,第一目标字段,目标数据库的第二地址,第二目标字段。
在本发明实施例中,Spark(计算引擎)是一种快速、通用、可扩展的大数据分析引擎,为了对关系型数据库、非关系型数据、大数据常用组件如hive(数据仓库工具),hudi(数据湖),kafka(一种高吞吐量的分布式发布订阅消息系统),hbase(分布式数据库),eleastic-search(分布式检索引擎)等不同数据源之间进行数据的互相同步,基于Spark框架提供了一种数据同步方法。
具体地,可以预先定义完成MySQL(关系型数据库),Oracle(关系型数据库),MongoDB(基于分布式文件存储数据库),ElasticSearch,Hive,Hudi,HBase,ClickHouse(列式数据库)等组件或数据库读取任务的方法,以及将读取的数据写入MySQL,Oracle,MongoDB,ElasticSearch,Hive,Hudi,HBase,ClickHouse等组件或数据库的写入任务的方法,这些实现读取或写入的方法可以打包为一个同步工具,在实现数据同步时,通过运行同步工具,调用其中的读取或写入方法实现数据同步。
参考图2,图2为实现数据同步方法的程序架构图,同步工具中定义了Master类(主类):作为程序运行的入口类,接受数据同步指令,并控制程序的整体执行包括调用Reader类(读取类)读取数据,将Reader类读取到的数据,传递给Writer类(写入类),再由Writer类写入目标数据库。其中,Reader类:包含抽象父类BaseReader和其具体的实现子类如MySQLReader(实现MySQL读取的任务),OracleReader(实现Oracle读取的任务)等。父类中定义抽象方法read,抽象方法read将不同源数据库具有的共性的属性和行为进行抽象,子类对不同数据源特有的属性与行为进行具体实现,子类可以继承父类的方法,在调用Reader类时,通过对实现不同数据源特有属性与行为的子类的方法的调用,实现对不同源数据库的读取;Writer类:包含抽象父类BaseWriter和其具体的实现子类如MySQLWriter(实现MySQL写入的任务),HiveWriter(实现Hive写入的任务)等。父类中定义抽象方法write,子类各自实现该方法,实现逻辑同Reader类。CommonUtil类(工具类):该类为公共工具类,抽取了Reader类中需要调用的获取sparkSession对象的方法,和Writer类中根据数据同步指令生成对应的转换字段名和字段类型的SQL语句的方法,sparkSession为使用spark各项功能的实现入口,通过获取sparkSession对象可以实现读取功能或SQL语句查询等。
当需要进行数据同步时,获取数据同步指令,数据同步指令为用于指示将目标数据由源数据库写入目标数据库的指令,源数据库为被读取的数据库,目标数据库为被写入的数据库,数据同步指令可以包括实现数据同步的各种参数,数据同步指令中定义了进行读取任务的源数据库的第一地址,第一地址为访问该源数据库的连接地址,例如,对于读取MySQL数据库就需要JDBC连接地址,此地址即为第一地址;数据同步指令中还定义了源数据库的第一目标字段,第一目标字段为对源数据库进行读取时需要读取的字段,在读取时,仅读取第一目标字段包括的字段,第一目标字段具体可以包括源数据库的库名、表名、表中字段名等,在读取时根据第一目标字段读取对应库名下的表中字段对应的数据内容;数据同步指令中还定义了目标数据库的第二地址,读取到的数据在写入目标数据库,需要知道目标数据库的第二地址,例如,对于写入Hbase就需要zookeeper(分布式应用程序协调服务软件)的地址,端口等信息,根据第二地址,将读取的数据写入对应的目标数据库,数据同步指令中还定义了目标数据库的第二目标字段,读取到的信息为源数据库中的第一目标字段与数据内容,而目标数据库中的第二目标字段可能为与第一目标字段的字段名、字段类型不同的字段,在写入时,可以根据目标数据库的字段定义规则,将第一目标字段输出为第二目标字段。
步骤102,根据所述数据同步指令创建读取所述源数据库的数据的读取任务和将数据同步至所述目标数据库的写入任务。
在本发明实施例中,在获取到数据同步指令后,可以根据数据同步指令中包含的参数,获取对应的读取任务与写入任务。
具体地,由于实现不同数据库读取或写入的方法已经预先定义,因此通过数据同步指令中包含的读取源数据库的类名以及写入的目标数据库的类名,可以直接利用预设的方法完成读取或写入。根据读取源数据库的类名以及指定的第一地址、第一目标字段可以生成读取源数据库的读取任务,根据数据同步指令中包含的写入目标数据库的类名以及指定的第二地址、第二目标字段可以生成写入目标数据库的写入任务。通过在数据同步指令中指定不同的参数,可以创建不同的读取任务和写入任务,实现对不同源数据库的读取和对不同目标数据库的写入。
步骤103,响应于所述读取任务,根据所述第一地址访问所述源数据库,并根据所述第一目标字段获取所述第一目标字段对应的第一目标数据。
在本发明实施例中,生成的读取任务根据数据同步指令中指定的第一地址访问源数据库,并根据数据同步指令中指定的第一目标字段读取对应的内容。
例如,读取MySQL的第一地址为JDBC连接地址,第一目标字段包括:库名“school”,表名“student”,字段名“name”、“grade”,那么,在进行读取时,根据第一地址访问对应的MySQL数据库,并对应访问库名为“school”,库里包括的表名为“student”表,“student”表中字段名为“name”、“grade”字段对应的数据进行读取。
步骤104,响应于所述写入任务,将所述第一目标数据转换为第二目标数据,并将所述第二目标数据写入所述第二地址对应的目标数据库,所述第二目标数据为符合所述第二目标字段定义的字段名和字段类型的数据。
在本发明实施例中,当读取完源数据库的数据后,响应于所述写入任务,得到的第一目标数据经过转换为第二目标数据写入目标数据库。
例如,在数据同步指令中指定读取的字段名与写入目标数据库的字段名之间的映射关系,例如指定形式可以为sourceFiled-sinkField-sinkType,即读取字段名-输出字段名-输出字段类型;读取字段名即为第一目标字段,输出字段名即为第二目标字段,根据这种映射关系,可以将第一目标字段输出为符合目标数据库写入的第二目标字段的字段名和字段类型的数据写入目标数据库。
综上,本发明实施例提供一种数据同步方法,通过获取数据同步指令,生成数据同步指令所指示的读取任务和写入任务,数据同步指令包括源数据库的第一地址,第一目标字段,根据源数据库的第一地址访问源数据库,并读取第一目标字段的对应数据,根据数据同步指令的第二地址,将读取的数据写入第二地址对应的目标数据库,在写入前,将读取的第一目标字段输出为符合目标数据库定义的第二目标字段的字段名和字段类型写入,通过在数据同步指令中指示不同的参数内容,进而获得对应读取不同数据库的读取任务和写入不同数据库的写入任务,使得数据可以在不同数据库之间方便的进行同步,提高了数据同步的通用性,以及整体开发流程的效率。
图2是本发明实施例提供的又一种数据同步方法的步骤流程图,如图2所示,该方法可以包括:
步骤201,获取数据同步指令,所述数据同步指令包括:源数据库的第一地址,第一目标字段,目标数据库的第二地址,第二目标字段。
该步骤具体可以参照上述步骤101,此处不再赘述。
步骤202,根据所述数据同步指令创建读取所述源数据库的数据的读取任务和将数据同步至所述目标数据库的写入任务。
该步骤具体可以参照上述步骤102,此处不再赘述。
可选地,预先定义实现不同所述源数据库各自读取的预设读取任务,以及实现不同所述目标数据库各自写入的预设写入任务,所述预设读取任务具有预设读取任务名,所述预设写入任务具有预设写入任务名。
在本发明实施例中,预先定义了对不同数据库进行读取或写入时的读取任务和写入任务,对于读取MySQL数据库来说,实现MySQL读取的读取任务的实现方法预先定义于MySQLReader的方法中,MySQLReader为在计算机程序中定义该读取任务的实现类名,即预设读取任务的预设读取任务名。对于写入MySQL数据库来说,实现MySQL数据写入任务的实现方法预先定义于MySQLWriter的方法中,MySQLWrite为在计算机程序中定义该写入任务的实现类名,即预设写入任务的预设写入任务名。
所述数据同步指令还包括:读取任务名和写入任务名,步骤202具体可以包括;
子步骤2021,将所述读取任务名与所述预设读取任务名进行匹配,若匹配成功,则调用所述预设读取任务,作为当前读取任务.
在本发明实施例中,数据同步指令包括读取任务名,在获取到读取任务名后,可以调用预设的与读取任务名匹配的读取任务,作为当前读取任务,通过调用的方式可以直接使用预先定义的实现读取任务的方法,读取任务通过数据同步指令的第一地址、第一目标字段等信息进行源数据库的读取,通过改变数据同步指令,可以对应调取不同源数据库的读取任务,实现不同源数据的读取,读取任务中第一目标字段的改变,即可实现对不同读取需求的读取,提高了对同一类型读取任务实现的通用性。
子步骤2022,将所述写入任务名与所述预设写入任务名进行匹配,若匹配成功,则调用所述预设写入任务,作为当前写入任务。
在本发明实施例中,数据同步指令包括写入任务名,在获取到写入任务名后,可以调用预设的与写入任务名匹配的写入任务,作为当前写入任务,通过调用的方式可以直接使用预先定义的实现写入任务的方法,写入任务通过数据同步指令的第二地址、第二目标字段等信息进行目标数据库的写入,通过改变数据同步指令,可以对应调取不同目标数据库的写入任务,实现不同目标数据库的写入,提高了对同一类型写入任务实现的通用性。
步骤203,响应于所述读取任务,根据所述第一地址访问所述源数据库,并根据所述第一目标字段获取所述第一目标字段对应的第一目标数据。
该步骤具体可以参照上述步骤103,此处不再赘述。
可选地,所述数据同步指令还包括获取所述第一目标数据的筛选条件,步骤203具体可以包括:
子步骤2031,根据所述筛选条件确定所述第一目标字段对应的第一目标数据。
在本发明实施例中,读取任务在读取数据时读取的为符合筛选条件的数据,在数据同步指令中指定了需要读取的字段或数据量,读取时仅读取符合字段要求或数据量要求的数据内容。
可选地,所述筛选条件包括基于字段对应的预设内容的筛选和/或基于预设阈值的筛选,所述预设阈值包括数据量阈值或时间阈值,子步骤2031具体可以包括:
子步骤20311,根据所述字段对应的预设内容确定所述第一目标字段对应的数据中符合所述预设内容的数据,并确定为所述第一目标数据。
在本发明实施例中,筛选条件为基于字段对应的预设内容的筛选,例如筛选字段为“成绩”,预设内容为“分数大于60分”,在基于筛选条件对第一目标字段对应的数据内容筛选时,首先将字段“成绩”与第一目标字段匹配,匹配成功后,筛选第一目标字段对应的分数中,分数大于60分的数据,将第一目标字段以及对应的数据内容中大于60分的数据作为第一目标数据。
子步骤20312,根据所述数量阈值,按照时间顺序选取所述第一目标字段对应的数据中在所述数据量阈值范围内的数据作为所述第一目标数据。
在本发明实施例中,筛选条件为根据数量阈值筛选,例如,筛选条件为筛选指定的第一目标字段对应的数据中最近保存的1000条数据,在基于数量阈值筛选时,确定指定的第一目标字段后,读取第一目标字段对应的数据中最近保存的1000条数据,作为第一目标数据。
子步骤20313,根据所述时间阈值,确定所述第一目标字段对应的数据中在所述时间阈值范围内的数据为所述第一目标数据。
在本发明实施例中,筛选条件为根据时间阈值筛选,若数据同步指令中指定时间阈值为距离当前最近的24小时内的数据,则在读取数据时,仅读取指定的第一目标字段对应的数据中最近24小时内的数据作为第一目标数据。
进一步地,筛选条件可以为数据量阈值与时间阈值结合进行筛选,例如筛选条件可以为筛选距离最近24小时内的上限为1000条的数据。本发明实施例,在数据同步指令中指定筛选条件,在生成读取任务后即可根据筛选条件读取对应的数据,对于读取同一个数据库的读取任务来说只需要在数据同步指令中指定不同的筛选条件,即可以实现不同读取任务的读取,提高了对同一种类型数据库读取的读取任务的通用性。
可选地,所述数据同步指令还包括:源数据库的身份验证信息,步骤203具体可以包括:
子步骤20314,通过所述身份验证信息访问所述第一地址对应的源数据库。
在本发明实施例中,数据同步指令中还包括源数据库的身份验证信息,例如,对于读取MySQL数据库来说,在获取到MySQL的第一地址后,还需MySQL数据库的用户名,密码验证后,才能进行数据读取与写入,MySQL数据库的用户名,密码即为源数据库的身份验证信息,在数据同步指令中携带身份验证信息,使得读取数据的读取任务可以自动进行。
子步骤2032,读取所述第一目标数据。
在本发明实施例中,根据筛选条件,筛选到第一目标数据后,对符合筛选条件的第一目标数据进行读取。
步骤204,响应于写入任务,将所述第一目标数据保存为临时表。
在本发明实施例中,读取到的第一目标数据,会保存为临时表,方便后续查询,临时表包括:字段名称、字段类型、是否为空等数据。
步骤205,根据所述第一目标字段、第二目标字段和转换任务生成转换语句,所述转换任务为预先定义的用于将所述第一目标数据转换为所述第二目标数据的任务,所述转换语句为将所述第一目标字段转换为第二目标字段的语句。
在本发明实施例中,转换任务为预先定义的,通用性的执行字段的数据类型转换的任务,在计算机程序中,转换任务可以为预定义的执行数据库查询与字段转换的方法,参考图3,工具类中:getCastDataSQL方法即可以为执行字段类型转换的方法,在数据同步指令中需要指定输入的字段与输出的字段之间的映射关系,例如对于写入hbase,在计算机程序中,需要给写入任务指定如下字段映射关系sourceFiled-ColumnFamilyName-sinkField,通过短横杠连接,输入字段,列簇名,输出字段名,这样就可以在写入任务中进行字段名的转换,并写入对应的目标数据库;对于写入hive可以指定sourceFiled-sinkField-sinkType依次指定读取的字段名,输出的字段名,输出的字段类型进行指定。根据数据同步指令中包括的字段之间的映射关系,以及预设的转换任务生成实现字段类型转换的转换语句实现字段转换。
步骤206,通过所述转换语句查询所述临时表,并根据所述转换语句将所述临时表中的数据输出为所述第二目标数据。
在本发明实施例中,转换语句可以对临时表进行查询,获取到需要转换的字段进行转换,将转换后的数据输出为第二目标数据。
步骤207,将所述第二目标数据写入所述第二地址对应的目标数据库。
在本发明实施例中,第二目标数据即为可以写入目标数据库的数据。
可选地,所述数据同步指令还包括运行参数,所述方法还包括:
步骤208,根据所述运行参数确定运行所述数据同步方法的运行环境,并在所述运行环境下执行所述读写任务和所述写入任务,所述运行环境包括第一运行环境与第二运行环境,所述第一运行环境为集群模式环境,所述第二运行环境为本地模式环境。
在本发明实施例中,数据同步指令中还包括运行参数,运行参数为确定运行当前数据同步方法环境的参数,本地模式可以作为测试数据同步方法的模式,集群模式可以作为实际生产使用时,进行数据同步的模式,本地模式与集群模式需配置在实现数据同步方法的设备中,在使用时,通过数据同步指令输入不同的环境参数,对应配置不同执行环境下的配置文件。
参考图4,图4为一种使用同步工具时方法调用示意图,结合图2,在需要进行数据同步时,运行同步工具,获取数据同步指令,数据同步指令中可以包括:1、当前的运行环境,运行的环境决定使用集群模式还是本地local模式;2、Reader类的相关参数,包括(1)具体的reader类的类名,后续运行时,会根据类名进行反射生成对应组件的reader类;(2)当前组件读取类的相关访问信息,比如读取MySQL就需要JDBC连接地址,用户名,密码等;(3)需要读取的库名,表名,字段等信息(对于其他组件可以映射到库,表,字段的对应关系,如elastic search中的索引,文档,字段等);(4)筛选过滤条件,会在读取数据的时候,只筛选满足条件的数据;3、Writer类的相关参数,包括(1)具体的Writer类的类名,后续运行时,会根据类名进行反射生成对应组件的Writer类;(2)当前组件写入类的相关访问信息,比如写入Hbase就需要zookeeper的地址,端口等;(3)需要写入数据的字段与读取数据的字段的映射关系。
进一步地,获取到数据同步指令后,Master类解析数据同步指令获取到上述参数信息,创建对应的Reader类和Writer类的实例对象,通过工具类创建sparkSession对象,结合上述参数和当前具体的Reader类设置不同的参数,读取源数据库的特有属性,由具体的读取任务的实例对象结合读取的筛选条件参数,筛选读取到的数据,生成Dataset<Row>数据集(第一目标数据),Writer实例对象会根据Writer类相关的参数,生成转换的SQL语句,SQL语句可以为:cast(sourceFiled as sinkType)as sinkField,实现字段类型的转换,然后Writer类将reader实例返回的数据注册为临时表,并使用sparkSession执行生成的SQL语句查询临时表,返回得到需要的数据集,并最终写入目标数据库。通过指定不同的数据同步指令的参数信息实现对不同数据库之间的读写任务,使用方便,且适用于开发流程中的各个环节嵌入使用,避免重复开发相同逻辑的任务,提高了工作效率。
综上,在本发明实施例中,通过获取数据同步指令,生成数据同步指令所指示的读取任务和写入任务,数据同步指令包括源数据库的第一地址,第一目标字段,根据源数据库的第一地址访问源数据库,并读取第一目标字段的对应数据,根据数据同步指令的第二地址,将读取的数据写入第二地址对应的目标数据库,在写入前,将读取的第一目标字段输出为符合目标数据库定义的第二目标字段的字段名和字段类型写入,通过在数据同步指令中指示不同的参数内容,进而获得对应读取不同数据库的读取任务和写入不同数据库的写入任务,使得数据可以在不同数据库之间方便的进行同步,提高了数据同步的通用性,以及整体开发流程的效率。
图5是本发明实施例提供的一种数据同步装置的框图,如图5所示,该装置30包括;
指令获取模块301,用于获取数据同步指令,所述数据同步指令包括:源数据库的第一地址,第一目标字段,目标数据库的第二地址,第二目标字段;
同步任务生成模块302,用于根据所述数据同步指令创建读取所述源数据库的数据的读取任务和将数据同步至所述目标数据库的写入任务;
读取模块303,用于响应于所述读取任务,根据所述第一地址访问所述源数据库,并根据所述第一目标字段获取所述第一目标字段对应的第一目标数据;
写入模块304,用于响应于所述写入任务,将所述第一目标数据转换为第二目标数据,并将所述第二目标数据写入所述第二地址对应的目标数据库,所述第二目标数据为符合所述第二目标字段定义的字段名和字段类型的数据。
可选地,所述装置还包括:
数据保存模块,用于将所述第一目标数据保存为临时表;
可选地,写入模块304包括:
转换语句生成子模块,用于根据所述第一目标字段、第二目标字段和转换任务生成转换语句,所述转换任务为预先定义的用于将所述第一目标数据转换为所述第二目标数据的任务,所述转换语句为将所述第一目标字段转换为第二目标字段的语句;
字段转换子模块,用于通过所述转换语句查询所述临时表,并根据所述转换语句将所述临时表中的数据输出为所述第二目标数据。
可选地,所述装置还包括:
预定义模块,用于预先定义实现不同所述源数据库各自读取的预设读取任务,以及实现不同所述目标数据库各自写入的预设写入任务,所述预设读取任务具有预设读取任务名,所述预设写入任务具有预设写入任务名。
可选地,所述数据同步指令还包括:读取任务名和写入任务名,同步任务生成模块302包括:
读取任务生成子模块,用于将所述读取任务名与所述预设读取任务名进行匹配,若匹配成功,则调用所述预设读取任务,作为当前读取任务;
写入任务生成子模块,用于将所述写入任务名与所述预设写入任务名进行匹配,若匹配成功,则调用所述预设写入任务,作为当前写入任务。
可选地,所述数据同步指令还包括获取所述第一目标数据的筛选条件,读取模块303,包括:
第一目标数据确定子模块,用于根据所述筛选条件确定所述第一目标字段对应的第一目标数据;
第一目标数据读取子模块,用于读取所述第一目标数据。
可选地,所述筛选条件包括基于字段对应的预设内容的筛选和/或基于预设阈值的筛选,所述预设阈值包括数据量阈值或时间阈值,所述第一目标数据确定子模块,包括:
第一筛选子模块,用于根据所述字段对应的预设内容确定所述第一目标字段对应的数据中符合所述预设内容的数据,并确定为所述第一目标数据;
第二筛选子模块,用于根据所述数据量阈值,按照时间顺序选取所述第一目标字段对应的数据中在所述数据量阈值范围内的数据作为所述第一目标数据;
第三筛选子模块,用于根据所述时间阈值,确定所述第一目标字段对应的数据中在所述时间阈值范围内的数据为所述第一目标数据。
可选地,所述数据同步指令还包括:源数据库的身份验证信息,读取模块303,包括:
通过所述身份验证信息访问所述第一地址对应的源数据库。
可选地,所述数据同步指令还包括运行参数,所述装置还包括:
运行环境确定模块,用于根据所述运行参数确定运行所述数据同步方法的运行环境,并在所述运行环境下执行所述读取任务和所述写入任务,所述运行环境包括第一运行环境与第二运行环境,所述第一运行环境为集群模式环境,所述第二运行环境为本地模式环境。
综上,在本发明实施例中,通过获取数据同步指令,生成数据同步指令所指示的读取任务和写入任务,数据同步指令包括源数据库的第一地址,第一目标字段,根据源数据库的第一地址访问源数据库,并读取第一目标字段的对应数据,根据数据同步指令的第二地址,将读取的数据写入第二地址对应的目标数据库,在写入前,将读取的第一目标字段输出为符合目标数据库定义的第二目标字段的字段名和字段类型写入,通过在数据同步指令中指示不同的参数内容,进而获得对应读取不同数据库的读取任务和写入不同数据库的写入任务,使得数据可以在不同数据库之间方便的进行同步,提高了数据同步的通用性,以及整体开发流程的效率。
图6是根据一示例性实施例示出的一种电子设备600的框图。例如,电子设备600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图6,电子设备600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(I/O)的接口612,传感器组件614,以及通信组件616。
处理组件602通常控制电子设备600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
存储器604用于存储各种类型的数据以支持在电子设备600的操作。这些数据的示例包括用于在电子设备600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,多媒体等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件606为电子设备600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为电子设备600生成、管理和分配电力相关联的组件。
多媒体组件608包括在所述电子设备600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的分界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当电子设备600处于操作模式,如拍摄模式或多媒体模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件610用于输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当电子设备600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
I/O接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件614包括一个或多个传感器,用于为电子设备600提供各个方面的状态评估。例如,传感器组件614可以检测到电子设备600的打开/关闭状态,组件的相对定位,例如所述组件为电子设备600的显示器和小键盘,传感器组件614还可以检测电子设备600或电子设备600一个组件的位置改变,用户与电子设备600接触的存在或不存在,电子设备600方位或加速/减速和电子设备600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件616用于便于电子设备600和其他设备之间有线或无线方式的通信。电子设备600可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于实现本申请实施例提供的一种数据同步方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由电子设备600的处理器620执行以完成上述方法。例如,所述非临时性存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图7是根据一示例性实施例示出的一种电子设备700的框图。例如,电子设备700可以被提供为一服务器。参照图7,电子设备700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行本申请实施例提供的一种数据同步方法。
电子设备700还可以包括一个电源组件726被配置为执行电子设备700的电源管理,一个有线或无线网络接口750被配置为将电子设备700连接到网络,和一个输入输出(I/O)接口758。电子设备700可以操作基于存储在存储器732的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现所述的数据同步方法。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (11)

1.一种数据同步方法,应用于电子设备,其特征在于,所述方法包括:
获取数据同步指令,所述数据同步指令包括:源数据库的第一地址,第一目标字段,目标数据库的第二地址,第二目标字段;
根据所述数据同步指令创建读取所述源数据库的数据的读取任务和将数据同步至所述目标数据库的写入任务;
响应于所述读取任务,根据所述第一地址访问所述源数据库,并根据所述第一目标字段获取所述第一目标字段对应的第一目标数据;
响应于所述写入任务,将所述第一目标数据转换为第二目标数据,并将所述第二目标数据写入所述第二地址对应的目标数据库,所述第二目标数据为符合所述第二目标字段定义的字段名和字段类型的数据。
2.根据权利要求1所述方法,其特征在于,所述根据所述第一地址访问所述源数据库,并根据所述第一目标字段获取所述第一目标字段对应的第一目标数据之后,所述方法还包括:
将所述第一目标数据保存为临时表;
所述将所述第一目标数据转换为符合所述第二目标字段的字段名和字段类型的第二目标数据,包括:
根据所述第一目标字段、第二目标字段和转换任务生成转换语句,所述转换任务为预先定义的用于将所述第一目标数据转换为所述第二目标数据的任务,所述转换语句为将所述第一目标字段转换为第二目标字段的语句;
通过所述转换语句查询所述临时表,并根据所述转换语句将所述临时表中的数据输出为所述第二目标数据。
3.根据权利要求1所述方法,其特征在于,所述方法还包括:
预先定义实现不同所述源数据库各自读取的预设读取任务,以及实现不同所述目标数据库各自写入的预设写入任务,所述预设读取任务具有预设读取任务名,所述预设写入任务具有预设写入任务名。
4.根据权利要求3所述方法,其特征在于,所述数据同步指令还包括:读取任务名和写入任务名,所述根据所述数据同步指令创建读取所述源数据库的数据的读取任务和将数据同步至所述目标数据库的写入任务包括:
将所述读取任务名与所述预设读取任务名进行匹配,若匹配成功,则调用所述预设读取任务,作为当前读取任务;
将所述写入任务名与所述预设写入任务名进行匹配,若匹配成功,则调用所述预设写入任务,作为当前写入任务。
5.根据权利要求1所述方法,其特征在于,所述数据同步指令还包括获取所述第一目标数据的筛选条件,所述根据所述第一目标字段获取所述第一目标字段对应的第一目标数据包括:
根据所述筛选条件确定所述第一目标字段对应的第一目标数据;
读取所述第一目标数据。
6.根据权利要求5所述方法,其特征在于,所述筛选条件包括基于字段对应的预设内容的筛选和/或基于预设阈值的筛选,所述预设阈值包括数据量阈值或时间阈值,所述根据所述筛选条件确定所述第一目标字段对应的第一目标数据,包括:
根据所述字段对应的预设内容确定所述第一目标字段对应的数据中符合所述预设内容的数据,并确定为所述第一目标数据;
和/或,根据所述数据量阈值,按照时间顺序选取所述第一目标字段对应的数据中在所述数据量阈值范围内的数据作为所述第一目标数据;
和/或,根据所述时间阈值,确定所述第一目标字段对应的数据中在所述时间阈值范围内的数据为所述第一目标数据。
7.根据权利要求1所述方法,其特征在于,所述数据同步指令还包括:源数据库的身份验证信息,所述根据所述第一地址访问所述源数据库包括:
通过所述身份验证信息访问所述第一地址对应的源数据库。
8.根据权利要求1所述方法,其特征在于,所述数据同步指令还包括运行参数,所述方法还包括:
根据所述运行参数确定运行所述数据同步方法的运行环境,并在所述运行环境下执行所述读取任务和所述写入任务,所述运行环境包括第一运行环境与第二运行环境,所述第一运行环境为集群模式环境,所述第二运行环境为本地模式环境。
9.一种数据同步装置,其特征在于,所述装置包括:
指令获取模块,用于获取数据同步指令,所述数据同步指令包括:源数据库的第一地址,第一目标字段,目标数据库的第二地址,第二目标字段;
同步任务生成模块,用于根据所述数据同步指令创建读取所述源数据库的数据的读取任务和将数据同步至所述目标数据库的写入任务;
读取模块,用于响应于所述读取任务,根据所述第一地址访问所述源数据库,并根据所述第一目标字段获取所述第一目标字段对应的第一目标数据;
写入模块,用于响应于所述写入任务,将所述第一目标数据转换为第二目标数据,并将所述第二目标数据写入所述第二地址对应的目标数据库,所述第二目标数据为符合所述第二目标字段定义的字段名和字段类型的数据。
10.一种电子设备,其特征在于,包括:处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至8中任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至8中任一项所述的方法。
CN202211019666.2A 2022-08-24 2022-08-24 数据同步方法、装置、电子设备及计算机可读存储介质 Pending CN115391459A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211019666.2A CN115391459A (zh) 2022-08-24 2022-08-24 数据同步方法、装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211019666.2A CN115391459A (zh) 2022-08-24 2022-08-24 数据同步方法、装置、电子设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN115391459A true CN115391459A (zh) 2022-11-25

Family

ID=84122883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211019666.2A Pending CN115391459A (zh) 2022-08-24 2022-08-24 数据同步方法、装置、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN115391459A (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462269A (zh) * 2014-11-24 2015-03-25 中国联合网络通信集团有限公司 一种异构数据库数据交换方法及系统
US20170132302A1 (en) * 2015-11-09 2017-05-11 Sap Se Integrating co-deployed databases for data analytics
CN108664659A (zh) * 2018-05-21 2018-10-16 四川中电启明星信息技术有限公司 一种分布式异构数据库的数据同步方法及装置
CN109614446A (zh) * 2018-11-23 2019-04-12 金色熊猫有限公司 数据同步方法、装置、电子设备及存储介质
CN109657006A (zh) * 2018-12-14 2019-04-19 万翼科技有限公司 数据同步方法、装置及计算机可读存储介质
CN109885581A (zh) * 2019-03-14 2019-06-14 苏州达家迎信息技术有限公司 数据库的同步方法、装置、设备及存储介质
CN111125254A (zh) * 2019-12-23 2020-05-08 北京懿医云科技有限公司 数据库同步方法、装置、电子设备及计算机可读介质
CN111324610A (zh) * 2020-02-19 2020-06-23 深圳市融壹买信息科技有限公司 一种数据同步的方法及装置
CN112306994A (zh) * 2020-11-10 2021-02-02 北京沃东天骏信息技术有限公司 数据库数据迁移方法、装置以及存储介质
US20210056148A1 (en) * 2019-08-23 2021-02-25 Masterobjects, Inc. System and Method For Asynchronous Client Server Session Communication
CN113204598A (zh) * 2021-05-28 2021-08-03 平安科技(深圳)有限公司 一种数据同步方法、系统及存储介质
CN113505128A (zh) * 2021-06-30 2021-10-15 平安科技(深圳)有限公司 创建数据表的方法、装置、设备及存储介质
CN114780641A (zh) * 2022-05-07 2022-07-22 湖南长银五八消费金融股份有限公司 多库多表同步方法、装置、计算机设备和存储介质

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462269A (zh) * 2014-11-24 2015-03-25 中国联合网络通信集团有限公司 一种异构数据库数据交换方法及系统
US20170132302A1 (en) * 2015-11-09 2017-05-11 Sap Se Integrating co-deployed databases for data analytics
CN108664659A (zh) * 2018-05-21 2018-10-16 四川中电启明星信息技术有限公司 一种分布式异构数据库的数据同步方法及装置
CN109614446A (zh) * 2018-11-23 2019-04-12 金色熊猫有限公司 数据同步方法、装置、电子设备及存储介质
CN109657006A (zh) * 2018-12-14 2019-04-19 万翼科技有限公司 数据同步方法、装置及计算机可读存储介质
CN109885581A (zh) * 2019-03-14 2019-06-14 苏州达家迎信息技术有限公司 数据库的同步方法、装置、设备及存储介质
US20210056148A1 (en) * 2019-08-23 2021-02-25 Masterobjects, Inc. System and Method For Asynchronous Client Server Session Communication
CN111125254A (zh) * 2019-12-23 2020-05-08 北京懿医云科技有限公司 数据库同步方法、装置、电子设备及计算机可读介质
CN111324610A (zh) * 2020-02-19 2020-06-23 深圳市融壹买信息科技有限公司 一种数据同步的方法及装置
CN112306994A (zh) * 2020-11-10 2021-02-02 北京沃东天骏信息技术有限公司 数据库数据迁移方法、装置以及存储介质
CN113204598A (zh) * 2021-05-28 2021-08-03 平安科技(深圳)有限公司 一种数据同步方法、系统及存储介质
CN113505128A (zh) * 2021-06-30 2021-10-15 平安科技(深圳)有限公司 创建数据表的方法、装置、设备及存储介质
CN114780641A (zh) * 2022-05-07 2022-07-22 湖南长银五八消费金融股份有限公司 多库多表同步方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN106569800B (zh) 前端界面生成方法及装置
CN106339384B (zh) 存储过程的转换方法及装置
CN104462296B (zh) 文件的管理方法、装置及终端
CN106547547B (zh) 数据采集方法及装置
CN115062046A (zh) 数据库查询方法、装置、电子设备及存储介质
CN115185717A (zh) 接口调用方法、装置、电子设备和存储介质
CN110704030A (zh) 接口配置信息生成方法、装置、电子设备及存储介质
CN111552688A (zh) 数据导出方法、装置及电子设备
CN116028568A (zh) 财政业务数据导出方法、装置及电子设备
CN115391459A (zh) 数据同步方法、装置、电子设备及计算机可读存储介质
CN115473823A (zh) 一种拓扑数据集展示方法及装置
CN112988822A (zh) 数据查询方法、装置、设备、可读存储介质以及产品
CN117616394A (zh) 混合渲染应用系统、渲染方法、电子设备和存储介质
CN114546992A (zh) 数据库迁移方法、装置、存储介质和电子设备
CN114385723A (zh) 数据读取方法、装置、电子设备及存储介质
CN114238728B (zh) 车辆数据的处理方法、装置和设备
CN114443161B (zh) 一种应用对接方法、装置、设备及存储介质
CN114745495B (zh) 图像生成方法、装置及存储介质
CN110119471B (zh) 一种搜索结果一致性的检查方法及装置
CN115455007A (zh) 数据处理方法、装置、设备及存储介质
CN115268935A (zh) 数据处理方法及装置
CN113868247A (zh) 数据处理方法、装置、电子设备、存储介质及程序产品
CN113760960A (zh) 一种信息生成方法、装置和用于生成信息的装置
CN112800285A (zh) 基于图数据库的数据查询方法、设备、存储介质及产品
CN117131020A (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