CN113742333B - 一种维表数据更新方法、装置及电子设备 - Google Patents
一种维表数据更新方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113742333B CN113742333B CN202010477617.8A CN202010477617A CN113742333B CN 113742333 B CN113742333 B CN 113742333B CN 202010477617 A CN202010477617 A CN 202010477617A CN 113742333 B CN113742333 B CN 113742333B
- Authority
- CN
- China
- Prior art keywords
- log
- dimension table
- entry
- target
- data
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000001360 synchronised effect Effects 0.000 claims abstract description 88
- 230000008859 change Effects 0.000 claims abstract description 70
- 238000013479 data entry Methods 0.000 claims abstract description 41
- 238000004891 communication Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013434 data augmentation Methods 0.000 claims description 6
- 230000000875 corresponding effect Effects 0.000 description 107
- 238000004364 calculation method Methods 0.000 description 33
- 238000012545 processing Methods 0.000 description 17
- 238000005192 partition Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种维表数据更新方法、装置及电子设备。该方法应用于流计算系统,包括:基于目标原始维表的同步日志,确定用于更新待更新维表的目标同步日志;针对目标同步日志中的每一日志条目,确定该日志条目对应的维表数据在更新前和更新后的存储位置的位置变化量;针对目标同步日志中的每一日志条目,从该日志条目对应的位置变化量指示的存储区域内,读取维表数据;针对目标同步日志中的每一日志条目,根据该日志条目对应的待利用维表数据,更新待更新维表中与该日志条目对应的维表数据条目。与现有技术相比,应用本发明实施例提供的方案,可以实现对流计算框架中所缓存的维表的更新,避免在进行数据关联时,关联到未更新到无效数据。
Description
技术领域
本发明涉及大数据技术领域,特别是涉及一种维表数据更新方法、装置及电子设备。
背景技术
当前,随着大数据技术的不断发展,针对大规模流动数据,流计算被广泛应用于各种应用领域中,例如,电子邮件、电子感应器、社交网站等。
其中,所谓流计算是指:在大规模流动数据不断变化的运动过程中,对该流动数据实时地进行分析,捕捉到可能有用的信息,并把结果发送到下一计算节点。具体的,在流计算中,通常由流计算系统中的数据采集端从外部数据源采集数据流,并分发给数据处理端进行处理和分析。并且,由于数据采集端所采集的数据往往比较有限,因此,在进行分析前,需要将所采集到的数据流中的各个流计算数据与预设数据库中所存储的维表中的维表数据进行关联(join),以获得较为完整的数据。其中,能够关联的流计算数据和维表数据具有相同的关键字序列。
通常,上述预设数据库位于第三方存储系统中,因此,需要在进行上述数据关联时,需要通过网络IO(Input/Output,输入/输出)接口实时对上述预设数据库进行访问,以实现数据传输。基于此,在流计算过程中,由于需要多次实时访问上述预设数据库,因此,可以给上述第三方系统带来较大的输出压力,并影响上述数据关联的效率。
相关技术中,为了减轻流计算过程中,给上述第三方系统带来较大的输出压力,并提高上述数据关联的效率,通常,可以在流计算系统中缓存上述维表。进而,在进行上述数据关联时,便可以直接与所缓存的维表中的数据进行关联。
然而,在上述相关技术中,流计算系统无法感知上述预设数据库中所存储的维表中各个维度下的维表数据的变化,从而,导致在进行上述数据关联时,所关联的数据可能为未更新的无效数据,从而,影响流计算的处理结果。
发明内容
本发明实施例的目的在于提供一种维表数据更新方法、装置、电子设备及计算机可读存储介质,以实现对流计算框架中所缓存的维表的更新,避免在进行数据关联时,关联到未更新到无效数据,提高流计算的处理效果。
具体技术方案如下:
第一方面,本发明实施例提供了一种维表数据更新方法,应用于流计算系统,所述方法包括:
基于目标原始维表的同步日志,确定用于更新待更新维表的目标同步日志;其中,所述目标原始维表为预设数据库中存储的,且与所述待更新维表对应的原始维表;
针对所述目标同步日志中的每一日志条目,确定该日志条目对应的维表数据在更新前和更新后的存储位置的位置变化量,作为该标日志条目对应的位置变化量;
针对所述目标同步日志中的每一日志条目,从该日志条目对应的位置变化量指示的存储区域内,读取维表数据,作为该目标日志条目对应的待利用维表数据;
针对所述目标同步日志中的每一日志条目,根据该日志条目对应的待利用维表数据,更新所述待更新维表中与该日志条目对应的维表数据条目;其中,该日志条目对应的维表数据条目与该日志条目指代同一数据对象。
可选的,一种具体实现方式中,所述基于目标原始维表的同步日志,确定用于更新待更新维表的目标同步日志的步骤,包括:
获取目标原始维表的同步日志,作为用于更新所述待更新维表的目标同步日志;或者,
从目标原始维表的同步日志中,读取所表征的维表数据的更新类型为指定类型的日志条目;生成包含所读取到的日志条目的同步日志,作为用于更新所述待更新维表的目标同步日志;其中,所述指定类型为:数据增加和数据改写中的任一类型。
可选的,一种具体实现方式中,所述从目标原始维表的同步日志中,读取所表征的维表数据的更新类型为指定类型的日志条目的步骤,包括:
针对目标原始维表的每一日志条目,从上一次确定目标同步日志时,所利用的同步日志中,确定与该日志条目具有相同条目标识的条目,作为该日志条目对应的参考条目;
针对目标原始维表的每一日志条目,判断该日志条目和该日志条目对应的参考条目中,关于所述更新类型的更新次数是否发生变化,如果是,确定该日志条目维所表征的维表数据的更新类型为指定类型的日志条目。
可选的,一种具体实现方式中,所述目标同步日志中的每一日志条目记录有初始偏移量和当前偏移量,所述初始偏移量表征该日志条目所对应维表数据在更新前的存储位置,所述当前偏移量表征该日志条目所对应的维表数据在更新后的存储位置;
所述针对所述目标同步日志中的每一日志条目,确定该日志条目对应的维表数据在更新前和更新后的存储位置的位置变化量的步骤,包括:
针对所述目标同步日志中的每一日志条目,计算该日志条目所记录的初始偏移量和当前偏移量的差异值,得到该日志条目对应的维表数据在更新前和更新后的存储位置的位置变化量。
可选的,一种具体实现方式中,所述针对所述目标同步日志中的每一日志条目,根据该日志条目对应的待利用维表数据,更新所述待更新维表中与该日志条目对应的维表数据条目的步骤,包括:
针对所述目标同步日志中的每一日志条目,在所述待更新维表中,确定所包括关键字序列与该目标日志条目所包括的关键字序列相同的维表数据条目;所述关键字序列用于标识数据对象;
针对所述目标同步日志中的每一日志条目,在所确定的维表数据条目所包括的各个维度中,确定维度标识与该目标日志条目所包括的维度标识相同的目标维度;
针对所述目标同步日志中的每一日志条目,将所确定的维表数据条目中的目标维度的维度数据更新为所读取到的该日志条目对应的维表数据。
第二方面,本发明实施例提供了一种维表数据更新装置,应用于流计算系统,所述装置包括:
日志确定模块,用于基于目标原始维表的同步日志,确定用于更新待更新维表的目标同步日志;其中,所述目标原始维表为预设数据库中存储的,且与所述待更新维表对应的原始维表;
位置变化量确定模块,用于针对所述目标同步日志中的每一日志条目,确定该日志条目对应的维表数据在更新前和更新后的存储位置的位置变化量,作为该标日志条目对应的位置变化量;
维表数据读取模块,用于针对所述目标同步日志中的每一日志条目,从该日志条目对应的位置变化量指示的存储区域内,读取维表数据,作为该目标日志条目对应的待利用维表数据;
维表更新模块,用于针对所述目标同步日志中的每一日志条目,根据该日志条目对应的待利用维表数据,更新所述待更新维表中与该日志条目对应的维表数据条目;其中,该日志条目对应的维表数据条目与该日志条目指代同一数据对象。
可选的,一种具体实现方式中,
所述日志确定模块包括:第一日志确定子模块,用于获取目标原始维表的同步日志,作为用于更新所述待更新维表的目标同步日志;
或者,
所述日志确定模块包括:日志条目读取子模块,用于从目标原始维表的同步日志中,读取所表征的维表数据的更新类型为指定类型的日志条目;日志生成子模块,用于生成包含所读取到的日志条目的同步日志,作为用于更新所述待更新维表的目标同步日志;其中,所述指定类型为:数据增加和数据改写中的任一类型。
可选的,一种具体实现方式中,所述日志条目读取子模块具体用于:
针对目标原始维表的每一日志条目,从上一次确定目标同步日志时,所利用的同步日志中,确定与该日志条目具有相同条目标识的条目,作为该日志条目对应的参考条目;
针对目标原始维表的每一日志条目,判断该日志条目和该日志条目对应的参考条目中,关于所述更新类型的更新次数是否发生变化,如果是,确定该日志条目维所表征的维表数据的更新类型为指定类型的日志条目。
可选的,一种具体实现方式中,所述目标同步日志中的每一日志条目记录有初始偏移量和当前偏移量,所述初始偏移量表征该日志条目所对应维表数据在更新前的存储位置,所述当前偏移量表征该日志条目所对应的维表数据在更新后的存储位置;所述位置变化量确定模块具体用于:
针对所述目标同步日志中的每一日志条目,计算该日志条目所记录的初始偏移量和当前偏移量的差异值,得到该日志条目对应的维表数据在更新前和更新后的存储位置的位置变化量。
可选的,一种具体实现方式中,所述维表更新模块具体用于:
针对所述目标同步日志中的每一日志条目,在所述待更新维表中,确定所包括关键字序列与该目标日志条目所包括的关键字序列相同的维表数据条目;所述关键字序列用于标识数据对象;
针对所述目标同步日志中的每一日志条目,在所确定的维表数据条目所包括的各个维度中,确定维度标识与该目标日志条目所包括的维度标识相同的目标维度;
针对所述目标同步日志中的每一日志条目,将所确定的维表数据条目中的目标维度的维度数据更新为所读取到的该日志条目对应的维表数据。
第三方面,本发明实施例提供了一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面提供的任一维表数据更新方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面提供的任一维表数据更新方法的步骤。
第五方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一维表数据更新方法的步骤。
本发明实施例有益效果:
应用本发明实施例提供的方案,可以利用预设数据库中存储的,且与流计算系统中所缓存的待更新维表对应的原始维表的同步日志,得到用于更新该所缓存的维表的目标同步日志。从而,便可以确定目标同步日志中的每一日志条目对应的位置变化量,进而,便可以从该位置变化量指示的存储区域中,读取维表数据,从而,得到该目标日志条目对应的待利用维表数据。扎样,便可以根据目标同步日志中的每一日志条目对应的待利用维表数据,更新待更新维表中与该日志条目对应的,且指代同一数据类型的维表数据条目。
基于此,应用本发明实施例提供的方案,在预设数据库中存储的,且与流计算系统中所缓存的待更新维表对应的原始维表中的维表数据发生变化时,计算系统可以感知该原始维表中各个维度下的维表数据的变化,从而,更新所缓存的待更新维表。这样,当将所采集到的数据流中的各个流计算数据与所缓存的待更新维表中的维表数据进行关联时,便可以保证关联到的维表数据为更新后的有效数据,进而,提高流计算的处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种维表数据更新方法的流程示意图;
图2为图1中S101的一种具体实现方式的流程示意图;
图3为图2中S201的一种具体实现方式的流程示意图;
图4为图1中S104的一种具体实现方式的流程示意图;
图5(a)和图5(b)为在Flink流计算系统中应用本发明实施例提供的一种维表数据更新方法的原理示意图;
图6为Flink流计算系统在应用本发明实施例提供的一种维表数据更新方法的基础上的,流计算数据和维表数据的数据关联逻辑图;
图7为本发明实施例提供的一种维表数据更新装置的结构示意图;
图8为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,为了减轻流计算过程中,给上述第三方系统带来较大的输出压力,并提高上述数据关联的效率,通常,可以在流计算系统中缓存上述维表。进而,在进行上述数据关联时,便可以直接与所缓存的维表中的数据进行关联。然而,在上述相关技术中,流计算系统无法感知上述预设数据库中所存储的维表中各个维度下的维表数据的变化,从而,导致在进行上述数据关联时,所关联的数据可能为未更新的无效数据,从而,影响流计算的处理结果。
为了解决上述技术问题,本发明实施例提供了一种维表数据更新方法。其中,该方法应用于流计算系统,例如,Flink流计算系统等。也就是说,,本发明实施例提供的一种维表数据更新方法的执行主体为流计算系统中的一电子设备,例如,可以为作为流计算系统中的数据采集端的电子设备,或者作为流计算系统中的数据处理端的电子设备。对此,本发明实施例不做具体限定,以下简称流计算系统。
此外,所谓维表是指:维度属性的集合,比如时间维、地点维,通常用于补充所采集到的流计算数据进行补全。其中,维表是动态表,维表中所存储的各个维度下的维表数据可以不变,也可以定时更新。通常,维表中所存储的各个维度下的维表数据的更新频率较低。
具体的,本发明实施例提供的一种维表数据更新方法为:
基于目标原始维表的同步日志,确定用于更新待更新维表的目标同步日志;其中,所述目标原始维表为预设数据库中存储的,且与所述待更新维表对应的原始维表;
针对所述目标同步日志中的每一日志条目,确定该日志条目对应的维表数据在更新前和更新后的存储位置的位置变化量,作为该标日志条目对应的位置变化量;
针对所述目标同步日志中的每一日志条目,从该日志条目对应的位置变化量指示的存储区域内,读取维表数据,作为该目标日志条目对应的待利用维表数据;
针对所述目标同步日志中的每一日志条目,根据该日志条目对应的待利用维表数据,更新所述待更新维表中与该日志条目对应的维表数据条目;其中,该日志条目对应的维表数据条目与该日志条目指代同一数据对象。
以上可见,应用本发明实施例提供的方案,可以利用预设数据库中存储的,且与流计算系统中所缓存的待更新维表对应的原始维表的同步日志,得到用于更新该所缓存的维表的目标同步日志。从而,便可以确定目标同步日志中的每一日志条目对应的位置变化量,进而,便可以从该位置变化量指示的存储区域中,读取维表数据,从而,得到该目标日志条目对应的待利用维表数据。扎样,便可以根据目标同步日志中的每一日志条目对应的待利用维表数据,更新待更新维表中与该日志条目对应的,且指代同一数据类型的维表数据条目。
基于此,应用本发明实施例提供的方案,在预设数据库中存储的,且与流计算系统中所缓存的待更新维表对应的原始维表中的维表数据发生变化时,计算系统可以感知该原始维表中各个维度下的维表数据的变化,从而,更新所缓存的待更新维表。这样,当将所采集到的数据流中的各个流计算数据与所缓存的待更新维表中的维表数据进行关联时,便可以保证关联到的维表数据为更新后的有效数据,进而,提高流计算的处理效率。
下面,对本发明实施例提供的一种维表数据更新方法进行具体说明。
图1为本发明实施例提供的一种维表数据更新方法的流程示意图,如图1所示,该方法可以包括如下步骤:
S101:基于目标原始维表的同步日志,确定用于更新待更新维表的目标同步日志;
其中,目标原始维表为预设数据库中存储的,且与待更新维表对应的原始维表;
本发明实施例所提供的一种维表数据更新方法,所要实现的是在将预设数据库中所存储的维表缓存到流计算系统中后,当该预设数据库中所存储的维表中的维表数据发生变化,则流计算系统可以感知该维表数据的变化,从而,对所缓存的维表中的相应维表数据进行更新。
其中,可以将流计算系统中所缓存的维表称为待更新维表,将预设数据库中所存储的维表称为目标原始维表。显然,流计算系统中所缓存的待更新维表和预设数据库中所存储的目标原始维表是相对应的。
此外,在改变目标原始维表中的维表数据时,将生成该目标原始维表的同步日志,其中,该日志中记录了目标原始维表中的维表数据的更改时间,以及所更改的维表数据的维度和该维表数据所指定的数据对象。
基于此,在对待更新维表进行更新时,便可以基于目标原始维表的同步日志,确定用于更新待更新维表的目标同步日志。
其中,可选的,由于维表的更改频率较低,因此,流计算系统可以按照预定周期,每个预设时间间隔,执行上述步骤S101,
进一步的,电子设备可以通过多种方式执行上述步骤S101,对此,本发明实施例不做具体限定。
可选的,一种具体实现方式中,上述步骤S101可以包括如下步骤:
获取目标原始维表的同步日志,作为用于更新待更新维表的目标同步日志。
在本具体实现方式中,流计算系统可以直接获取目标原始维表的同步日志,进而,流计算系统便可以直接所获取到的同步日志作为用于更新待更新维表的目标同步日志。
可选的,另一种具体实现方式中,如图2所示,上述步骤S101可以包括如下步骤:
S201:从目标原始维表的同步日志中,读取所表征的维表数据的更新类型为指定类型的日志条目;
S202:生成包含所读取到的日志条目的同步日志,作为用于更新待更新维表的目标同步日志;
其中,指定类型为:数据增加和数据改写中的任一类型。
可以理解的,当目标原始维表中,维表数据的更新类型为删除时,即删除了该目标原始维表中,某一维表条目中的某一维度的维表数据。也就是说,在流计算系统采集流计算数据时,所采集到的任一流计算数据均不会与该删除的维表数据进行关联,即在数据关联过程中,将不会利用到该删除的维表数据。这样,对于待更新维表中所存储的该维表数据而言,可以不对待更新维表中所存储的该维表数据进行删除。
基于此,在获取上述目标同步日志时,该目标同步日志中可以不包括与上述删除维表数据的动作所对应的日志条目。
这样,在获取上述目标同步日志时,流计算系统可以首先从目标原始维表的同步日志中,读取所表征的维表数据的更新类型为指定类型的日志条目。进而,根据所读取到的各个所表征的维表数据的更新类型为指定类型的日志条目,流计算系统便可以生成包含所读取到的日志条目的同步日志,并将该生成的同步日志作为用于更新待更新维表的目标同步日志。
其中,流计算系统可以通过多种方式执行上述步骤S201,对此,本发明实施例不做具体限定。
可选的,一种实施例中,如图3所示,上述步骤S201可以包括如下步骤:
S301:针对目标原始维表的每一日志条目,从上一次确定目标同步日志时,所利用的同步日志中,确定与该日志条目具有相同条目标识的条目,作为该日志条目对应的参考条目;
S302:针对目标原始维表的每一日志条目,判断该日志条目和该日志条目对应的参考条目中,关于更新类型的更新次数是否发生变化,如果是,确定该日志条目维所表征的维表数据的更新类型为指定类型的日志条目。
目标原始维表的同步日志中,每一日志条目具有条目标识,并且,该日志条目记录了目标原始维表中某一数据对应的某一维度下的维表数据的更新类型和关于更新类型的更新次数。显然,在连续两次获取目标同步日志时,当目标原始维表的同步日志中某一日志条目中所记录的关于更新类型的更新次数未发生改变时,则说明在连续两次获取目标同步日志的时间间隔内,没有对目标原始维表中,该日志条目对应的维度数据进行更新。
基于此,针对目标原始维表的每一日志条目,流计算系统便可以从上一次确定目标同步日志时,所利用的同步日志中,确定关于该日志条目具有相同条目标识的条目,作为该日志条目对应的参考条目;进而,便可以进一步判断该日志条目和该日志条目对应的参考条目中,关于更新类型的更新次数是否发生变化。显然,如果未发生变化,则表明未对目标原始维表中,该日志条目对应的维度数据进行更新,进而,如果发生变化,则表明对目标原始维表中,该日志条目对应的维度数据进行了更新,且该更新的类型为指定类型,从而,可以确定该日志条目维所表征的维表数据的更新类型为指定类型的日志条目。
此外,可选的,一种具体方式中,目标原始维表可以存储到分布式开源数据库中,例如,Hbase(HadoopDatabase)。显然,在该具体实现方式中,目标原始维表是由多个分别存储到分布式开源数据库中的各个存储设备中的子维表构成的。
基于此,在本具体实现方式中,便可以首先确定构成目标原始维表的各个子维表,以及每个子维表中各个维表条目的关键字序列的序列范围,从而,根据各个序列范围,确定各个子维表的同步日志,从而,基于各个子维表的同步日志确定用于更新待更新维表的目标同步日志。
S102:针对目标同步日志中的每一日志条目,确定该日志条目对应的维表数据在更新前和更新后的存储位置的位置变化量,作为该标日志条目对应的位置变化量;
需要说明的是,在对目标原始维表中的维度数据进行更新时,该维度数据在预设数据库中的存储地址可以发生改变。
基于此,在获取到目标同步日志后,便可以确定该日志条目对应的维表数据在更新前和更新后的存储位置的位置变化量,作为该标日志条目对应的位置变化量。
其中,流计算系统可以通过多种方式执行上述步骤S102,对此,本发明实施例不做具体限定。
可选的,一种具体实现方式中,目标同步日志中的每一日志条目记录有初始偏移量和当前偏移量,初始偏移量表征该日志条目所对应维表数据在更新前的存储位置,当前偏移量表征该日志条目所对应的维表数据在更新后的存储位置;
则在本具体实现方式中,上述步骤S102可以包括如下步骤:
针对目标同步日志中的每一日志条目,计算该日志条目所记录的初始偏移量和当前偏移量的差异值,得到该日志条目对应的维表数据在更新前和更新后的存储位置的位置变化量。
在本具体实现方式中,针对目标同步日志中的每一日志条目,该日志条目可以记录有表征该日志条目所对应维表数据在更新前的存储位置的初始偏移量和表征该日志条目所对应的维表数据在更新后的存储位置的当前偏移量。进而,该初始偏移量和当前偏移量之间的差异便可以表征该日志条目对应的维表数据在更新前和更新后的存储位置的变化。也就是说,所计算得到的初始偏移量和当前偏移量的差异值即为该日志条目对应的维表数据在更新前和更新后的存储位置的位置变化量。
S103:针对目标同步日志中的每一日志条目,从该日志条目对应的位置变化量指示的存储区域内,读取维表数据,作为该目标日志条目对应的待利用维表数据;
在获取到目标同步日志中的每一日志条目对应的位置变化量后,由于该位置变化量可以指示预设数据库中的一存储区域,因此,针对目标同步日志中的每一日志条目,流计算系统便可以从该日志条目对应的位置变化量指示的存储区域内,读取维表数据。
显然,所读取到的维表数据即为更改后的维表数据,因此,便可以将该所读取到的维表数据作为该目标日志条目对应的待利用维表数据。
S104:针对目标同步日志中的每一日志条目,根据该日志条目对应的待利用维表数据,更新待更新维表中与该日志条目对应的维表数据条目;
其中,该日志条目对应的维表数据条目与该日志条目指代同一数据对象。
进而,在读取到目标同步日志中的每一日志条目对应的待利用维表数据后,流计算系统便可以根据该待利用维表数据,对待更新维表中与该日志条目所指代的数据对象为同一数据对象的维表数据条进行更新。
其中,流计算系统可以通过多种方式执行上述步骤S104,对此,本发明实施例不做具体限定。
可选的,一种具体实现方式中,如图4所示,上述步骤S104可以包括如下步骤:
S401:针对目标同步日志中的每一日志条目,在待更新维表中,确定所包括关键字序列与该目标日志条目所包括的关键字序列相同的维表数据条目;
其中,关键字序列用于标识数据对象;
S402:针对目标同步日志中的每一日志条目,在所确定的维表数据条目所包括的各个维度中,确定维度标识与该目标日志条目所包括的维度标识相同的目标维度;
S403:针对目标同步日志中的每一日志条目,将所确定的维表数据条目中的目标维度的维度数据更新为所读取到的该日志条目对应的维表数据。
目标同步日志中的每一日志条目包括关键字序列和维度标识,其中,该关键字序列标识了该日志条目对应的数据对象,而该维度标识对应了所更新的维度数据的维度。
因此,针对目标同步日志中的每一日志条目,流计算系统便可以在待更新维表中,确定所包括关键字序列与该目标日志条目所包括的关键字序列相同的维表数据条目;进而,便可以继续在所确定的维表数据条目所包括的各个维度中,确定维度标识与该目标日志条目所包括的维度标识相同的目标维度;接着,便可以将所确定的维表数据条目中的目标维度的维度数据更新为所读取到的该日志条目对应的维表数据。从而,实现对待更新维表中的维表数据的更新。
此外,可选的,需要说明的是,流计算系统所采集到的各个流计算数据可以是具有时效性的,因此,对于采集时间距离当前时刻较长的流计算数据,流计算系统可以删除这些流计算数据,从而,在进行数据关联时,便可以不对上述流计算数据与所缓存的待校正维表中的维表数据进行关联。
其中,该删除采集时间较长的数据所依据的删除依据可以称为水位线,其中,所采集到的流计算数据的时间戳小于水位线时,便可以删除该流计算数据。
并且,可选的,在执行上述步骤S104时,在更新待更新维表中与该日志条目对应的维表数据条目时,可以在该维表数据条目中添加所对应的维表数据的更新类型。
为了更好地理解本发明实施例提供的一种维表数据更新方法,以Flink流计算系统为例,利用图5(a)和图5(b)所示的原理图,对该维表数据更新方法进行说明。其中,Flink作为一种能够支持流处理和批处理两种功能的开源计算框架,被较多的技术人员用于构建流计算系统进行流计算处理。
具体的:Flink流计算系统所利用的目标原始维表保存在MySQL的数据库中,其中,该数据库可以是Hbase数据库,也可以是MongoDB数据库。
为了提高流计算过程中,流计算数据与目标原始维表中的维表数据的关联效率,可以将目标原始维表分成多个部分存储到数据库的不同分区中。如图5(a)所示,分成目标原始维表的每个部分可以分别存储到服务器分区0、服务器分区1、服务器分区2等各个服务器分区中。
其中,在对各个服务器分区中存储的目标原始维表中的维表数据进行更新时,各个服务器分区中便可以生成所存储的目标原始维表的同步日志。
这样,便可以基于预设的并行度进行维表感知,从而,在对Flink流计算系统中存储的待更新维表进行更新。其中,所谓并行度是指:同时访问存储有目标原始维表的服务器分区的数量。如图5(a)所示,并行度可以为1,即每次对一个服务器分区内所存储的目标原始维表进行访问。
具体的,首先进入初始化阶段,获取上一次访问时,从同步日志的每一日志条目中所读取到的偏移量,即获取上次的读取偏移量。进而,获取同步日志中每一日志条目当前的偏移量,并根据每一日志条目当前的偏移量判断所获取到的上次的读取偏移量是否为空,即所获取到的上次的读取偏移量是否变化。
如果判断发现偏移量全部为空,也就是说,存储在数据库中的目标原始维表中的维表数据未发生更新。在这种情况下,可以在各个服务器分区创建全量读取任务,从而,读取各个分区所存储的目标原始维表中的全部维表数据,并将所读取到的维表数据缓存到Flink流计算系统中。其中,如果Flink流计算系统中已缓存有目标原始维表中的维表数据,则也可以不创建全量读取任务,也就是说,此时不需要对Flink流计算系统中缓存的待更新维表进行更新操作。
相应的,如果判断存在偏移量不为空的日志条目,也就是说,获取到的上次的读取偏移量发生变化,即存储在数据库中的目标原始维表中的维表数据未发生更新。在这种情况下,便可以进入数据读取过程,即,如图5(a)所示,监控每个服务器分区增量,并将获取所监控到的维表数据增量。具体的:针对每条偏移量不为空的日志条目,根据偏移量的变化,即根据日志偏移量,便可以读取到更新后的维表数据,即待利用的维表数据。其中,图5(a)中的各个初始数据集即为Flink流计算系统中缓存的待更新维表,各个增量数据集即为所读取到的更新的维表数据。
其中,如图5(b)所示,判断存在偏移量不为空的日志条目的过程为:获取一日志条目中存储的当前偏移量,即日志文件最新偏移量,从上一次确定偏移量不为空的日志条目时,所利用的同步日志中,确定与该日志条目具有相同条目标识的条目,判断该日志条目和该参考条目中,关于更新类型的更新次数是否发生变化,即判断该日志条目和该参考条目中,维表数据的写入/更新次数是否发生变化。
如果发生变化,则可以确定该日志条目维为偏移量不为空的日志条目,从而可以从该日志条目所记录的初始偏移量(last_offset)到当前偏移量(current_offect)读取空间,以读取所更新的维表数据。
如果未发生变化,则可以确定该日志条目维为偏移量为空的日志条目,从而不需要读取维表数据,也不需要对Flink流计算系统中缓存的待更新维表中的相应维表数据进行更新,即不对维表数据进行变更。
接着,便可以进入到维表缓存过程,即在Flink流计算系统中缓存的待更新维表中,更新该偏移量不为空的日志条目对应的日志条目,从而,保证Flink流计算系统中缓存的待更新维表与存储在数据库中的目标原始维表的同步。
具体的,如图6所示,为Flink流计算系统在应用本发明实施例提供的一种维表数据更新方法的基础上的,流计算数据和维表数据的数据关联逻辑图。
具体的:使用Flink流计算系统中已有的ListState来保存多版本左右侧数据,并且,数据带有的关键字序列(key)被Flink流计算系统自动划分。上层仅需要处理ListState对应关联逻辑和清理逻辑。
其中,LState缓存结构为:ListState<Long,BaseRow>,分别对应左侧数据时间戳ts、左侧数据记录行row;RState缓存结构为:ListState<Long,Long,BaseRow>,分别对应右侧数据时间戳ts、当前记录被删除的时间、右侧数据记录行row。
当左侧实时采集到流计算数据时,先将读取到的实时数据存入Lstate缓存结构中,然后与右侧维表关联,并且,当关联到维表数据时,则对流计算数据进行补全,并将补全后的数据后发送至数据处理端,相应的,当未关联到维表数据时,则利用Null对流计算数据进行补全,并将补全后的数据后发送至数据处理端。
此外,左侧实时采集到流计算数据注册一个ts时间的清理时间(clean up time),进而,当水位线到达ts时,清理这条左侧实时采集到的流计算数据。
当右侧数据到来,对待更新维表进行更新时,存在如下多种情况:
第一种情况:如果是追加或者更新数据行(row的第一个字段为+):则查找已有RState中状态数据,并进行比对,完成RState追加或更新操作(同时更新ts和row)。
第二种情况:如果是删除数据行(row的第一个字段为-):查找已有RState中状态数据,并进行比对,将对应行delete字段标记为删除时间毫秒数,注册一个ts时间的cleanup time,当水位线(计算进度)到达ts时,清理这条维表侧数据。
第三种情况:右侧任何增加、修改、删除数据,需要找到左侧对应的key,遍历其水位线以内有效数据(例如5分钟内,20条),判断是否需要回撤其之前的Join记录,更新为最新的Join记录。
需要说明的是,考虑到左侧实时采集到的流计算数据存在延迟数据,则右侧该延迟数据所对应的维表数据不能立即删除,而是等到过了水位线,左侧实时采集到的流计算数据确定不再更新后,删除右侧该流计算数据所对应的维表数据。
相应于上述本发明实施例提供的一种维表数据更新方法,本发明实施例还提供了一种维表数据更新装置。其中,该维表数据更新装置应用于流计算系统。
图7为本发明实施例提供的一种维表数据更新装置的结构示意图,如图7所示,该装置可以包括如下模块:
日志确定模块710,用于基于目标原始维表的同步日志,确定用于更新待更新维表的目标同步日志;其中,所述目标原始维表为预设数据库中存储的,且与所述待更新维表对应的原始维表;
位置变化量确定模块720,用于针对所述目标同步日志中的每一日志条目,确定该日志条目对应的维表数据在更新前和更新后的存储位置的位置变化量,作为该标日志条目对应的位置变化量;
维表数据读取模块730,用于针对所述目标同步日志中的每一日志条目,从该日志条目对应的位置变化量指示的存储区域内,读取维表数据,作为该目标日志条目对应的待利用维表数据;
维表更新模块740,用于针对所述目标同步日志中的每一日志条目,根据该日志条目对应的待利用维表数据,更新所述待更新维表中与该日志条目对应的维表数据条目;其中,该日志条目对应的维表数据条目与该日志条目指代同一数据对象。
以上可见,应用本发明实施例提供的方案,可以利用预设数据库中存储的,且与流计算系统中所缓存的待更新维表对应的原始维表的同步日志,得到用于更新该所缓存的维表的目标同步日志。从而,便可以确定目标同步日志中的每一日志条目对应的位置变化量,进而,便可以从该位置变化量指示的存储区域中,读取维表数据,从而,得到该目标日志条目对应的待利用维表数据。扎样,便可以根据目标同步日志中的每一日志条目对应的待利用维表数据,更新待更新维表中与该日志条目对应的,且指代同一数据类型的维表数据条目。
基于此,应用本发明实施例提供的方案,在预设数据库中存储的,且与流计算系统中所缓存的待更新维表对应的原始维表中的维表数据发生变化时,计算系统可以感知该原始维表中各个维度下的维表数据的变化,从而,更新所缓存的待更新维表。这样,当将所采集到的数据流中的各个流计算数据与所缓存的待更新维表中的维表数据进行关联时,便可以保证关联到的维表数据为更新后的有效数据,进而,提高流计算的处理效率。
可选的,一种具体实现方式中,所述日志确定模块710包括:
第一日志确定子模块,用于获取目标原始维表的同步日志,作为用于更新所述待更新维表的目标同步日志;
可选的,一种具体实现方式中,所述日志确定模块710包括:
所述日志确定模块包括:日志条目读取子模块,用于从目标原始维表的同步日志中,读取所表征的维表数据的更新类型为指定类型的日志条目;日志生成子模块,用于生成包含所读取到的日志条目的同步日志,作为用于更新所述待更新维表的目标同步日志;其中,所述指定类型为:数据增加和数据改写中的任一类型。
可选的,一种具体实现方式中,所述日志条目读取子模块具体用于:
针对目标原始维表的每一日志条目,从上一次确定目标同步日志时,所利用的同步日志中,确定与该日志条目具有相同条目标识的条目,作为该日志条目对应的参考条目;
针对目标原始维表的每一日志条目,判断该日志条目和该日志条目对应的参考条目中,关于所述更新类型的更新次数是否发生变化,如果是,确定该日志条目维所表征的维表数据的更新类型为指定类型的日志条目。
可选的,一种具体实现方式中,所述目标同步日志中的每一日志条目记录有初始偏移量和当前偏移量,所述初始偏移量表征该日志条目所对应维表数据在更新前的存储位置,所述当前偏移量表征该日志条目所对应的维表数据在更新后的存储位置;所述位置变化量确定模块720具体用于:
针对所述目标同步日志中的每一日志条目,计算该日志条目所记录的初始偏移量和当前偏移量的差异值,得到该日志条目对应的维表数据在更新前和更新后的存储位置的位置变化量。
可选的,一种具体实现方式中,所述维表更新模块740具体用于:
针对所述目标同步日志中的每一日志条目,在所述待更新维表中,确定所包括关键字序列与该目标日志条目所包括的关键字序列相同的维表数据条目;所述关键字序列用于标识数据对象;
针对所述目标同步日志中的每一日志条目,在所确定的维表数据条目所包括的各个维度中,确定维度标识与该目标日志条目所包括的维度标识相同的目标维度;
针对所述目标同步日志中的每一日志条目,将所确定的维表数据条目中的目标维度的维度数据更新为所读取到的该日志条目对应的维表数据。
相应于上述本发明实施例提供的一种维表数据更新方法,本发明实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现上述本发明实施例提供的任一种维表数据更新方法。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一维表数据更新方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一维表数据更新方法的步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、电子设备实施例、计算机可读存储介质实施例和计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种维表数据更新方法,其特征在于,应用于流计算系统,所述方法包括:
基于目标原始维表的同步日志,确定用于更新待更新维表的目标同步日志;其中,所述目标原始维表为预设数据库中存储的,且与所述待更新维表对应的原始维表;
针对所述目标同步日志中的每一日志条目,确定该日志条目对应的维表数据在更新前和更新后的存储位置的位置变化量,作为该日志条目对应的位置变化量;
针对所述目标同步日志中的每一日志条目,从该日志条目对应的位置变化量指示的存储区域内,读取维表数据,作为该日志条目对应的待利用维表数据;
针对所述目标同步日志中的每一日志条目,根据该日志条目对应的待利用维表数据,更新所述待更新维表中与该日志条目对应的维表数据条目;其中,该日志条目对应的维表数据条目与该日志条目指代同一数据对象;
所述目标同步日志中的每一日志条目记录有初始偏移量和当前偏移量,所述初始偏移量表征该日志条目所对应维表数据在更新前的存储位置,所述当前偏移量表征该日志条目所对应的维表数据在更新后的存储位置;
所述针对所述目标同步日志中的每一日志条目,确定该日志条目对应的维表数据在更新前和更新后的存储位置的位置变化量的步骤,包括:
针对所述目标同步日志中的每一日志条目,计算该日志条目所记录的初始偏移量和当前偏移量的差异值,得到该日志条目对应的维表数据在更新前和更新后的存储位置的位置变化量。
2.根据权利要求1所述的方法,其特征在于,所述基于目标原始维表的同步日志,确定用于更新待更新维表的目标同步日志的步骤,包括:
获取目标原始维表的同步日志,作为用于更新所述待更新维表的目标同步日志;或者,
从目标原始维表的同步日志中,读取所表征的维表数据的更新类型为指定类型的日志条目;生成包含所读取到的日志条目的同步日志,作为用于更新所述待更新维表的目标同步日志;其中,所述指定类型为:数据增加和数据改写中的任一类型。
3.根据权利要求2所述的方法,其特征在于,所述从目标原始维表的同步日志中,读取所表征的维表数据的更新类型为指定类型的日志条目的步骤,包括:
针对目标原始维表的每一日志条目,从上一次确定目标同步日志时,所利用的同步日志中,确定与该日志条目具有相同条目标识的条目,作为该日志条目对应的参考条目;
针对目标原始维表的每一日志条目,判断该日志条目和该日志条目对应的参考条目中,关于所述更新类型的更新次数是否发生变化,如果是,确定该日志条目维所表征的维表数据的更新类型为指定类型的日志条目。
4.根据权利要求1所述的方法,其特征在于,所述针对所述目标同步日志中的每一日志条目,根据该日志条目对应的待利用维表数据,更新所述待更新维表中与该日志条目对应的维表数据条目的步骤,包括:
针对所述目标同步日志中的每一日志条目,在所述待更新维表中,确定所包括关键字序列与该目标日志条目所包括的关键字序列相同的维表数据条目;所述关键字序列用于标识数据对象;
针对所述目标同步日志中的每一日志条目,在所确定的维表数据条目所包括的各个维度中,确定维度标识与该目标日志条目所包括的维度标识相同的目标维度;
针对所述目标同步日志中的每一日志条目,将所确定的维表数据条目中的目标维度的维度数据更新为所读取到的该日志条目对应的维表数据。
5.一种维表数据更新装置,其特征在于,应用于流计算系统,所述装置包括:
日志确定模块,用于基于目标原始维表的同步日志,确定用于更新待更新维表的目标同步日志;其中,所述目标原始维表为预设数据库中存储的,且与所述待更新维表对应的原始维表;
位置变化量确定模块,用于针对所述目标同步日志中的每一日志条目,确定该日志条目对应的维表数据在更新前和更新后的存储位置的位置变化量,作为该日志条目对应的位置变化量;
维表数据读取模块,用于针对所述目标同步日志中的每一日志条目,从该日志条目对应的位置变化量指示的存储区域内,读取维表数据,作为该日志条目对应的待利用维表数据;
维表更新模块,用于针对所述目标同步日志中的每一日志条目,根据该日志条目对应的待利用维表数据,更新所述待更新维表中与该日志条目对应的维表数据条目;其中,该日志条目对应的维表数据条目与该日志条目指代同一数据对象;
所述目标同步日志中的每一日志条目记录有初始偏移量和当前偏移量,所述初始偏移量表征该日志条目所对应维表数据在更新前的存储位置,所述当前偏移量表征该日志条目所对应的维表数据在更新后的存储位置;所述位置变化量确定模块具体用于:
针对所述目标同步日志中的每一日志条目,计算该日志条目所记录的初始偏移量和当前偏移量的差异值,得到该日志条目对应的维表数据在更新前和更新后的存储位置的位置变化量。
6.根据权利要求5所述的装置,其特征在于,
所述日志确定模块包括:第一日志确定子模块,用于获取目标原始维表的同步日志,作为用于更新所述待更新维表的目标同步日志;
或者,
所述日志确定模块包括:日志条目读取子模块,用于从目标原始维表的同步日志中,读取所表征的维表数据的更新类型为指定类型的日志条目;日志生成子模块,用于生成包含所读取到的日志条目的同步日志,作为用于更新所述待更新维表的目标同步日志;其中,所述指定类型为:数据增加和数据改写中的任一类型。
7.根据权利要求6所述的装置,其特征在于,所述日志条目读取子模块具体用于:
针对目标原始维表的每一日志条目,从上一次确定目标同步日志时,所利用的同步日志中,确定与该日志条目具有相同条目标识的条目,作为该日志条目对应的参考条目;
针对目标原始维表的每一日志条目,判断该日志条目和该日志条目对应的参考条目中,关于所述更新类型的更新次数是否发生变化,如果是,确定该日志条目维所表征的维表数据的更新类型为指定类型的日志条目。
8.根据权利要求5所述的装置,其特征在于,所述维表更新模块具体用于:
针对所述目标同步日志中的每一日志条目,在所述待更新维表中,确定所包括关键字序列与该目标日志条目所包括的关键字序列相同的维表数据条目;所述关键字序列用于标识数据对象;
针对所述目标同步日志中的每一日志条目,在所确定的维表数据条目所包括的各个维度中,确定维度标识与该目标日志条目所包括的维度标识相同的目标维度;
针对所述目标同步日志中的每一日志条目,将所确定的维表数据条目中的目标维度的维度数据更新为所读取到的该日志条目对应的维表数据。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-4任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010477617.8A CN113742333B (zh) | 2020-05-29 | 2020-05-29 | 一种维表数据更新方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010477617.8A CN113742333B (zh) | 2020-05-29 | 2020-05-29 | 一种维表数据更新方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113742333A CN113742333A (zh) | 2021-12-03 |
CN113742333B true CN113742333B (zh) | 2023-08-04 |
Family
ID=78724835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010477617.8A Active CN113742333B (zh) | 2020-05-29 | 2020-05-29 | 一种维表数据更新方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113742333B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115328958A (zh) * | 2022-08-25 | 2022-11-11 | 中国电信股份有限公司 | 数据关联方法及装置、计算机存储介质、电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5553279A (en) * | 1993-10-08 | 1996-09-03 | International Business Machines Corporation | Lossless distribution of time series data in a relational data base network |
US6105113A (en) * | 1997-08-21 | 2000-08-15 | Silicon Graphics, Inc. | System and method for maintaining translation look-aside buffer (TLB) consistency |
CN108241744A (zh) * | 2018-01-04 | 2018-07-03 | 北京奇艺世纪科技有限公司 | 一种日志读取方法和装置 |
CN110177142A (zh) * | 2019-05-24 | 2019-08-27 | 无锡华云数据技术服务有限公司 | 一种数据同步方法、装置及电子设备 |
CN110232074A (zh) * | 2019-05-31 | 2019-09-13 | 新华三大数据技术有限公司 | 流数据与维表关联方法及流计算装置 |
CN111078719A (zh) * | 2019-12-31 | 2020-04-28 | 北京互金新融科技有限公司 | 数据的恢复方法及装置、存储介质和处理器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100862661B1 (ko) * | 2006-11-16 | 2008-10-10 | 삼성전자주식회사 | 지연된 로깅 방법 및 그 장치 |
-
2020
- 2020-05-29 CN CN202010477617.8A patent/CN113742333B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5553279A (en) * | 1993-10-08 | 1996-09-03 | International Business Machines Corporation | Lossless distribution of time series data in a relational data base network |
US6105113A (en) * | 1997-08-21 | 2000-08-15 | Silicon Graphics, Inc. | System and method for maintaining translation look-aside buffer (TLB) consistency |
CN108241744A (zh) * | 2018-01-04 | 2018-07-03 | 北京奇艺世纪科技有限公司 | 一种日志读取方法和装置 |
CN110177142A (zh) * | 2019-05-24 | 2019-08-27 | 无锡华云数据技术服务有限公司 | 一种数据同步方法、装置及电子设备 |
CN110232074A (zh) * | 2019-05-31 | 2019-09-13 | 新华三大数据技术有限公司 | 流数据与维表关联方法及流计算装置 |
CN111078719A (zh) * | 2019-12-31 | 2020-04-28 | 北京互金新融科技有限公司 | 数据的恢复方法及装置、存储介质和处理器 |
Non-Patent Citations (1)
Title |
---|
大数据分析与高速数据更新;陈世敏;;计算机研究与发展(02);333-342 * |
Also Published As
Publication number | Publication date |
---|---|
CN113742333A (zh) | 2021-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110515912A (zh) | 日志处理方法、装置、计算机装置及计算机可读存储介质 | |
US7376682B2 (en) | Time model | |
CN107748790B (zh) | 一种线上服务系统、数据加载方法、装置及设备 | |
CN114168608B (zh) | 一种用于更新知识图谱的数据处理系统 | |
CN113742333B (zh) | 一种维表数据更新方法、装置及电子设备 | |
CN103034650B (zh) | 一种数据处理系统和方法 | |
Cao et al. | Timon: A timestamped event database for efficient telemetry data processing and analytics | |
CN110990365A (zh) | 一种数据同步方法、装置、服务器及存储介质 | |
CN113360581A (zh) | 数据处理方法、装置及存储介质 | |
CN113760845A (zh) | 一种日志处理方法、系统、装置、客户端及存储介质 | |
CN111966747A (zh) | 数据同步方法、系统、终端设备及存储介质 | |
US11023449B2 (en) | Method and system to search logs that contain a massive number of entries | |
CN111523921B (zh) | 漏斗分析方法、分析设备、电子设备及可读存储介质 | |
CN110704773A (zh) | 基于频繁行为序列模式的异常行为检测方法及系统 | |
CN111078773B (zh) | 一种数据处理方法及装置 | |
Kumar et al. | Maintaining sliding-window neighborhood profiles in interaction networks | |
CN109657139B (zh) | 网络事件传播的模拟方法、装置及设备 | |
CN113220530B (zh) | 数据质量监控方法及平台 | |
CN111291127B (zh) | 一种数据同步方法、装置、服务器及存储介质 | |
CN115374109A (zh) | 数据访问方法、装置、计算设备和系统 | |
CN114297211A (zh) | 一种数据在线分析系统、方法、设备及存储介质 | |
CN110781079B (zh) | 数据处理流程调试方法、装置及电子设备 | |
CN113157716A (zh) | 一种数据处理方法、装置、设备及介质 | |
CN113535781A (zh) | 一种时序库的数据查询方法、装置、设备及存储介质 | |
CN112965994B (zh) | 一种Flink框架的顺序写方法、装置及电子设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |