发明内容
本发明的目的是提供一种增量数据的同步方法、装置、计算机设备和存储介质,用于解决现有技术中的上述技术问题。
一方面,为实现上述目的,本发明提供了一种增量数据的同步方法。
该增量数据的同步方法包括:获取数据源在第一时间的状态图,得到第一状态图,其中,状态图为树形数据结构,状态图包括若干个节点层,每个节点层包括若干个节点,节点对应一个数据对象,节点的信息包括数据对象的属性,节点层用于表征数据对象在数据源中的层级;在第二时间监控数据源的状态信息,得到第二状态信息,其中,状态信息包括数据源中数据对象的属性;将第二状态信息与第一状态图进行比对,以确定数据源中增量的数据对象;以及从数据源中获取增量的数据对象并同步至目标存储介质。
进一步地,在确定数据源中增量的数据对象的步骤之后,增量数据的同步方法还包括:根据增量的数据对象更新第一状态图,以得到第二状态图。
进一步地,根据增量的数据对象更新第一状态图,以得到第二状态图的步骤包括:构建对应增量的数据对象的节点,作为增量节点;在增量的数据对象对应的节点层增加增量节点,并将增量节点标记为检查节点;在从数据源中获取增量的数据对象并同步至目标存储介质之后,增量数据的同步方法还包括:获取第二状态图中的检查节点,以分析数据源的变化。
进一步地,将第二状态信息与第一状态图进行比对,以确定数据源中增量的数据对象的步骤包括:监控数据源中第一层级的第一数据对象的属性,得到第一属性,其中,第一数据对象为第一层级中的一个数据对象,第一层级对应第一状态图中的第一节点层;判断第一节点层是否包括第一数据对象对应的第一节点;若第一节点层包括第一节点,将第一属性与第一节点的节点信息进行比对;若第一节点层不包括第一节点,确定第一数据对象为增量的数据对象;若第一属性与第一节点的节点信息相同,监控第二数据对象的属性,其中,第二数据对象与第一数据对象均位于第一层级;若第一属性与第一节点的节点信息不同,监控数据源中第三数据对象的属性,其中,第三数据对象为第一数据对象下一层级的一个数据对象。
进一步地,数据源包括多种数据类型,从数据源中获取增量的数据对象并同步至目标存储介质的步骤包括:确定数据源的数据类型;选择对应数据类型的数据获取工具,从数据源中获取增量的数据对象;将增量的数据对象转换为标准的数据对象;对标准的数据对象按照预定义的ETL策略进行ETL操作,得到增量数据集;将增量数据集同步至目标存储介质。
进一步地,在从数据源中获取增量的数据对象并同步至目标存储介质的步骤之后,增量数据的同步方法还包括:获取增量的数据对象的元数据信息;发送元数据信息至预定接收端。
进一步地,数据对象包括数据库、数据表、数据分区和数据文件,数据对象的属性信息包括占用空间大小、子数据对象的数量和更新时间。
另一方面,为实现上述目的,本发明提供了一种增量数据的同步装置。
该增量数据的同步装置包括:获取模块,用于获取数据源在第一时间的状态图,得到第一状态图,其中,状态图为树形数据结构,状态图包括若干个节点层,每个节点层包括若干个节点,节点对应一个数据对象,节点的信息包括数据对象的属性,节点层用于表征数据对象在数据源中的层级;监控模块,用于在第二时间监控数据源的状态信息,得到第二状态信息,其中,状态信息包括数据源中数据对象的属性;比对模块,用于将第二状态信息与第一状态图进行比对,以确定数据源中增量的数据对象;以及同步模块,用于从数据源中获取增量的数据对象并同步至目标存储介质。
为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本发明提供的增量数据的同步方法、装置、计算机设备和存储介质,通过树形数据结构的状态图保存数据源的状态信息,也即保存数据源中数据对象的属性,对于相邻两次监控时间,在在后的第二时间监控到数据源的第二状态信息时,获取在前的第一时间的第一状态图,将监控到的第二状态信息与第一状态图进行比对,确定第二状态信息中的数据对象相对第一状态图中的数据对象的变化情况,从而可确定数据源中增量的数据对象,并从数据源中获取增量的数据对象并同步至目标存储介质。通过本发明,基于监控得到的数据源的状态信息与上一时间的状态图的比对结果,来确定增量的数据对象,并在数据源中直接获取增量的数据对象进行同步,能够提升数据同步的效率。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了提升增量数据同步的效率,本发明提供了一种增量数据的同步方法、装置、计算机设备和存储介质,在该增量数据的同步方法中,构建对应数据源的状态图,该状态图为树形数据结构,以树形数据结构来反映数据源的状态,也即数据源中各数据对象的属性,具体地,状态图包括若干个节点层,该节点层用于表征数据对象在数据源中的层级,每个节点层包括若干个节点,每个节点对应一个数据对象,节点的信息包括数据对象的属性,基于此,对数据源的状态信息进行监控,得到数据源中数据对象的属性后,将当前监控得到的数据对象的属性与数据源在上一时间的状态图进行比对,从而能够确定数据源中增量的数据对象,最后从数据源中获取增量的数据对象并同步至目标存储介质。从中可以看出,在本发明提供的增量数据的同步方法中,通过比对当前监控到的数据源中数据对象的属性和上一时间的数据源的状态图,来确定数据源中增量的数据对象,仅需监控数据对象的属性和比对,与现有技术相比,无需对数据源中的数据进行读取和查询,因此,能够提升确定增量数据的效率,进而能够提升增量数据同步的效率。
关于本发明提供的增量数据的同步方法、装置、计算机设备和存储介质的具体实施例,将在下文中详细描述。
实施例一
本发明实施例提供了一种增量数据的同步方法,可应用于大数据场景下,将数据源数据以增量同步的方式同步至下游业务系统,通过该方法,能够提升增量数据同步的效率,具体地,图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应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储增量数据的同步装置,被处理器执行时实现实施例一的增量数据的同步方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。