CN113127549A - 增量数据的同步方法、装置、计算机设备和存储介质 - Google Patents

增量数据的同步方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN113127549A
CN113127549A CN201911418153.7A CN201911418153A CN113127549A CN 113127549 A CN113127549 A CN 113127549A CN 201911418153 A CN201911418153 A CN 201911418153A CN 113127549 A CN113127549 A CN 113127549A
Authority
CN
China
Prior art keywords
data
incremental
node
data source
data object
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
CN201911418153.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.)
Qianxin Technology Group Co Ltd
Secworld Information Technology Beijing Co Ltd
Original Assignee
Qianxin Technology Group Co Ltd
Secworld Information Technology Beijing 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 Qianxin Technology Group Co Ltd, Secworld Information Technology Beijing Co Ltd filed Critical Qianxin Technology Group Co Ltd
Priority to CN201911418153.7A priority Critical patent/CN113127549A/zh
Publication of CN113127549A publication Critical patent/CN113127549A/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/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • 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/23Updating
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (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

增量数据的同步方法、装置、计算机设备和存储介质
技术领域
本发明涉及大数据技术领域,尤其涉及一种增量数据的同步方法、装置、计算机设备和存储介质。
背景技术
在一些数据运用的场景中,由于上游数据每天都在发生变化,因此使用这些数据的下游系统需要每天刷新这些变化的数据。当数据量较小时,通常采用的刷新方式是每次对上游数据进行全量更新。但随着业务的增长,特别是在大数据应用场景中,数据量会呈几何方式增长,以达到亿级别甚至更多,此时,若每次还进行全量更新,将非常耗时耗力,并且也是下游系统业务方无法忍受的,此时就需要变全量同步更新变为增量数据同步。
增量数据同步,不再需要将全部上游数据复制到下游系统中,而仅仅只抽取上游数据中增量变化的内容。现有技术中提出一种增量数据的同步方法,在该方法中,通过数据读取插件读取和查询数据源中的增量数据,并将查询到的增量数据同步到下游系统,但是,当数据源中数据量较大时,读取和查询过程需要较长的时间,仍然存在耗时的问题。
因此,提供一种增量数据的同步方法、装置、计算机设备和存储介质,以提升增量数据同步的效率,成为本领域技术人员亟待解决的技术问题。
发明内容
本发明的目的是提供一种增量数据的同步方法、装置、计算机设备和存储介质,用于解决现有技术中的上述技术问题。
一方面,为实现上述目的,本发明提供了一种增量数据的同步方法。
该增量数据的同步方法包括:获取数据源在第一时间的状态图,得到第一状态图,其中,状态图为树形数据结构,状态图包括若干个节点层,每个节点层包括若干个节点,节点对应一个数据对象,节点的信息包括数据对象的属性,节点层用于表征数据对象在数据源中的层级;在第二时间监控数据源的状态信息,得到第二状态信息,其中,状态信息包括数据源中数据对象的属性;将第二状态信息与第一状态图进行比对,以确定数据源中增量的数据对象;以及从数据源中获取增量的数据对象并同步至目标存储介质。
进一步地,在确定数据源中增量的数据对象的步骤之后,增量数据的同步方法还包括:根据增量的数据对象更新第一状态图,以得到第二状态图。
进一步地,根据增量的数据对象更新第一状态图,以得到第二状态图的步骤包括:构建对应增量的数据对象的节点,作为增量节点;在增量的数据对象对应的节点层增加增量节点,并将增量节点标记为检查节点;在从数据源中获取增量的数据对象并同步至目标存储介质之后,增量数据的同步方法还包括:获取第二状态图中的检查节点,以分析数据源的变化。
进一步地,将第二状态信息与第一状态图进行比对,以确定数据源中增量的数据对象的步骤包括:监控数据源中第一层级的第一数据对象的属性,得到第一属性,其中,第一数据对象为第一层级中的一个数据对象,第一层级对应第一状态图中的第一节点层;判断第一节点层是否包括第一数据对象对应的第一节点;若第一节点层包括第一节点,将第一属性与第一节点的节点信息进行比对;若第一节点层不包括第一节点,确定第一数据对象为增量的数据对象;若第一属性与第一节点的节点信息相同,监控第二数据对象的属性,其中,第二数据对象与第一数据对象均位于第一层级;若第一属性与第一节点的节点信息不同,监控数据源中第三数据对象的属性,其中,第三数据对象为第一数据对象下一层级的一个数据对象。
进一步地,数据源包括多种数据类型,从数据源中获取增量的数据对象并同步至目标存储介质的步骤包括:确定数据源的数据类型;选择对应数据类型的数据获取工具,从数据源中获取增量的数据对象;将增量的数据对象转换为标准的数据对象;对标准的数据对象按照预定义的ETL策略进行ETL操作,得到增量数据集;将增量数据集同步至目标存储介质。
进一步地,在从数据源中获取增量的数据对象并同步至目标存储介质的步骤之后,增量数据的同步方法还包括:获取增量的数据对象的元数据信息;发送元数据信息至预定接收端。
进一步地,数据对象包括数据库、数据表、数据分区和数据文件,数据对象的属性信息包括占用空间大小、子数据对象的数量和更新时间。
另一方面,为实现上述目的,本发明提供了一种增量数据的同步装置。
该增量数据的同步装置包括:获取模块,用于获取数据源在第一时间的状态图,得到第一状态图,其中,状态图为树形数据结构,状态图包括若干个节点层,每个节点层包括若干个节点,节点对应一个数据对象,节点的信息包括数据对象的属性,节点层用于表征数据对象在数据源中的层级;监控模块,用于在第二时间监控数据源的状态信息,得到第二状态信息,其中,状态信息包括数据源中数据对象的属性;比对模块,用于将第二状态信息与第一状态图进行比对,以确定数据源中增量的数据对象;以及同步模块,用于从数据源中获取增量的数据对象并同步至目标存储介质。
为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本发明提供的增量数据的同步方法、装置、计算机设备和存储介质,通过树形数据结构的状态图保存数据源的状态信息,也即保存数据源中数据对象的属性,对于相邻两次监控时间,在在后的第二时间监控到数据源的第二状态信息时,获取在前的第一时间的第一状态图,将监控到的第二状态信息与第一状态图进行比对,确定第二状态信息中的数据对象相对第一状态图中的数据对象的变化情况,从而可确定数据源中增量的数据对象,并从数据源中获取增量的数据对象并同步至目标存储介质。通过本发明,基于监控得到的数据源的状态信息与上一时间的状态图的比对结果,来确定增量的数据对象,并在数据源中直接获取增量的数据对象进行同步,能够提升数据同步的效率。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例一提供的增量数据的同步方法的流程图;
图2为本发明实施例二提供的增量数据的同步装置的框图;以及
图3为本发明实施例三提供的计算机设备的硬件结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了提升增量数据同步的效率,本发明提供了一种增量数据的同步方法、装置、计算机设备和存储介质,在该增量数据的同步方法中,构建对应数据源的状态图,该状态图为树形数据结构,以树形数据结构来反映数据源的状态,也即数据源中各数据对象的属性,具体地,状态图包括若干个节点层,该节点层用于表征数据对象在数据源中的层级,每个节点层包括若干个节点,每个节点对应一个数据对象,节点的信息包括数据对象的属性,基于此,对数据源的状态信息进行监控,得到数据源中数据对象的属性后,将当前监控得到的数据对象的属性与数据源在上一时间的状态图进行比对,从而能够确定数据源中增量的数据对象,最后从数据源中获取增量的数据对象并同步至目标存储介质。从中可以看出,在本发明提供的增量数据的同步方法中,通过比对当前监控到的数据源中数据对象的属性和上一时间的数据源的状态图,来确定数据源中增量的数据对象,仅需监控数据对象的属性和比对,与现有技术相比,无需对数据源中的数据进行读取和查询,因此,能够提升确定增量数据的效率,进而能够提升增量数据同步的效率。
关于本发明提供的增量数据的同步方法、装置、计算机设备和存储介质的具体实施例,将在下文中详细描述。
实施例一
本发明实施例提供了一种增量数据的同步方法,可应用于大数据场景下,将数据源数据以增量同步的方式同步至下游业务系统,通过该方法,能够提升增量数据同步的效率,具体地,图1为本发明实施例一提供的增量数据的同步方法的流程图,如图1所示,该实施例提供的增量数据的同步方法包括如下的步骤S101至步骤S104。
步骤S101:获取数据源在第一时间的状态图,得到第一状态图。
其中,状态图为树形数据结构,状态图包括若干个节点层,每个节点层包括若干个节点,节点对应一个数据对象,节点的信息包括数据对象的属性,节点层用于表征数据对象在数据源中的层级。
具体地,数据源可以为ES、Mysql、PG或Hive等多种类型的数据源,按照层级顺序,数据源中的数据对象包括数据库、数据表、数据分区和/或数据文件等,例如将数据库作为数据源中第一层级的数据对象,数据源包括多个数据库;将数据表作为数据源中第二层级的数据对象,每个数据库包括多个数据表;将数据分区作为数据源中第三层级的数据对象,每个数据表包括多个数据分区;将数据文件作为数据源中第四层级的数据对象,每个数据分区可包括多个数据文件。
第一时间为监控数据源的某一时间,该第一时间监控到的数据源的状态信息为第一状态信息,其中,状态信息包括数据源中数据对象的属性,数据对象的属性包括占用空间大小、子数据对象的数量、更新时间和标识信息。第一状态图为根据第一状态信息而生成的状态图。
其中,状态图可存储在图数据库中,其数据结构为一种树形数据结构,在状态图中,以数据源为根节点,由根节点向上包括若干节点层,每个节点层表征数据对象在数据源中的层级,例如,靠近根节点的第一节点层表征数据库的第一层级,具体可以为数据库所在的层级;每个节点层包括若干节点,每个节点对应一个数据对象,例如,第一节点层中每个节点对应一个数据库;节点的信息包括数据对象的属性,例如,第一节点层的节点的信息包括数据库的属性。
步骤S102:在第二时间监控数据源的状态信息,得到第二状态信息。
第二时间为第一时间之后且与第一时间相邻的一监控数据源的时间,该第二时间监控到的数据源的状态信息为第二状态信息。
其中,在一种情况下,数据源发生变化时,数据源的元数据信息也相应变化,此时,通过获取元数据信息即可监控数据源的状态信息。
步骤S103:将第二状态信息与第一状态图进行比对,以确定数据源中增量的数据对象。
第二状态信息包括第二时间时数据源中数据对象的属性,将第二状态信息的数据对象的属性与第一状态图中节点的信息进行比对,当某一数据对象在第二状态信息中存在,但在第一状态图中不包括其对应的节点时,即可确定该数据对象为增量的数据对象。例如,在第一时间之后第二时间之前,数据源中新增了某个数据表,则第二状态信息包括该新增的数据表的属性,但第一状态图中并不包括该数据表对应的节点,因此,可确定该新增的数据表为增量的数据对象。
步骤S104:从数据源中获取增量的数据对象并同步至目标存储介质。
确定增量的数据对象后,即可从数据源中抽取该增量的数据对象的数据,将其同步至目标存储介质,其中,目标存储介质也可以为Hive、Mysql、PG、或ES,本申请对此并不进行限定。
可选地,在初始时间,监控数据源的状态信息,形成初始状态信息,根据初始状态信息形成初始状态图,设定监控时间间隔,在当前时间达到监控时间时,监控数据源得到当前的状态信息,并与上一次形成的状态图进行比对,确定增量的数据对象,并根据当前的状态信息形成新的状态图,从而实现对数据源的持续监控,并在每次监控得到增量的数据对象时,将该增量的数据对象同步至目标存储介质,其中,上述第一时间可以为初始时间,则第一状态图对应为初始状态图,第二时间在初始时间之后且相距监控时间间隔;或者上述第一时间可以为任一监控时间,第二时间在该第一时间之后且相距监控时间间隔。
可选地,在初始时间,监控数据源的状态信息,形成初始状态信息,根据初始状态信息形成初始状态图,设定监控触发条件,具体可以为时间触发或其他因素触发,当触发条件出现时,监控数据源得到当前的状态信息,并与上一次形成的状态图进行比对,确定增量的数据对象,并根据当前的状态信息形成新的状态图,从而实现对数据源的持续监控,并在每次监控得到增量的数据对象时,将该增量的数据对象同步至目标存储介质,其中,上述第一时间可以为初始时间,则第一状态图对应为初始状态图,第二时间在初始时间之后第一次触发条件出现的时间;或者上述第一时间可以为任一触发条件出现的时间,第二时间与第一时间为两次相邻的触发条件出现的时间。
在该实施例提供的增量数据的同步方法中,通过树形数据结构的状态图保存数据源的状态信息,也即保存数据源中数据对象的属性,对于相邻两次监控时间,在在后的第二时间监控到数据源的第二状态信息时,获取在前的第一时间的第一状态图,将监控到的第二状态信息与第一状态图进行比对,确定第二状态信息中的数据对象相对第一状态图中的数据对象的变化情况,从而可确定数据源中增量的数据对象,并从数据源中获取增量的数据对象并同步至目标存储介质。采用该实施例提供的增量数据的同步方法,通过将监控得到的数据源的状态信息与上一时间的状态图进行比对来确定增量的数据对象,并在数据源中直接获取增量的数据对象进行同步,能够提升数据同步的效率。
可选地,在一种实施例中,在确定数据源中增量的数据对象的步骤之后,增量数据的同步方法还包括:根据增量的数据对象更新第一状态图,以得到第二状态图。
在该实施例提供的增量数据的同步方法中,每次监控数据源确定增量的数据对象后,利用增量的数据对象更新第一状态图,更新后的状态图为第二状态图,具体地,在第一状态图中,确定增量的数据对象所在层级对应的节点层,并在该节点层新增一个节点,该新增的节点对应该增量的数据对象,当数据对象还包括子对象时,在该新增的节点上添加对应子对象的节点。
采用该实施例提供的增量数据的同步方法,每次利用增量的数据对象更新状态图,使得状态图中能够体现数据源最新的状态信息,同时,更新的数据量小,存储的数据量小。
可选地,在一种实施例中,根据增量的数据对象更新第一状态图,以得到第二状态图的步骤包括:构建对应增量的数据对象的节点,作为增量节点;在增量的数据对象对应的节点层增加增量节点,并将增量节点标记为检查节点;在从数据源中获取增量的数据对象并同步至目标存储介质之后,增量数据的同步方法还包括:获取第二状态图中的检查节点,以分析数据源的变化。
在该实施例提供的增量数据的同步方法中,对应增量的数据对象的增量节点在状态图中标记为检查节点,该检查节点与状态图中初始的节点具有不同的信息或属性等,以在状态图中相区别,具体设置检查节点的方式在本发明中不做限定,所以可实现与初始节点相区别的方式均库。进一步,同时可标记检查节点的增加时间。
采用该实施例提供的增量数据的同步方法,将增量节点标记为检查节点,从而可通过分析状态图的检查节点的情况,确定数据源的变化情况,包括数据量变化情况以及数据变化周期等信息,为数据源的状态信息变化分析提供数据支持。
可选地,在一种实施例中,在第二时间监控数据源的状态信息,得到第二状态信息,将第二状态信息与第一状态图进行比对,以确定数据源中增量的数据对象的步骤包括:监控数据源中第一层级的第一数据对象的属性,得到第一属性,其中,第一数据对象为第一层级中的一个数据对象,第一层级对应第一状态图中的第一节点层;判断第一节点层是否包括第一数据对象对应的第一节点;若第一节点层包括第一节点,将第一属性与第一节点的节点信息进行比对;若第一节点层不包括第一节点,确定第一数据对象为增量的数据对象;若第一属性与第一节点的节点信息相同,监控第二数据对象的属性,其中,第二数据对象与第一数据对象均位于第一层级;若第一属性与第一节点的节点信息不同,监控数据源中第三数据对象的属性,其中,第三数据对象为第一数据对象下一层级的一个数据对象。
在该实施例提供的增量数据的同步方法中,第一层级为第二层级的上一层级,例如,第一层级为数据库所在的层级,第二层级为数据表所在的层级,在该实施例,将监控步骤和比对步骤交替进行,具体地,在监控到第一层级的第一数据对象的第一属性后,先在状态图中查找该第一层级对应的节点层是否具有第一数据对象对应的第一节点,其中,可基于第一属性中的数据标识进行查找,如果查找不到第一数据对象对应的第一节点,表明该第一数据对象为增量的数据对象;如果查找到第一数据对象对应的第一节点,表明该第一数据对象并非增量的数据对象,此时,将第一属性与第一节点的节点信息进行比对,如果两者相同,则表明该第一数据对象未发生变化,可监控该第一层级的下一个数据对象,也即第二数据对象,并通过上述相同的步骤,对监控到的第二数据对象进行上述比对,该处不再重复描述;如果两者不同,则表明该第一数据对象的子对象发生了变化,可监控该第一数据对象的子对象,也即第三数据对象,针对监控得到的第三数据对象的属性,再通过上述相同的步骤,对监控到的第三数据对象进行上述比对,直到确定增量的数据对象,该处也不再重复描述。进一步可选地,在监控数据源的状态信息时,从底层的数据对象开始,逐步至最小的数据单元。
采用该实施例提供的增量数据的同步方法,通过监控步骤和比对步骤交替进行,当确定一个数据对象为增量的数据对象后,无需在监控其子对象,能够提升监控效率,从而进一步提升增量数据同步的效率。
可选地,在一种实施例中,数据源包括多种数据类型,从数据源中获取增量的数据对象并同步至目标存储介质的步骤包括:确定数据源的数据类型;选择对应数据类型的数据获取工具,从数据源中获取增量的数据对象;将增量的数据对象转换为标准的数据对象;对标准的数据对象按照预定义的ETL策略进行ETL操作,得到增量数据集;将增量数据集同步至目标存储介质。
在该实施例提供的增量数据的同步方法中,预置对应不同数据类型的不同数据获取工具,通过该数据获取工具,可在对应的数据源中获取数据;预定义ETL策略,可对标准的数据对象进行ETL操作。在对增量的数据对象的进行同步,针对不同数据类型的数据源,选择其对应的数据获取工具,并将获取到的增量的数据对象转换成标准的数据对象,以按照预定义的ETL策略进行ETL操作,最后将进行ETL操作得到的增量数据集同步至目标存储介质。
采用该实施例提供的增量数据的同步方法,可对任意数据类型的数据源进行增量数据的同步,并且同步的增量数据为标准的数据对象经ETL操作转换后的增量数据集,适配于任意数据类型的目标存储介质,从而能够达到支持多种输入输出数据源的目的。
可选地,在一种实施例中,在从数据源中获取增量的数据对象并同步至目标存储介质的步骤之后,增量数据的同步方法还包括:获取增量的数据对象的元数据信息;发送元数据信息至预定接收端。
在该实施例提供的增量数据的同步方法中,对于增量的数据对象,将其元数据信息发送至预定接收端,使得预定接收端能够及时获得数据源的增量情况,进一步可选地,预定接收端可以订阅元数据信息发送的广播,从而可以广播的形式将元数据信息发送至订阅广播的预定接收端。
实施例二
本发明实施例二提供了一种优选地增量数据的同步方法,相关技术特征和对应的技术效果可参考上述实施例一,具体地,该实施例依托大数据的使用场景,监控数据源的新增和删除变化,实现异构数据源的兼容。其中,该实施例提供的增量数据的同步方法运行于数据同步系统,该数据同步系统包括数据源监控模块、内置元数据管理模块、数据增量识别模块、数据ETL转换模块,数据存储模块和增量数据信息广播模块,以实现对不同数据源由监控开始,到最终分析,存储的全流程实现。
其中,数据源监控模块支持ES、Hive、Mysql和PG等多种数据源,针对不同数据源实现采集存储空间大小、采集数据行数、采集时间点、采集周期管理和查询功能,可选地,支持部分数据用户的权限认证功能,也即在监控数据源的状态信息时,先进行权限认证。
对于异构数据源不同的数据结构,例如Hive使用库、表、分区和文件的结构,ES使用索引的结构,该实施例中的内置元数据管理模块提供一种灵活的、高可用的、支持事务操作的数据结构和存储容器,为满足需求,当前使用图数据库,它可以保存树状网络结构的关系型数据(也即状态图),同时可以单机,集群等方式部署,支持事务操作和高可用,操作简单,基于大数据框架,可存储大数据量,并可对存储的信息进行图计算分析数据源变化情况,如数据源更新周期,最近更新数据等。内置元数据管理模块会将数据源监控模块每个时间监控得到的元数据信息数据保存其中,并建立关系网络,以用于发现每个时间点变化数据,同时可将无用数据进行删除,也即将状态图中包括且监控得到的信息中不存在的数据对象对应的节点删除。
通过使用内置元数据管理模块中每个时间点状态信息,也即状态图,数据增量识别模块根据数据源类型,比较状态图中每个节点的节点信息和当前监控得到的数据对象的属性,如存储空间大小、数据行数和更新时间等,以识别较最新的数据对象新增的状态信息,如更新的文件列表、新增数据表、表新增的行号等,以确定增量的数据对象。
数据ETL转换模块通过使用Spark对多源种数据源的广泛支持和基于数据增量识别获取到的元数据信息,实现对不同数据源的增量数据抽取、转换、出功能,并可以自定义数据转换逻辑,也即预配置ETL策略,并支持Spark-SQL进行配置。
增量数据信息广播模块可将增量的数据对象的信息发送到消息中间件Kafka中,根据数据增量识别模块中得到的数据信息和元数据信息,根据接口定义转换成JSON字符串,进行发布,使订阅消息的用户可以发现和识别新增数据的信息,可以提高下游基于数据驱动的分析模块的执行效率,为实现针对增量数据的触发式执行功能提供支持。
数据存储模块将数据格式化保存到目标存储介质,可将转换好的数据集(也即增量数据集)批量保存到对应的目标存储介质中。
基于上述的数据同步系统,该实施例提供的增量数据的同步方法包括如下的步骤:
通过数据源监控模块,每经过一个时间周期获取数据源的状态信息,并将获取到的状态信息转换为状态图保存在内置元数据管理模块中,同时,数据增量识别模块根据获取到的数据源最新状态信息与内置元数据管理模块中保存的状态图,根据数据增量识别算法,筛选出增量的数据对象信息(如:表,库,文件,行等)。根据数据源的类型,选择不同的数据对象获取工具,具体地,Mysql和PG使用JDBC数据对象获取工具拉取数据,Hive使用直接读取HDFS文件的数据对象获取工具,ES作为半结构化数据,使用单独的加载驱动的数据对象获取工具获取增量的数据对象。将获取到的增量的数据对象与Spark结合,从而将数据对象转换成统一的Dataset对象,再对Dataset数据对象进行ETL操作,具体可使用Spark原生接口或Spark-Sql的方式进行数据转换,最后生成转换后Dataset数据集,将转换后的数据集保存到目标存储介质。最后将成功处理后的增量数据元信息通过Kafka进行广播。
在使用该实施例提供的增量数据的同步方法时,在上述数据同步系统中,配置数据源(Mysql、Hive、PG、ES)的url地址,同时也可配置监控的库和表(database,table),以对数据源中的部分库和表进行监控。配置数据目标存储介质(Mysql、Hive、PG、ES)的url地址,时也可配置存储的库和表(database,table),以将增量数据同步到对应的库和表中。配置数据转换策略,配置并发线程个数,通过并发线程同时处理多个数据转换。配置增量信息广播Kafka地址,配置好以后,即可对数据源中增量的数据对象同步至目标存储介质。其中,首次可将数据源进行全量数据同步,然后在监控过程中进行增量同步,其他程序可订阅信息,当增量信息同步成功时,可马上对增量信息进行广播,对内置元数据管理模块中状态图的分析,可发现数据源数据更新时间和数据生命周期等,为数据资产提供数据参考。
采用该实施例提供的增量数据的同步方法,可提供高吞吐量的数据同步,自动存储数据源状态信息,自动进行增量数据发现、数据ETL处理,并可分析数据源变化。实时不间断监控数据源的数据情况,并追踪新增的数据,对其进行分析转换,同步和消息发布,数据源状态历史信息的保存,为数据源状态信息分析提供数据支持。基于大数据技术,使用Spark作为数据同步处理引擎,可使用集群共享资源,无需占用单独服务器资源。
此外,使用图数据库以树形数据结构保存数据源状态信息和层级关系,为分析数据源变化趋势,数据生命周期提供更灵活的分析能力,图数据库基于大数据架构可以存储海量数据集,同时保证数据安全性,可灵活存储不同结构的数据源元数据信息。能依据不同数据源类型发现和识别数据源最细粒度级别的增量数据信息(如:新增表行数,新增文件),降低后续数据处理压力,减少数据量。增量数据处理过程中可自定义多种ETL策略,支持通用SQL语言,和复杂处理逻辑。新增数据信息发布订阅,可为下游相关应用提供触发机制,使数据分析型程序无需采用定时这种浪费资源的执行策略。支持多种输入输出数据源(ES、Mysql、PG、Hive),可根据需求扩展其他不同数据源。
实施例三
对应于上述实施例一,本发明实施例三提供了一种增量数据的同步装置,相关技术特征和对应的技术效果可参考上述实施例一和上述实施例二,具体地,图2为本发明实施例三提供的增量数据的同步装置的框图,如图2所示,该装置包括:获取模块201、监控模块202、比对模块203和同步模块204。
其中,获取模块201用于获取数据源在第一时间的状态图,得到第一状态图,其中,状态图为树形数据结构,状态图包括若干个节点层,每个节点层包括若干个节点,节点对应一个数据对象,节点的信息包括数据对象的属性,节点层用于表征数据对象在数据源中的层级;监控模块202用于在第二时间监控数据源的状态信息,得到第二状态信息,其中,状态信息包括数据源中数据对象的属性;比对模块203用于将第二状态信息与第一状态图进行比对,以确定数据源中增量的数据对象;以及同步模块204用于从数据源中获取增量的数据对象并同步至目标存储介质。
可选地,在一种实施例中,增量数据的同步装置还包括:更新模块,用于在比对模块203确定数据源中增量的数据对象之后,根据增量的数据对象更新第一状态图,以得到第二状态图。
可选地,在一种实施例中,更新模块在根据增量的数据对象更新第一状态图时,具体执行的步骤包括:构建对应增量的数据对象的节点,作为增量节点;在增量的数据对象对应的节点层增加增量节点,并将增量节点标记为检查节点;增量数据的同步装置还包括:分析模块,用于同步模块204在从数据源中获取增量的数据对象并同步至目标存储介质之后,获取第二状态图中的检查节点,以分析数据源的变化。
可选地,在一种实施例中,比对模块203在将第二状态信息与第一状态图进行比对,以确定数据源中增量的数据对象时,具体执行的步骤包括:监控数据源中第一层级的第一数据对象的属性,得到第一属性,其中,第一数据对象为第一层级中的一个数据对象,第一层级对应第一状态图中的第一节点层;判断第一节点层是否包括第一数据对象对应的第一节点;若第一节点层包括第一节点,将第一属性与第一节点的节点信息进行比对;若第一节点层不包括第一节点,确定第一数据对象为增量的数据对象;若第一属性与第一节点的节点信息相同,监控第二数据对象的属性,其中,第二数据对象与第一数据对象均位于第一层级;若第一属性与第一节点的节点信息不同,监控数据源中第三数据对象的属性,其中,第三数据对象为第一数据对象下一层级的一个数据对象。
可选地,在一种实施例中,数据源包括多种数据类型,同步模块204从数据源中获取增量的数据对象并同步至目标存储介质时,具体执行的步骤包括:确定数据源的数据类型;选择对应数据类型的数据获取工具,从数据源中获取增量的数据对象;将增量的数据对象转换为标准的数据对象;对标准的数据对象按照预定义的ETL策略进行ETL操作,得到增量数据集;将增量数据集同步至目标存储介质。
可选地,在一种实施例中,增量数据的同步装置还包括发布模块,用于在同步模块204从数据源中获取增量的数据对象并同步至目标存储介质之后,获取增量的数据对象的元数据信息,发送元数据信息至预定接收端。
可选地,在一种实施例中,数据对象包括数据库、数据表、数据分区和数据文件,数据对象的属性信息包括占用空间大小、子数据对象的数量和更新时间。
实施例四
本实施例四还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图3所示,本实施例的计算机设备01至少包括但不限于:可通过系统总线相互通信连接的存储器011、处理器012,如图3所示。需要指出的是,图3仅示出了具有组件存储器011和处理器012的计算机设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器011(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器011可以是计算机设备01的内部存储单元,例如该计算机设备01的硬盘或内存。在另一些实施例中,存储器011也可以是计算机设备01的外部存储设备,例如该计算机设备01上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器011还可以既包括计算机设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器011通常用于存储安装于计算机设备01的操作系统和各类应用软件,例如实施例三的增量数据的同步装置的程序代码等。此外,存储器011还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器012在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器012通常用于控制计算机设备01的总体操作。本实施例中,处理器012用于运行存储器011中存储的程序代码或者处理数据,例如增量数据的同步方法等。
实施例五
本实施例五还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储增量数据的同步装置,被处理器执行时实现实施例一的增量数据的同步方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种增量数据的同步方法,其特征在于,包括:
获取数据源在第一时间的状态图,得到第一状态图,其中,所述状态图为树形数据结构,所述状态图包括若干个节点层,每个所述节点层包括若干个节点,所述节点对应一个数据对象,所述节点的信息包括所述数据对象的属性,所述节点层用于表征所述数据对象在所述数据源中的层级;
在第二时间监控所述数据源的状态信息,得到第二状态信息,其中,所述状态信息包括所述数据源中数据对象的属性;
将所述第二状态信息与所述第一状态图进行比对,以确定所述数据源中增量的数据对象;以及
从所述数据源中获取所述增量的数据对象并同步至目标存储介质。
2.根据权利要求1所述的增量数据的同步方法,其特征在于,在确定所述数据源中增量的数据对象的步骤之后,所述增量数据的同步方法还包括:
根据所述增量的数据对象更新所述第一状态图,以得到第二状态图。
3.根据权利要求2所述的增量数据的同步方法,其特征在于,
根据所述增量的数据对象更新所述第一状态图,以得到第二状态图的步骤包括:构建对应所述增量的数据对象的节点,作为增量节点;在所述增量的数据对象对应的节点层增加所述增量节点,并将所述增量节点标记为检查节点;
在从所述数据源中获取所述增量的数据对象并同步至目标存储介质之后,所述增量数据的同步方法还包括:获取所述第二状态图中的所述检查节点,以分析所述数据源的变化。
4.根据权利要求1所述的增量数据的同步方法,其特征在于,将所述第二状态信息与所述第一状态图进行比对,以确定所述数据源中增量的数据对象的步骤包括:
监控所述数据源中第一层级的第一数据对象的属性,得到第一属性,其中,所述第一数据对象为所述第一层级中的一个数据对象,所述第一层级对应所述第一状态图中的第一节点层;
判断所述第一节点层是否包括所述第一数据对象对应的第一节点;
若所述第一节点层包括所述第一节点,将所述第一属性与所述第一节点的节点信息进行比对;
若所述第一节点层不包括所述第一节点,确定所述第一数据对象为所述增量的数据对象;
若所述第一属性与所述第一节点的节点信息相同,监控第二数据对象的属性,其中,所述第二数据对象与所述第一数据对象均位于所述第一层级;
若所述第一属性与所述第一节点的节点信息不同,监控所述数据源中第三数据对象的属性,其中,所述第三数据对象为所述第一数据对象下一层级的一个数据对象。
5.根据权利要求1所述的增量数据的同步方法,其特征在于,所述数据源包括多种数据类型,从所述数据源中获取所述增量的数据对象并同步至目标存储介质的步骤包括:
确定所述数据源的数据类型;
选择对应所述数据类型的数据获取工具,从所述数据源中获取所述增量的数据对象;
将所述增量的数据对象转换为标准的数据对象;
对所述标准的数据对象按照预定义的ETL策略进行ETL操作,得到增量数据集;
将所述增量数据集同步至所述目标存储介质。
6.根据权利要求1所述的增量数据的同步方法,其特征在于,在从所述数据源中获取所述增量的数据对象并同步至目标存储介质的步骤之后,所述增量数据的同步方法还包括:
获取所述增量的数据对象的元数据信息;
发送所述元数据信息至预定接收端。
7.根据权利要求1所述的增量数据的同步方法,其特征在于,
所述数据对象包括数据库、数据表、数据分区和数据文件,所述数据对象的属性信息包括占用空间大小、子数据对象的数量和更新时间。
8.一种增量数据的同步装置,其特征在于,包括:
获取模块,用于获取数据源在第一时间的状态图,得到第一状态图,其中,所述状态图为树形数据结构,所述状态图包括若干个节点层,每个所述节点层包括若干个节点,所述节点对应一个数据对象,所述节点的信息包括所述数据对象的属性,所述节点层用于表征所述数据对象在所述数据源中的层级;
监控模块,用于在第二时间监控所述数据源的状态信息,得到第二状态信息,其中,所述状态信息包括所述数据源中数据对象的属性;
比对模块,用于将所述第二状态信息与所述第一状态图进行比对,以确定所述数据源中增量的数据对象;以及
同步模块,用于从所述数据源中获取所述增量的数据对象并同步至目标存储介质。
9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
CN201911418153.7A 2019-12-31 2019-12-31 增量数据的同步方法、装置、计算机设备和存储介质 Pending CN113127549A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911418153.7A CN113127549A (zh) 2019-12-31 2019-12-31 增量数据的同步方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911418153.7A CN113127549A (zh) 2019-12-31 2019-12-31 增量数据的同步方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN113127549A true CN113127549A (zh) 2021-07-16

Family

ID=76769189

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911418153.7A Pending CN113127549A (zh) 2019-12-31 2019-12-31 增量数据的同步方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN113127549A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105243140A (zh) * 2015-10-10 2016-01-13 中国科学院软件研究所 一种面向高速列车实时监控的海量数据管理方法
CN108183965A (zh) * 2018-01-15 2018-06-19 郑州云海信息技术有限公司 一种数据同步方法、装置、设备、系统及可读存储介质
US20180196820A1 (en) * 2017-01-06 2018-07-12 Oracle International Corporation File system hierarchies and functionality with cloud object storage
CN108984102A (zh) * 2017-06-02 2018-12-11 伊姆西Ip控股有限责任公司 管理存储系统的方法、系统和计算机程序产品
CN109918439A (zh) * 2019-03-14 2019-06-21 杭州数梦工场科技有限公司 数据同步方法及其应用的环路检测方法和相关装置
CN110175209A (zh) * 2019-04-12 2019-08-27 中国人民财产保险股份有限公司 增量数据同步方法、系统、设备及存储介质
US10489388B1 (en) * 2018-05-24 2019-11-26 People. ai, Inc. Systems and methods for updating record objects of tenant systems of record based on a change to a corresponding record object of a master system of record

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105243140A (zh) * 2015-10-10 2016-01-13 中国科学院软件研究所 一种面向高速列车实时监控的海量数据管理方法
US20180196820A1 (en) * 2017-01-06 2018-07-12 Oracle International Corporation File system hierarchies and functionality with cloud object storage
CN108984102A (zh) * 2017-06-02 2018-12-11 伊姆西Ip控股有限责任公司 管理存储系统的方法、系统和计算机程序产品
CN108183965A (zh) * 2018-01-15 2018-06-19 郑州云海信息技术有限公司 一种数据同步方法、装置、设备、系统及可读存储介质
US10489388B1 (en) * 2018-05-24 2019-11-26 People. ai, Inc. Systems and methods for updating record objects of tenant systems of record based on a change to a corresponding record object of a master system of record
CN109918439A (zh) * 2019-03-14 2019-06-21 杭州数梦工场科技有限公司 数据同步方法及其应用的环路检测方法和相关装置
CN110175209A (zh) * 2019-04-12 2019-08-27 中国人民财产保险股份有限公司 增量数据同步方法、系统、设备及存储介质

Similar Documents

Publication Publication Date Title
CN109800222B (zh) 一种HBase二级索引自适应优化方法和系统
CN110427368B (zh) 数据处理方法、装置、电子设备及存储介质
CN103678494A (zh) 客户端同步服务端数据的方法及装置
CN106874281B (zh) 实现数据库读写分离的方法和装置
CN109669925B (zh) 非结构化数据的管理方法及装置
CN104809201A (zh) 一种数据库同步的方法和装置
CN102169507A (zh) 一种分布式实时搜索引擎
CN110245134B (zh) 一种应用于搜索服务的增量同步方法
CN111859132A (zh) 一种数据处理方法、装置及智能设备、存储介质
CN111858760B (zh) 一种异构数据库的数据处理方法及装置
CN105786950A (zh) 一种处理数据的方法及装置
CN111046036A (zh) 数据同步方法、装置、系统及存储介质
CN103353901A (zh) 基于Hadoop分布式文件系统的表数据的有序管理方法以及系统
CN110659283A (zh) 数据标签处理方法、装置、计算机设备及存储介质
CN112506870A (zh) 数据仓库增量更新方法、装置及计算机设备
CN107870982B (zh) 数据处理方法、系统和计算机可读存储介质
CN114116762A (zh) 一种离线数据模糊搜索方法、装置、设备和介质
CN106161193B (zh) 一种邮件处理方法、装置和系统
CN105843809B (zh) 数据处理方法和装置
CN114416868A (zh) 一种数据同步方法、装置、设备及存储介质
CN111767314A (zh) 数据缓存及查询方法、装置、懒缓存系统及存储介质
CN116595106A (zh) 一种用户分群方法、设备及存储介质
CN116452123A (zh) 清单项目特征值的生成方法、装置和计算机设备
CN113127549A (zh) 增量数据的同步方法、装置、计算机设备和存储介质
CN114490865A (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
CB02 Change of applicant information

Country or region after: China

Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant after: Qianxin Technology Group Co.,Ltd.

Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd.

Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant before: Qianxin Technology Group Co.,Ltd.

Country or region before: China

Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc.