CN116701426B - 数据处理方法、电子设备及存储介质 - Google Patents

数据处理方法、电子设备及存储介质 Download PDF

Info

Publication number
CN116701426B
CN116701426B CN202310983572.5A CN202310983572A CN116701426B CN 116701426 B CN116701426 B CN 116701426B CN 202310983572 A CN202310983572 A CN 202310983572A CN 116701426 B CN116701426 B CN 116701426B
Authority
CN
China
Prior art keywords
log
log file
data
file
electronic device
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
Application number
CN202310983572.5A
Other languages
English (en)
Other versions
CN116701426A (zh
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.)
Honor Device Co Ltd
Original Assignee
Honor Device 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 Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202310983572.5A priority Critical patent/CN116701426B/zh
Publication of CN116701426A publication Critical patent/CN116701426A/zh
Application granted granted Critical
Publication of CN116701426B publication Critical patent/CN116701426B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例涉及信息技术领域,具体涉及一种数据处理方法、电子设备及存储介质。在该方法中,电子设备可以在获取到的日志文件中,确定内容缺失的日志文件。接下来,电子设备可以基于内容缺失的日志文件得到日志标志位。并在下次数据处理时,基于日志标志位获取日志文件。这样,在下次获取日志文件时,电子设备就可以再次获取到本次确定的内容缺失的日志文件。可以缓解在数据处理过程中的漏数现象,进而可以提升源端与目标端数据的一致性,从而减少目标端的数据失真的问题。

Description

数据处理方法、电子设备及存储介质
技术领域
本申请实施例涉及信息技术领域,具体涉及一种数据处理方法、电子设备及存储介质。
背景技术
数据集成,是指将数据在逻辑上或物理上进行集中;如,通过源端数据库的日志文件,将源端数据库中的数据集成到目标端数据库。
在从源端数据库获取日志文件时,存在获取到内容缺失的日志文件的情况,这会导致这些内容缺失的日志文件中的日志数据,未集成到目标端数据库,也就是产生漏数现象,会造成源端数据库与目标端数据库不一致,产生目标端的数据失真问题。
发明内容
本申请实施例提供一种数据处理方法、电子设备及存储介质,可以缓解在数据集成过程中的漏数现象,进而可以提升源端与目标端数据的一致性,从而减少目标端的数据失真的问题。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,本申请提供了一种数据处理方法,该方法可以应用于数据存储系统中的电子设备。其中,电子设备可以是例如,个人计算机、笔记本电脑等等,具有数据传输及处理能力的电子设备;该数据存储系统包括源端数据库和目标端数据库。该方法包括:电子设备根据第一标识范围从源端数据库获取日志文件,该第一标识范围用于指示电子设备待获取的日志文件的日志数据标识的范围;获取到的日志文件用于对目标端数据库进行数据操作。接下来,若电子设备从获取到的日志文件中确定存在至少一个遗漏日志文件,则电子设备基于至少一个遗漏日志文件的起点日志数据标识和第一标识范围得到日志标志位。上述遗漏日志文件是包括的日志数据发生遗漏的日志文件。然后,电子设备根据上述日志标志位确定第二标识范围,并根据第二标识范围从所述源端数据库获取日志文件。其中,遗漏日志文件的起点日志数据标识是,该遗漏日志文件包括的第一条日志数据的日志数据标识。
在上述方法中,电子设备通过从第一次获取到的日志文件(也就是,使用第一标识范围获取到的日志文件)中确定遗漏日志文件,并根据该遗漏日志文件得到日志标志位。并根据标志位得到第二标识范围,根据第二标识范围从源端数据库获取日志文件(也就是,第二次从源端数据库获取日志文件)。这样,在第一次获取到的日志文件中的遗漏日志文件,就可以通过日志标志位和第二标识范围在第二次从源端数据库获取到;缓解在数据集成过程中的漏数现象,可以提升源端与目标端数据的一致性,从而减少目标端的数据失真问题。
在第一方面的一种可能的设计中,上述电子设备基于至少一个遗漏日志文件的起点日志数据标识和第一标识范围得到日志标志位,可以包括:在电子设备从根据第一标识范围获取到的日志文件中确定存在一个遗漏日志文件的情况下,电子设备将上述一个遗漏日志文件的起点日志数据标识和第一标识范围的范围起点中,(数值)最大的日志数据标识作为日志标志位。或者,在电子设备从根据第一标识范围获取到的日志文件中确定存在至少两个遗漏日志文件的情况下,电子设备在至少两个遗漏日志文件中确定目标遗漏日志文件;将目标遗漏日志文件的起点日志数据标识和第一标识范围的范围起点中,(数值)最大的日志数据标识作为日志标志位;其中,目标遗漏日志文件是至少两个遗漏日志文件中起点日志数据标识最小的遗漏日志文件,目标遗漏日志文件的起点日志数据标识是该目标遗漏日志文件包括的第一条日志数据的日志数据标识。
可以理解的,日志标志位与第二标识范围的范围起点正相关;以及日志数据标识会和日志数据的生成时间相关。也就是说,日志标识位越小,第二标识范围的范围起点也会越小;电子设备使用第二标识范围从源端数据库获取到的日志文件也会越多,以及电子设备获取到的日志文件中日志数据的生成时间也会越早,与电子设备的当前时间也会相差越多。可见,日志标志位越小,电子设备在通过第二标识范围获取日志文件,进行数据集成的实时性也就越低。在这种设计中,电子设备通过尽量将日志数据标识位设置得大,可以使得电子设备既可以在第二次从源端获取日志文件时,获取到电子设备在第一次从源端数据库获取日志文件时确定的遗漏日志文件,又可以使电子设备获取的日志文件数量比较少,还可以在一定程度上控制从源端数据库获取日志文件的时效性。这样,可以既缓解在数据集成时的漏数问题,又可以提高电子设备进行数据集成的实时性。
在第一方面的另一种可能的设计中,上述电子设备从获取到的日志文件中确定存在至少一个遗漏日志文件,可以包括:从获取到的日志文件中读取日志数据,若存在读取不到日志数据的日志文件,则确定存在至少一个遗漏日志文件。
在第一方面的另一种可能的设计中,上述电子设备从获取到的日志文件中确定存在至少一个遗漏日志文件,还可以包括:从基于第一标识范围获取到的日志文件中读取日志数据,将读取不到日志数据的日志文件,作为遗漏日志文件。
在第一方面的又一种可能的设计中,上述电子设备根据第一标识范围从源端数据库获取日志文件,可以包括:若电子设备未获取到与第一标识范围对应的每个日志文件,则电子设备重新根据第一标识范围获取日志文件,直至获取到与第一标识范围对应的每个日志文件。之后,电子设备基于获取到的与所述第一标识范围对应的每个日志文件,对目标端数据库进行数据操作。
可以理解的,考虑到在电子设备在根据第一标识范围从源端数据库获取日志文件的过程中,电子设备可能获取不到与第一标识范围对应的每个日志文件。基于此,在这种设计中,电子设备可以判断是否获取到与第一标识范围对应的每个日志文件,如未获取到则重新从源端数据库获取日志文件。直至电子设备获取到了与第一标识范围对应的每个日志文件。这样可以缓解,因为电子设备获取不到与第一标识范围对应的每个日志文件,而在电子设备的后续数据处理过程中导致的漏数现象。可以进一步地提升源端与目标端数据的一致性,从而缓解目标端的数据失真问题。
在第一方面的又一种可能的设计中,上述电子设备未获取到的且与所述第一标识范围对应的日志文件包括:切换日志文件;切换日志文件可以理解位源端数据库正在进行归档操作的日志文件。
在第一方面的另一种可能的设计中,上述电子设备根据第一标识范围从源端数据库获取日志文件,包括:若未获取到与第一标识范围对应的每个日志文件,则重新根据第一标识范围获取日志文件;直至根据第一标识范围获取日志文件的获取次数大于或者等于预设的次数阈值(如,5次、10次)。接下来,电子设备根据最后一次获取到的日志文件对目标端数据库进行数据操作。
可以理解的,考虑到如果源端数据库频繁地产生切换日志文件,电子设备就会重复地从源端获取日志文件,电子设备没有执行后续数据集成步骤,源端数据库中的数据到目标端数据库的时延会比较长,这会影响数据集成的实时性。基于此,在这种设计中,在电子设备从源端数据库获取日志文件的获取次数过多时,电子设备不会再次从源端数据库获取日志文件,直接基于最后一次获取到的日志文件对目标端数据库进行数据操作,这样可以使得源端数据库生成的日志文件可以及时的集成至目标端数据库,可以减少源端数据库的日志文件集成到目标端数据库的时延,可以提升电子设备进行数据集成的实时性。
在第一方面的又一种可能的设计中,上述日志文件还可以包括日志文件编号,上述方法还包括:电子设备确定缺失日志文件的日志文件编号,该缺失日志文件是未获取到的与第一标识范围对应的日志文件。接下来,电子设备根据缺失日志文件的日志文件编号,得到上述缺失日志文件的起点日志数据标识或终点日志数据标识。然后,电子设备根据缺失日志文件的起点日志数据标识或终点日志数据标识,从源端数据库获取到该缺失日志文件;之后,电子设备可以基于该缺失日志文件对目标端数据库进行数据操作。其中,缺失日志文件的起点日志数据标识是该缺失日志文件包括的第一条日志数据的日志数据标识;缺失日志文件的终点日志数据标识是该缺失日志文件包括的最后一条日志数据的日志数据标识。
在这种实现方式中,电子设备可以通过缺失日志文件的起点日志数据标识和终点日志数据标识,获取到上述缺失日志文件。并在后续,将该缺失日志文件中的日志数据集成至目标端数据库,这样,可以进一步地缓解数据集成时的漏数问题,提高源端数据库与目标端数据库的数据一致性,缓解目标端的数据失真问题。
在第一方面的另一种可能的设计中,上述日志文件包括:在线日志文件和归档日志文件。以及,上述电子设备根据第一标识范围从源端数据库获取日志文件包括:在日志文件是在线日志文件的情况下,电子设备获取在线日志文件的起点日志数据标识小于或等于第一标识范围的范围终点的在线日志文件。在日志文件是归档日志文件的情况下,电子设备获取起点日志数据标识小于或等于第一标识范围的范围终点,且大于或等于第一标识范围的范围起点的归档日志文件;或者,获取终点日志数据标识小于或等于第一标识范围的范围终点,且大于或等于第一标识范围的范围起点的归档日志文件。其中,在线日志文件的起点日志数据标识是该在线日志文件包括的第一条日志数据的日志数据标识,归档日志文件的起点日志数据标识是该归档日志文件包括的第一条日志数据的日志数据标识,归档日志文件的终点日志数据标识是该归档日志文件包括的最后一条日志数据的日志数据标识。
在这种设计中,电子设备在获取在线日志文件时,通过获取起点日志数据标识小于等于第一标识范围的范围终点的在线日志文件,可以更加全面、完整地获取在线日志文件,进而可以减少电子设备上出现的漏数现象。以及,电子设备在获取归档日志文件时,通过获取日志数据标识落入到上述第一标识范围中的归档日志文件,可以更加全面、完整地获取在线日志文件,进而可以减少电子设备上出现的漏数现象。
在第一方面的又一种可能的设计中,上述电子设备基于获取到的日志文件,对目标端数据库进行数据操作,可以包括:电子设备对获取到的所述日志文件进行解析,并基于解析后的日志文件对目标端数据库进行数据操作。其中,数据操作包括增加数据操作、删除数据操作或修改数据操作。
在第一方面的另一种可能的设计中,上述方法还包括:若电子设备从获取到的日志文件中确定不存在遗漏日志文件,则电子设备基于第一标识范围的范围终点得到日志标志位。
在第一方面的又一种可能的设计中,上述电子设备根据日志标志位确定第二标识范围,可以包括:电子设备将日志标志位作为第二标识范围的范围起点,并通过动态步长计算得到第二标识范围的范围终端。其中,动态步长与源端数据库中最大日志数据标识相关。
在这种设计中,通过设置动态步长,电子设备可以根据源端生成日志数据的速度来动态地调整电子设备从源端获取日志文件的速度。当源端生成日志数据的速度快时,电子设备使用比较多的资源加载比较多的日志数据,以使得电子设备以较快的速度从源端加载日志文件;当源端生成日志数据的速度慢时,电子设备使用比较少的资源加载比较少的日志数据,以使得电子设备以比较慢的速度从源端加载日志文件。这样,可以更加合理的利用电子设备以及源端的资源(如,处理器资源、输入输出接口资源等等),以及可以提升数据集成的实时性。
第二方面,本申请提供一种电子设备,该电子设备包括:存储器、一个或多个处理器、蓝牙模块;存储器与处理器耦合;其中,存储器中存储有计算机程序代码,计算机程序代码包括计算机指令;当计算机指令被处理器执行时,使得电子设备执行上述第一方面及第一方面任一种可能的设计所提供的方法。
第三方面,本申请提供一种数据存储系统,该数据存储系统包括:源端数据库、目标端数据库。其中,该数据存储系统还包括第二方面所提供的电子设备。
第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当计算机指令在电子设备上运行时,使得电子设备执行上述第一方面及第一方面任一种可能的设计所提供的方法。
第五方面,本申请提供一种包含指令的计算机程序产品,当该计算机程序产品在电子设备上运行时,使得电子设备可以执行上述第一方面及第一方面任一种可能的设计所提供的方法。
其中,第二方面至第五方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种数据系统结构示意图;
图2为本申请实施例提供的一种电子设备的结构示意图;
图3为本申请实施例提供的数据处理方法的一例流程示意图;
图4为本申请实施例提供的数据存储节点存储日志文件的结构示意图;
图5为本申请实施例提供的数据处理方法的又一例流程示意图;
图6为本申请实施例提供的数据处理方法的另一例流程示意图;
图7为本申请实施例提供的电子设备获取日志文件的流程示意图;
图8为本申请实施例提供的数据处理方法的一例原理示意图;
图9为本申请实施例提供的数据处理方法的另一例原理示意图;
图10为本申请实施例提供的数据处理方法的又一例原理示意图;
图11为本申请实施例提供的数据处理方法的另一例原理示意图;
图12为本申请实施例提供的数据处理方法的又一例原理示意图;
图13为本申请实施例提供的数据处理方法的另一例流程示意图;
图14为本申请实施例提供的数据处理方法的另一例原理示意图;
图15为本申请实施例提供的一种数据处理装置的结构示意图;
图16为本申请实施例提供的另一种电子设备的结构示意图。
具体实施方式
下面,在介绍本申请实施例之前,先对本申请实施例涉及到的相关术语进行介绍。
数据库是指按照数据结构来组织、存储和管理数据的仓库。数据库是一个长期存储在电子设备内的、有组织的、可共享的、大量数据的集合。数据库中的文件可以按照文件的内容分为:数据文件、日志文件和控制文件。其中,数据文件是指该文件的内容是数据库中需要存储的数据;如,顾客的订单,商品的数量、原材料的库存、商品的浏览量等等。控制文件是指该文件的内容是对数据库中的数据进行的数据操作;如,对数据库中的数据进行查询操作、对数据库中的数据进行增加操作、对数据库中的数据进行删除操作等等。日志文件是指该文件的内容记录了数据库的变化;如,在XX时刻对数据库中的AA数据进行了增加操作、在YY时刻对数据库中的BB数据进行了删除操作等等。为了便于理解,下文将日志文件中的内容称为日志数据。
数据库的数据存储节点在生成日志数据时,会按照该日志数据的生成时间顺序,生成该日志数据的标识(下文可简称为日志数据标识);如,日志点位(system changenumber ,scn)或日志标号(binlog)。之后,数据库会将具有日志数据标识(如具有scn)的日志数据加入到日志文件中。也就是说,日志数据标识可以用于表征对数据库的数据操作的发生顺序。可以理解的,日志数据的scn会和该日志数据的生成时间正相关;日志数据的scn越大,该日志数据的生成时间越晚;日志数据的scn越小,该日志数据的生成时间越早。同样的,日志数据的binlog会和该日志数据的生成时间正相关;日志数据的binlog越大,该日志数据的生成时间越晚;日志数据的binlog越小,该日志数据的生成时间越早。
以及,数据库的数据存储节点,也会基于该数据存储节点中日志文件的数量,生成日志文件的日志文件标识;如,日志文件编号(redolog)。
在一些数据库中,为了避免单个日志文件过大;数据库通常会将单个日志文件分为多个,即在正在写入的日志文件(在线日志文件)的大小达到预设大小时,将在线日志文件变成归档日志文件,之后,将未写入的日志内容滚动写入至下一个日志文件(准备就绪日志文件)中。以及在一些多数据存储节点的数据库中,如果单条日志数据比较大,数据库可以将单条日志数据分散为多条日志数据;之后,分散到多个数据存储节点上进行存储。这样,可以避免单机资源瓶颈。
需要指出的是,对于在线日志文件,由于该文件还正在被写入,没有被写完,因此该文件会具有日志文件编号,以及起点日志数据标识。其中,起点日志数据标识,是该日志文件上写入的第一条日志数据的日志数据标识。对于归档日志文件,由于该文件已经被写入完成,因此该文件会具有日志文件编号,以及起点日志数据标识,和终点日志数据标识。其中,终点日志数据标识,是该日志文件上写入的最后一条日志数据的日志数据标识。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。并且,在本申请实施例的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
数据集成,是将数据在逻辑上或物理上进行集中,可以理解为将数据库中多个数据存储节点的数据汇聚到一起。例如,电子设备将来自来源端数据库设备或源端数据库设备集群(下文可简称为源端)的数据集成到目标端数据库设备或目标端数据库设备集群(下文可简称为目标端)中。在数据集成的过程中,会有多种因素导致遗漏源端的数据,未将源端的数据集成至目标端的情况,也就是会产生漏数现象。这会造成源端数据与目标端数据的不一致,产生目标端的数据失真问题。
例如,在实时数据分析业务中,数据失真问题会导致无法及时地捕捉到准确的数据变化,造成数据分析业务的数据变化的延迟,无法针对数据的变化进行及时的处理;对于一些对数据变化的准确性要求高的业务,如金融数据分析业务,人流量分析业务,订单处理业务等等,数据失真会造成很大的业务风险。又例如,在离线数据分析业务中,数据失真问题会导致,后续的数据计算产生比较大的误差,会浪费计算资源。
在一些方案中,电子设备会从源端加载日志文件;之后,电子设备基于上述日志文件中的日志数据,对目标端的数据进行数据操作(如,增加数据、删除数据、修改数据)。接下来,电子设备基于目标端的数据操作结果(如,最后一次数据操作对应的日志数据标识),确定下一次电子设备需要加载的数据范围。这样,电子设备循环地从源端加载日志文件,之后基于日志文件中的日志数据,对目标端进行数据操作,就可以将源端的数据集成到目标端。然而,在这种方案中,并没有考虑到获取到内容缺失的日志文件的情况,基于这种方案进行数据集成,会出现漏数现象,会造成源端与目标端数据不一致,产生目标端的数据失真问题。
有鉴于此,本申请实施例提供一种数据处理方法,在该方法中,电子设备可以在获取到的日志文件中,确定内容缺失的日志文件。接下来,电子设备可以基于内容缺失的日志文件得到日志标志位。并在下一次数据集成时,基于日志标志位获取日志文件。这样,在下一次获取日志文件时,电子设备就可以再次获取到本次确定的内容缺失的日志文件。可以缓解在数据集成过程中的漏数现象,进而可以提升源端与目标端数据的一致性,从而减少目标端的数据失真的问题。
本申请实施例提供的数据处理方法可以应用于数据存储系统中。示例性的,参见图1,图1示出的一种数据存储系统结构示意图。其中,可按照数据的流动方向,将该数据存储系统中的数据存储节点划分为,源端数据库设备集群(简称为源端200)和目标端数据库设备集群(简称为目标端300)。在源端200和目标端300之间可以通过一个或多个电子设备100(图中仅示出一个),控制在源端200和目标端300之间的数据集成,或者对源端200或目标端300中的数据进行操作(如,增加数据、删除数据、修改数据等等)。以及,源端200可以与一个或多个数据操作设备(图中仅示出了一个)建立通信连接。该数据操作设备用于对源端200中的数据进行数据操作(如,增加数据、删除数据、修改数据等等)。同样的,目标端300也可以与一个或多个数据操作设备建立通信连接,该数据操作设备用于对目标端300中的数据进行数据操作。其中,源端200可以包括多个数据存储节点设备(下文可简称为节点);以及,目标端300可以包括多个数据存储节点。源端200或目标端300的节点中,存储有日志文件和数据文件。也就是说,节点既会存储日志文件也会存储数据文件。
在一些实施例中,图1所示的数据存储系统架构,其架构可以是多节点集群架构(例如,Oracle数据库多节点集群架构)。在多节点集群架构中,每个节点会将该节点的日志内容滚动写入到日志文件中。其中,日志内容用于表示该数据库中的数据发生了改变。将日志内容写入到日志文件中,可以对数据库中库表数据发生的改变进行记录。为了避免单个日志文件过大,通常会将单个日志文件分为多个,即在当前日志文件的大小达到预设大小(如,1GB、3GB或5GB等等)时,将未写入的日志内容滚动写入至下一个日志文件中,同时多节点的架构,可以将过大的数据和日志内容分散到多个节点上存储,可以避免单节点资源瓶颈。
示例性的,在图1中,数据操作设备向源端200增加数据。之后,源端200将数据操作设备增加的数据分散给源端的多个数据存储节点(如,节点1或其他节点)进行存储。以及,源端200可以生成针对数据操作设备此次增加数据操作的日志文件,该日志文件可以存储于源端200的任一个节点上。接下来,电子设备100可以将源端200的多个数据存储节点中的数据集成到目标端300。如果目标端300具有多个数据存储节点,目标端300也会进行分布式存储。
可以理解的,图1中所示出的数据库存储系统的结构并不构对数据库系统的任何限定,在实际使用中,数据库系统可以包括比图示中更多或更少的部件,或者组合某些部件,或者不同的部件布置。相关技术人员可以根据实际使用情况对数据库系统的结构进行设计。
本申请实施例提供的数据存储节点设备可以是一些具有数据存储及处理能力的设备;例如,服务器(如,异构服务器、云服务器等等)、个人计算机、笔记本电脑、服务器、网络附属存储器(network attached storage,NAS)、手机、车载电脑等等。本申请实施例提供的电子设备,可以是一些具有数据传输及处理能力的电子设备;例如,个人计算机(personal computer,PC)、笔记本电脑、平板电脑、个人数据助理(personal digitalassistant,PDA)、超级移动个人计算机(ultra mobile personal computer,UMPC)、服务器、车载电脑等等。本申请实施例对数据存储节点设备和电子设备具体的产品形态不做任何限制。在一些实施例中,上述电子设备可以是运行操作系统、安装应用程序的电子设备。例如,电子设备运行的操作系统可以是Android™系统、Windows™系统,Linux™等等。
图2示出了电子设备100的硬件结构示意图。
如图2所示,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,电源管理模块141,天线,无线通信模块150,显示屏140等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
无线通信模块150可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。
显示屏140用于显示图像,视频等。显示屏140包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。例如,在本申请实施例中,处理器110可以通过执行存储在内部存储器121中的指令,内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100提供电能,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
示例性的,电子设备可以通过天线、无线通信模块150从源端数据库获取日志文件;之后,电子设备可以通过内部存储器121存储获取的日志文件。或者,电子设备也可以通过USB接口130从源端数据库获取日志文件。接下来,电子设备可以通过处理器100解析获取到的日志文件。然后,电子设备可以通过天线、无线通信模块150将解析后的日志文件发送给目标端数据库。或者,电子设备也可以通过USB接口130从源端数据库获取日志文件。这样,源端数据库的数据就可以集成到目标端数据库。
又示例的,电子设备的处理器100可以通过存储在内部存储器121中的指令,从获取到的日志文件中,确定遗漏日志文件。接下来,电子设备可以基于该遗漏日志文件的日志数据标识确定电子设备在下一次获取日志文件时需要获取的日志文件;这样,电子设备在下一次获取日志文件时,就可以获取到本次获取日志文件时遗漏的日志文件。可以缓解在数据集成过程中的漏数现象,进而可以提升源端与目标端数据的一致性,从而减少目标端的数据失真的问题。
下面,将以图1所示的数据系统中,电子设备100是PC,源端200包括至少两个数据存储节点(如,节点1、节点2)为例,对本申请实施例提供的数据处理方法进行介绍。
参见图3,本申请提供的数据处理方法可以包括步骤S101-S103。
在一些实施例中,在步骤S101之前,本申请提供的数据处理方法还可以包括步骤S100。
S100.源端生成日志文件。
在一些实施例中,源端可以接收与源端建立了通信连接的数据操作设备对源端的数据操作(如,增加数据、删除数据、修改数据等等)。之后,由于数据操作设备对源端的数据操作会造成源端的数据文件的变化,因此,源端会生成日志数据,并将日志数据写入到源端的任一个数据存储节点的在线日志文件中。
示例性的,假设数据操作设备对节点1中的数据Z进行了删除操作,节点1的数据发生变化。此时,源端会生成日志数据,该日志数据记录了,对数据Z进行了删除操作。之后,源端会将该日志数据,随机地写入到源端任一个节点(如,节点1,或除节点1外的其他节点)的在线日志文件中。
在一些实施例中,源端也可以生成日志文件组。如,源端在生成日志文件时,源端的数据存储节点会对日志文件进行备份,生成日志文件的备份文件;并将日志文件和该日志文件的备份文件打包为一个文件组(日志文件组)。这样,可以提高日志文件的可靠性。
在一些实施例中,源端的数据存储节点也可以采用滚动文件机制,初始化多个日志文件(日志文件组),这样可以提升源端的数据存储节点中存储日志文件的实时性。
示例性的,参见图4,节点1采用滚动文件机制,初始化了三个日志文件组(日志文件组1、日志文件组2、日志文件组3)。且每一个日志文件组包括一个日志文件和一个该日志文件的备份文件。假设,节点1生成了日志数据,节点1会将该日志数据写入日志文件组1的日志文件和备份日志文件中。如果,该日志文件组或该日志文件组中的日志文件,达到了预设的文件大小(例如,1吉字节(gigabyte,GB)、3GB),节点1会将该日志文件进行归档操作。之后生成归档日志文件。之后,节点1会将新生成的日志数据写入日志文件组2,并初始化一个新的日志文件组。可以理解的,由于日志文件组2是初始化完成的状态,因此在日志文件组1达到了预设的文件大小后,节点2就可以立即向日志文件组2写入日志数据,这样可以提升源端的数据存储节点中存储日志文件的实时性。以及,考虑到节点1的日志数据生成速度可能比较快,可能会快于节点1初始化日志文件组的速度。因此,节点1可以设置日志文件组3;并在日志文件组2达到预设的文件大小后,将日志数据写入日志文件组3中。这样,即使节点1上的日志数据生成数据比较快,快于节点1初始化日志文件组的速度。节点1中也可以具有已经初始化完成的日志文件组,供节点1及时地写入日志数据。这样可以进一步地提升数据存储节点存储日志文件的实时性。
可以理解的,由于日志文件组1中的日志文件,是节点1当前正写入的日志文件,因此该日志文件是在线日志文件,归档日志文件中最大的日志文件编号是139,该文件的日志文件编号是140。之后,在该日志文件达到预设的文件大小后,节点1会对该日志文件进行归档操作,并将该日志文件放入到节点1中存储归档日志文件的相关位置(如,归档日志文件队列)。
示例性的,假设数据操作设备,对源端数据A进行了修改操作;之后,源端可以将该操作记录在节点1的日志文件A中。也就是说,该日志文件A的日志内容(日志数据)中会记录着,数据操作设备对源端数据A进行修改操作。
示例性的,假设数据操作设备,对源端数据B进行了删除操作;之后,源端可以将该操作记录在节点2的日志文件B中。也就是说,该日志文件B的日志内容(日志数据)中会记录着,数据操作设备对源端数据B进行删除操作。
示例性的,假设数据操作设备,对源端数据D进行了修改操作;之后,源端可以将该操作记录在节点1的日志文件A中。也就是说,该日志文件A的日志内容(日志数据)中会记录着,数据操作设备对源端数据A进行修改操作。
示例性的,假设数据操作设备,向源端增加了源端数据E;之后,源端可以将增加源端数据E的操作记录在节点2。此时,由于节点2的日志文件B的大小达到了预设大小(如,2Gb)。节点2会对日志文件B进行归档操作,以及节点2会新建日志文件C,并将增加源端数据E的操作记录在节点2的日志文件C中。也就是说,节点2的日志文件C的日志内容(日志数据)中会记录着,数据操作设备对源端数据E的增加操作。
S101.电子设备从源端获取日志文件。
在一些实施例中,电子设备可以通过日志数据标识范围,从源端获取日志数据标识在上述日志数据标识范围内的日志文件。可以理解的,日志数据标识范围,可以是scn范围,也可以是binlog范围。
在一些实施例中,电子设备从源端获取日志文件可以包括,电子设备从源端加载(load)日志文件。
示例性的,电子设备可以通过scn范围,从源端的每个数据存储节点中获取,scn在上述scn范围中的日志文件。
又示例性的,电子设备可以通过binlog范围,从源端的每个数据存储节点中获取,binlog在上述binlog范围中的日志文件。
可以理解的,日志数据标识的生成会有一定的规则,如按照日志数据的生成时间,顺序生成日志数据标识。也就是说,日志数据标识会是顺序增大的,日志数据标识越大,就会表示着该日志数据的生成时间越晚;可见,日志数据标识是与时间相关的。
可以理解的,日志数据标识范围,可以由范围起点和范围终点组成。这样,电子设备在从源端获取日志文件时就可以获取日志数据标识大于或等于范围起点,或小于或等于范围终点的日志文件。
示例性的,对于源端数据存储节点中的在线日志文件,如果该在线日志文件的起点日志数据标识,小于或等于范围终点,则电子设备可以获取该在线日志文件。
可以理解的,对于在线日志文件来讲,在线日志文件中的日志数据是会不断增加的。因此,在获取在线日志文件时,通过获取起点日志数据标识小于等于范围终点的在线日志文件,可以更加全面、完整地获取在线日志文件,进而可以减少电子设备上出现的漏数现象。
示例性的,对于源端数据存储节点中的归档日志文件,如果该归档日志文件的起点日志数据标识大于或等于范围起点,且小于或等于范围终点;或者,该归档日志文件的终点日志数据标识大于或等于范围起点,且小于或等于范围终点;则电子设备可以获取该归档日志文件。也就是说,电子设备会获取日志数据标识落入到上述日志数据标识范围中的归档日志文件。
可以理解的,电子设备从源端获取日志文件时,电子设备大多只会获取到完整的日志文件。基于此,在获取归档日志文件时,通过获取日志数据标识落入到上述日志数据标识范围中的归档日志文件,可以更加全面、完整地获取在线日志文件,进而可以减少电子设备上出现的漏数现象。
可以理解的,上述步骤S101,在首次数据集成场景和非首次数据集成场景下会略有不同。其中首次数据集成场景是指,电子设备在没有进行过数据集成,或者电子设备在一段时间之前没有进行或数据集成。
在首次数据集成场景下,上述日志数据标识范围,可以是电子设备的使用人员指定的。
在非首次数据集成场景下,上述日志数据标识范围,是基于历史日志标志位得到的,或者是该电子设备的使用人员指定的。其中,历史日志标志位可以理解为,电子设备在上一次执行数据集成时得到的日志标志位。
在一些实施例中,电子设备可以,通过历史日志标志位,来判断是否为首次数据集成场景。如电子设备可以获取到,历史日志标志位则电子设备确定处于非首次数据集成场景。如电子设备从该电子设备的存储器中搜索得不到历史日志标志位,则电子设备确定为处于首次数据集成场景。
下面,将以电子设备在首次数据集成场景下,对步骤S101进行介绍。
在首次数据集成场景下,由于电子设备在之前,或者在之前的一段时间,没有进行过数据集成;也就是说,电子设备获取不到历史日志标志位。基于此,电子设备可以获取该电子设备的使用人员指定的范围起点。之后,电子设备通过动态步长或预设步长(如,500、5000),得到范围终点。接下来,电子设备基于该范围起点和范围终点从源端获取日志文件。示例性的参见图5,上述步骤S101可以包括:步骤S101a1-S101a4。
S101a1.电子设备确定处于首次数据集成场景。
示例性的,若电子设备未获取到历史日志标志位,则电子设备确定处于首次数据集成场景。
S101a2.电子设备获取指定范围起点。
示例性的,电子设备可以获取电子设备的使用人员在电子设备上输入的范围起点。
S101a3.电子设备基于指定范围起点,通过动态步长,计算得到范围终点。
其中,动态步长是一个会根据当前源端的最大日志数据标识变化的步长。通过设置动态步长,可以根据源端生成日志数据的速度来动态地调整电子设备从源端加载(获取)日志文件的速度。当源端生成日志数据的速度快时,电子设备使用比较多的资源加载比较多的日志数据,以使得电子设备以较快的速度从源端加载日志文件;当源端生成日志数据的速度慢时,电子设备使用比较少的资源加载比较少的日志数据,以使得电子设备以比较慢的速度从源端加载日志文件。这样,可以更加合理的利用电子设备以及源端的资源(如,处理器资源、输入输出接口资源等等),以及可以提升数据集成的实时性。
示例性的,参见图6上述步骤S101a3可以包括:S101a31-S101a36。
其中,范围起点记为x 0,初始步长记为y 0,当前源端最大日志数据标识记为z 0
S101a31.电子设备计算日志数据标识x 1x 1=x 0+y 0。其中,y 0可以是预设值(如,500、1000、2000等等)。
S101a32.电子设备获取当前源端的最大日志数据标识z 0
示例性,电子设备可以获取当前源端多个节点的在线日志文件中的最大日志数据标识。并将,上述多个节点的在线日志文件中的最大日志数据标识中最大的日志数据标识,作为源端的最大日志数据标识z 0
S101a33.电子设备计算日志数据标识x 1和上述最大日志数据标识z 0的差值z 0-x 1
S101a34.电子设备判断差值z 0-x 1是否在预设范围k0(如,[-100,100]、[-500,500])内。若在预设范围内,则输出x 1作为范围终点;若不在预设范围内,则执行步骤S101a35。
S101a35.电子设备判断步长y 0是否在预设区间k1(如,[100,10000]、[300,5000]等等)内。若超出预设区间,则输出x 1作为范围终点;若未超出预设区间,则执行步骤S101a36。
S101a36.电子设备基于上述z 0-x 1调整步长y 0。之后,再次执行S101a31。直至输出范围终点。
例如,电子设备为步长y 0增加上述z 0-x 1,或者,为步长增加0.8(z 0 -x 1)、1.2(z 0 -x 1)等等。可以理解的,对于源端来讲,源端会持续生成日志数据标识。也就是说,在电子设备计算范围终点的过程中,源端会生成新的日志数据标识。因此,对步长根据上述差值z 0 -x 1进行动态调整,可以根据源端生成日志数据的情况,调整电子设备获取日志数据的速度,可以合理的利用电子设备以及源端的资源。
S101a4.电子设备基于范围起点和范围终点从源端获取日志文件。
在另一些实施例中,电子设备可以获取指定的范围起点。之后,电子设备获取源端的最大日志数据标识,并将该最大日志数据标识作为范围终点,从源端获取日志文件。其中,源端的最大日志数据标识是指,源端的多个数据存储节点的在线日志文件包括的日志数据中数值最大的日志数据标识。
在另一些实施例中,电子设备还可以比较上述差值z 0-x 1y 0的大小;若z 0-x 1y 0则增大y 0(如,增大10、100等等);之后,基于增大后的y 0计算范围终点,并在后续基于该范围终点从源端获取日志文件。若z 0-x 1y 0则基于x 1从源端获取日志文件。和/或,电子设备还可以比较x 1-z 0y 0的大小;若x 1-z 0y 0则减小y 0(如,减小10、100等等);之后,基于减小后的y 0计算范围终点,并在后续基于该范围终点从源端获取日志文件。若x 1-z 0y 0则基于x 1从源端获取日志文件。
在一些实施例中,上述步骤S101还可以包括:步骤S101a5。
S101a5.若电子设备确定源端产生第一类遗漏日志文件,则电子设备重新执行步骤S101a4;若电子设备未确定源端产生第一类遗漏日志文件,则电子设备执行后续步骤。
在一些实施例中,若电子设备确定源端产生第一类遗漏日志文件,则电子设备可以执行步骤S101a4;或者,电子设备还可以执行步骤S101a4,和步骤S101a4之前的任意步骤(如S101a1-S101a4,S101a2-S101a4,S101a3-S101a4)。
其中,第一类遗漏日志文件,可以理解为,不能被电子设备获取到的日志文件。例如,正在进行归档操作的日志文件;对于源端的数据存储节点来讲,数据存储节点会在在线日志文件达到预设的大小时,对在线日志文件进行归档操作,由在线日志文件变成归档日志文件;也就是源端的数据存储节点会对日志文件进行切换。如果此时电子设备从源端获取日志文件,电子设备无法获取到正在进行归档操作的日志文件,仅可以获取到当前的在线日志文件和归档日志文件。之后,如果电子设备直接基于获取到的日志文件进行后续的数据集成步骤,那么此次数据集成就会产生漏数现象,会漏掉了正在进行归档操作的日志文件。
在一些实施例中,电子设备可以通过判断在电子设备获取日志文件的过程(如,上述步骤S101a4)中源端是否发生文件切换,来确定源端是否产生第一类遗漏日志文件。若源端发生了文件切换,则电子设备确定源端产生了第一类遗漏日志文件;若源端未发生文件切换,则电子设备确定源端未产生第一类遗漏日志文件。
基于此,电子设备可以确定源端是否发生文件切换,如发生文件切换则重新从源端获取日志文件。这样,源端发生了文件切换的日志文件,就可以在发生了文件切换(也就是,变成了归档文件)后,以归档日志文件的形态被电子设备获取。这样电子设备在执行后续数据集成步骤时,就不会遗漏这个发生了文件切换的日志文件。可以缓解在数据集成过程中的漏数问题,进而可以提升源端与目标端数据的一致性,从而减少目标端的数据失真问题。
示例性的,电子设备可以通过判断同一个数据存储节点的日志文件的日志文件编号是否连续,来判断源端是否发生日志文件切换。如来自同一个数据存储节点的日志文件的文件编号连续,则未发生日志文件切换;如来自同一个数据存储节点的日志文件的文件编号不连续,则发生日志文件切换。
例如,参见图7,节点1的在线日志文件的日志文件编号是140,归档日志文件的日志文件编号是139-134。如果日志文件编号为140的日志文件达到了预设大小,节点1会将日志文件编号为140的日志文件进行归档操作;之后,在日志文件组2中的日志文件写入日志数据,并给日志文件组2的日志文件设置编号141。此时,如果电子设备从节点1获取日志文件,电子设备就会获取不到日志文件编号为140的日志文件,电子设备可以获取到的日志文件的日志编号为:141、139、138、137、136、135、134。接下来,电子设备检测到获取的日志文件的日志编号不连续,电子设备确定节点1发生了日志文件切换,电子设备会再次从源端获取日志文件。
示例性的,电子设备可以通过源端发送的文件切换指示,来确定源端是否产生了第一类遗漏日志文件。例如,源端的数据存储节点,可以在对日志进行归档操作(也就是在发生文件切换)之前,生成并向电子设备发送文件切换指示。若电子设备接收到文件切换指示,则确定源端产生第一类遗漏日志文件;若未接收到该文件切换指示,则确定源端未产生第一类遗漏日志文件。
作为一种可能的实施方式,上述步骤S101中,电子设备还可以执行循环获取过程,以得到全部与上述日志数据标识范围对应的所述源端日志文件。
其中,循环获取过程包括:若获取不到全部与上述日志数据标识范围对应的所述源端日志文件,则电子设备重新获取与上述日志数据标识范围对应的源端日志文件,直至获取到全部与上述日志数据标识范围对应的源端日志文件。
作为另一种可能的实施方式,若电子设备执行上述循环获取过程的次数等于预设的次数阈值(如,5次,10次),则根据电子设备最后一次循环获取过程获取到的源端日志文件的日志文件编号,确定最后一次循环获取过程未获取到的源端日志文件的日志文件编号。接下来,电子设备根据最后一次循环获取过程未获取到的源端日志文件的日志文件编号,得到最后一次循环获取过程未获取到的源端日志文件的起点日志数据标识或终点日志数据标识。然后,电子设备根据最后一次循环获取过程未获取到的源端日志文件的起点日志数据标识或终点日志数据标识,从源端数据库,获取最后一次循环获取过程未获取到的源端日志文件,源端日志文件的终点日志数据标识是源端日志文件包括的最后一条日志数据的日志数据标识。
可以理解的,如果源端频繁地发生日志文件切换,源端就会频繁地产生第一类遗漏日志文件;这会导致,电子设备循环地执行步骤S101a5和步骤S101a4,没有去执行后续数据集成步骤;也就是说,源端的日志文件集成到目标端的时延会比较长,这会影响数据集成的实时性。
基于此,在一些实施例中,电子设备可以记录,源端发生日志文件切换导致电子设备重新加载日志文件的次数(如,在执行步骤S101a5之后执行步骤S101a4的次数)。如果该次数超过预设的次数阈值(如,5次,10次),电子设备可以不重新加载日志文件(如不执行步骤S101a4),直接执行后续数据集成步骤。(如,直接基于加载到的日志文件对目标端数据库进行数据操作。)
这样,在电子设备重复执行步骤S101a5和步骤S101a4,达到一定次数时;即便仍然存在第一类遗漏日志文件,电子设备也执行后续数据集成步骤(例如,根据最后一次获取到的源端日志文件对目标端数据库进行数据操作)。可以使得源端生成的日志文件可以及时的集成至目标端,可以减少源端的日志文件集成到目标端的时延,可以提升电子设备进行数据集成的实时性。
以及,考虑到源端会持续生成日志文件;如果源端频繁地发生日志文件切换,也就是电子设备多次在步骤S101a5之后执行步骤S101a4;以及,电子设备在步骤S101a5之后执行步骤S101a4时,电子设备获取到了源端新生成的日志文件;这会导致电子设备在执行步骤S101a4时,获取的日志文件数量持续增加,会导致电子设备需要处理的日志文件数据量比较多,可能会超过电子设备的数据处理能力,甚至会导致电子设备崩溃。
基于此,通过设置预设的次数阈值,当电子设备重新加载日志文件的次数超过次数阈值后,电子设备直接执行后续数据集成步骤。可以控制电子设备在执行步骤S101a4时,获取到的日志文件的数量,可以控制电子设备需要处理的日志文件的数据量,可以减少电子设备崩溃的情况。
在一些实施例中,如果电子设备记录的源端发生日志文件切换导致电子设备重新加载日志文件的次数,超过预设的次数阈值(5次,10次),则电子设备可以确定切换日志文件(也就是第一类遗漏日志文件)的文件编号。之后,电子设备基于切换日志文件的文件编号,获取切换日志文件的起点日志数据标识或终点日志数据标识。接下来,电子设备不重新加载日志文件,直接执行后续数据集成步骤,并在后续加载日志文件时,通过起点日志数据标识或终点日志数据标识加载该切换日志文件。其中,切换日志文件可以理解为,在电子设备从源端获取日志文件的过程中发生了切换的日志文件;也就是正在进行归档日志操作,切换为归档日志文件的日志文件。在一些实施例中,第一类遗漏日志文件(如切换日志文件)也可以被称为缺失日志文件。
这样,电子设备就可以通过切换日志文件的起点日志数据标识和终点日志数据标识,获取到上述切换日志文件。并在后续,将该切换日志文件中的日志数据集成至目标端数据库,这样,可以进一步地缓解数据集成时的漏数问题,提高源端数据库与目标端数据库的数据一致性,缓解目标端的数据失真问题。
假设,电子设备可以获取到的日志文件的日志编号为:141、139、138、137、136、135、134。接下来,电子设备检测到获取的日志文件的日志编号不连续,确定导致日志文件的日志编号不连续的间断点也就是日志编号为140的日志文件是切换日志文件。之后,电子设备向源端发送查询请求,以查询日志编号为140的日志文件的起点日志数据标识和终点日志数据标识。接下来,在下一次从源端获取日志文件时,基于日志编号为140的日志文件的起点日志数据标识和终点日志数据标识,从源端加载该日志编号为140的日志文件。
在一些实施例中,电子设备在从源端获取日志文件后,电子设备还可以对获取到的日志文件进行解析(如,编码转换、解密等等)。可以理解的,对于一些数据库上的日志文件会以一些特殊的编码格式存在,或者这些日志文件会被数据存储节点加密。基于此,电子设备可以对这些日志文件进行解析,并在解析后执行后续的数据集成步骤。
S102.电子设备从获取到的日志文件中,确定第二类遗漏日志文件。
其中,第二类遗漏日志文件可以理解为,上述电子设备获取到的日志文件中,日志数据发生了缺失的日志文件。也可以理解为,日志文件内容缺失的日志文件。也就是说,电子设备获取到了第二类遗漏日志文件的,日志文件编号和起点日志数据标识等信息,未获取到第二类遗漏日志文件的日志数据。第二类遗漏日志文件的文件内容,也就是第二类遗漏日志文件的日志数据是遗漏的。
在一些实施例中,电子设备可以读取日志文件中的日志数据。如未读取到日志文件中的日志数据,则确定该日志文件的日志数据发生了遗漏,该日志文件为第二类遗漏日志文件。
例如,电子设备获取到了日志文件的日志文件编号,电子设备根据日志文件编号只读取到了某个日志文件的名称、属性、起点日志数据标识、终点日志数据标识等,但电子设备未读取到该日志文件包括的日志数据;电子设备可以确定该日志文件为第二类遗漏日志文件。
又例如,电子设备读取到了某个日志文件的名称、属性、起点日志数据标识、终点日志数据标识;但是电子设备从日志文件中读取到了异常的日志数据,电子设备无法基于该日志文件中的日志数据进行数据操作;电子设备可以确定该日志文件为第二类遗漏日志文件。
其中,日志数据可以对应数据修改操作、数据增加操作和数据删除操作中的任一种。
例如,日志数据中记载的数据操作是对数据A进行修改操作,则电子设备会对目标端的数据A进行修改。又例如,日志数据中记载的数据操作是对数据B进行删除操作,则电子设备会对目标端的数据B进行删除操作。又例如,日志数据中记载的数据操作是对数据C的增加操作,增加了数据C。则电子设备会对目标端进行数据C的增加操作,为目标端增加数据C。
在一些实施例中,使用归档日志文件进行数据集成时发生漏数现象的概率,会小于,使用在线日志文件进行数据集成时发生漏数现象的概率。基于此,电子设备可以从获取到的日志文件中提取出在线日志文件,之后,再从上述在线日志文件中确定第二类遗漏日志文件。这样,可以减少电子设备需要确定的是否为第二类遗漏日志文件的数量。可以减少电子设备的处理量,可以提升电子设备进行数据集成的效率。
在一些实施例中,电子设备也可以基于获取到的日志文件对目标端进行数据操作,这样来自源端多个数据存储节点的数据就可以被汇聚至目标端。
S103.电子设备基于第二类遗漏日志文件和本次日志数据标识范围得到日志标志位。
其中,上述本次日志数据标识范围可以理解为,本次数据集成时,在上述步骤S101中获取日志文件时,电子设备使用的日志数据标识范围(范围起点、范围终点)。以及,日志标志位,也可以被称为快照标志位。
可以理解的,在本申请实施例中,日志标志位是基于第二类遗漏日志文件得到的。因此,日志标志位就会与本次数据集成时确定的第二类遗漏日志文件相关。也就是说,日志标志位会和电子设备在本次数据集成时,确定发生了内容遗漏的日志文件相关。之后,电子设备在下次获取日志文件时使用该日志标志位,从源端获取日志文件时,就可以基于该日志标志位生成日志标识范围(也就是,电子设备下次获取日志文件时,电子设备使用的日志标识范围);由于该日志标志位是与本次数据集成时确定的第二类遗漏日志文件相关的。因此,电子设备在下次获取日志文件时,就可以通过基于日志标志位生成的日志标识范围,从源端获取到本次数据集成时确定的第二类遗漏日志文件。基于此,电子设备就可以通过日志标志位,标记出本次数据集成时发现的第二类遗漏日志文件,并在下次获取日志文件时,获取到本次数据集成时发现的第二类遗漏日志文件。这样,电子设备就可以缓解在数据集成过程中的漏数现象,可以提升源端与目标端数据的一致性,从而减少目标端的数据失真问题。
在一些实施例中,如果步骤S102中电子设备未确定遗漏日志文件。则在步骤S103中,电子设备可以基于日志数据标识范围得到日志标志位。
示例性的,若电子设备在步骤S102未确定第二类遗漏日志文件,则电子设备在步骤中可以直接将日志数据标识范围的范围终点作为日志标志位。
例如,参见图8,电子设备获取到了归档日志文件1、归档日志文件2、在线日志文件1和在线日志文件2。电子设备未确定第二类遗漏日志文件。之后,电子设备将范围终点作为日志标志位。
在一些实施例中,电子设备可以基于第二类遗漏日志文件的起点日志数据标识,和本次日志数据标识范围的范围起点得到日志标志位。
例如,电子设备可以将该第二类遗漏日志文件的日志数据标识,和日志数据标识范围的范围起点中数值最大的作为,参考日志数据标识。接下来,电子设备可以通过该参考数据标识的数值得到日志标志位,日志标志位的数值可以小于或等于该参考日志数据标识的数值。可以理解的,在日志标志位的数值等于该参考日志数据标识的数值时,也就是说,日志标志位可以是该参考日志数据标识。
可以理解的,从上述描述可知,电子设备在从源端获取日志文件时,获取的是日志数据标识大于或等于范围起点,或小于或等于范围终点的日志文件。也就是说,如果范围起点越小,电子设备从源端获取的日志文件的数量就会越多。获取到的日志文件的日志数据标识也会越小。以及,日志数据标识越小的日志文件,其在源端的生成时间也会越早,与电子设备的当前时间也会相差越多。这样,下次数据集成时,如果电子设备在使用比较小的日志数据标识,得到下次数据集成时使用的日志数据标识范围。电子设备就可能会获取到,比较多的生成时间比较早的日志文件;也就是说电子设备会获取到一些时效性比较差的日志文件,这会影响电子设备进行数据集成的实时性。
以及,第二类遗漏日志文件是在本次获取日志文件时,获取到了日志文件但日志文件内容缺失的日志文件。也就是说,第二类遗漏日志文件的日志标识是大于或等于本次日志数据标识范围的范围起点(下文可简称为本次起点)的日志文件(即使用本次起点,电子设备可以获取到第二类遗漏日志文件)。以及,起点日志数据标识是日志文件中最小的日志数据标识。也就是说,使用该第二类遗漏日志文件的起点日志数据标识,电子设备也可以获取到该第二类遗漏日志文件。
由此,电子设备使用第二类遗漏日志文件的起点日志数据标识,或者,使用本次起点电子设备均可以在下一次从源端获取日志文件时获取到在本次数据集成时确定的第二类遗漏日志文件。
基于此,电子设备可以从第二类遗漏日志文件的日志数据标识,和日志数据标识范围的范围起点中,确定一个阈值(也就是,参考日志数据标识)。如果电子设备,在下次从源端获取日志文件时,使用数值比该参考日志数据标识大的范围起点,从源端获取日志文件;则电子设备可能从源端获取不到,本次确定的第二类遗漏日文件。
综上可见,如果日志标志位等于该参考日志数据标识,电子设备既可以在下次从源端获取日志文件时,获取到本次确定的第二类遗漏日志文件,又可以在一定程度上控制从源端获取日志文件的数量,可以使电子设备获取的日志文件数量不是很多;还可以在一定程度上控制从源端数据库获取日志文件的时效性。可以既缓解在数据集成时的漏数问题,又可以提高电子设备在获取日志文件时的效率,可以提高电子设备进行数据集成的实时性。
在一些实施例中,电子设备可以将遗漏日志文件的日志数据标识,和日志数据标识范围的范围起点中,数值最小的作为日志标志位。
示例性的,参见图9,电子设备获取到了归档日志文件1、归档日志文件2、在线日志文件1和在线日志文件2。电子设备确定在线日志文件2是遗漏日志文件。之后,电子设备将遗漏日志文件的日志数据标识和范围起点进行比较,将二者中数值比较大的,也就是在线日志文件2的日志数据标识作为日志标志位。
示例性的,参见图10,电子设备获取到了在线日志文件1和在线日志文件2。接下来,电子设备确定在线日志文件1是遗漏日志文件。之后,电子设备将遗漏日志文件的日志数据标识和范围起点进行比较,将二者中数值比较大的,也就是范围起点作为日志标志位。
在一些实施例中,在电子设备确定了多个第二类遗漏日志文件的情况下,电子设备从多个第二类遗漏日志文件中确定目标遗漏日志文件,目标遗漏日志文件是上述多个第二类遗漏日志文件中,起点日志数据标识最小的日志文件。之后,电子设备将目标遗漏日志文件的日志数据标识和范围起点中数值比较大的,作为参考日志数据标识。接下来,电子设备基于参考日志数据标识得到日志标志位。
如果,电子设备确定了多个第二类遗漏日志文件,为了使得电子设备在下次获取日志文件时,可以获取到本次数据集成时确定的多个第二类遗漏日志文件,因此可以先在多个第二类遗漏日志文件中,确定目标遗漏日志文件。由电子设备获取日志文件时的方式可知,电子设备在从源端获取日志文件时,获取的是,日志数据标识大于或等于范围起点的日志文件。因此,如果电子设备使用目标遗漏日志文件从源端获取日志文件,可以获取到上述多个第二类遗漏日志文件。基于此,可以从多个第二类遗漏日志文件中,确定目标遗漏日志文件;这样可以使得电子设备后续基于目标遗漏日志文件,得到日志标志位;在下次从源端获取日志文件时,可以基于日志标志位,从源端数据库获取到本次确定的多个第二类遗漏日志文件。
示例性的,参见图11,电子设备获取到了在线日志文件1、在线日志文件2和在线日志文件3。接下来,电子设备确定在线日志文件1和在线日志文件3是遗漏日志文件。之后,电子设备在遗漏日志文件中,将日志数据标识比较小的作为目标遗漏日志文件,也就是电子设备将在线日志文件1作为目标遗漏日志文件。接下来,电子设备将线日志文件1的日志数据标识和范围起点进行比较,将二者中数值比较大的,也就是范围起点作为日志标志位。
示例性的,参见图12,电子设备获取到了在线日志文件1、在线日志文件2和在线日志文件3。接下来,电子设备确定在线日志文件1、在线日志文件2和在线日志文件3均是遗漏日志文件。之后,电子设备在遗漏日志文件中,将日志数据标识比较小的作为目标遗漏日志文件,也就是,电子设备将在线日志文件3作为目标遗漏日志文件。接下来,电子设备将在线日志文件3的日志数据标识和范围起点进行比较,将二者中数值比较大的,也就是范围起点作为日志标志位。
可以理解的,在电子设备得到了日志标志位之后,电子设备在下一次进行数据集成时,电子设备就会处于非首次数据集成场景。
接下来,将以电子设备在非首次数据集成场景下,对步骤S101进行补充介绍。
在非首次数据集成场景下,由于电子设备在之前,或者在之前的一段时间,已经进行过数据集成;也就是说,电子设备可以获取到历史日志标志位。其中,历史日志标志位可以理解为,电子设备在上一次执行数据集成时得到的日志标志位。基于此,电子设备可以获取历史日志标志位。之后,电子设备通过动态步长或预设步长,得到范围终点。接下来,电子设备基于该日志标志位和范围终点从源端获取日志文件。
示例性的,参见图13,上述步骤S101可以包括步骤S101b1-S101b4。
S101b1.电子设备确定处于非首次数据集成场景。
可以理解的,步骤S101b1的实现方式可参见上述对步骤S101a1的相关描述,在此不再赘述。
S101b2.电子设备将历史日志标志位作为本次数据集成时的范围起点。
可以理解的,由于历史日志标志位,是电子设备上次数据集成时得到的,可以反应电子设备在上次数据集成时,电子设备确定的第二类遗漏日志文件,也就是说,电子设备在上次数据集成时确定的第二类遗漏日志文件的起点日志文件标识,会大于或等于,历史日志标志位。以及,电子设备在获取日志文件时,获取的是,日志数据标识大于或等于范围起点的日志文件。因此,将历史日志标志位为作为本次范围起点,电子设备可以获取到,电子设备在上次数据集成时确定的第二类遗漏日志文件。这样,电子设备在本次数据集成时就可以获取到,电子设备在上次数据集成时确定的第二类遗漏日志文件。并在后续将上次数据集成时确定的第二类遗漏日志文件中的日志数据,集成到目标端。这样可以,缓解数据集成时的漏数现象,提升源端与目标端数据的一致性,从而减少目标端的数据失真的问题。
S101b3.电子设备基于本次数据集成时的范围起点,通过动态步长,计算得到范围终点。
其中,本次数据集成时的范围起点可以是上述步骤S101b2中得到的范围起点。
可以理解的,步骤S101b3的实现方式可参见上述对步骤S101a3的相关描述,在此不再赘述。
S101b4.电子设备基于范围起点和范围终点从源端获取日志文件。
可以理解的,步骤S101b4的实现方式可参见上述对步骤S101a4的相关描述,在此不再赘述。
在一些实施例中,上述步骤S101还可以包括步骤S101b5。
S101b5.若电子设备确定源端产生第一类遗漏日志文件,则电子设备执行步骤S101b4;若电子设备未确定源端产生第一类遗漏日志文件,则电子设备执行后续步骤。
可以理解的,步骤S101b5的实现方式可参见上述对步骤S101a5的相关描述,在此不再赘述。
下面,将结合电子设备的多次数据集成过程,对本申请实施例提供的数据处理方法进行介绍。该方法,可以包括:电子设备根据第一标识范围从源端数据库获取源端日志文件,该第一标识范围用于指示电子设备待获取的源端日志文件的日志数据标识的范围。其中,此步骤的实现方式可参照上述步骤S101的介绍,在此不再赘述。
之后,电子设备基于获取到的源端日志文件,对目标端数据库进行数据操作。
例如,源端日志文件中记载的数据操作是对数据A进行修改操作,则电子设备会对目标端的数据A进行修改。又例如,源端日志文件记载的数据操作是对数据B进行删除操作,则电子设备会对目标端的数据B进行删除操作。又例如,源端日志文件中记载的数据操作是对数据C的增加操作,增加了数据C。则电子设备会对目标端进行数据C的增加操作,为目标端增加数据C。
接下来,若电子设备从获取到的源端日志文件中确定存在至少一个遗漏日志文件,则电子设备基于至少一个遗漏日志文件的起点日志数据标识和第一标识范围得到日志标志位。上述遗漏日志文件是包括的日志数据发生遗漏的日志文件。遗漏日志文件的起点日志数据标识是,该遗漏日志文件包括的第一条日志数据的日志数据标识。其中,此步骤的实现方式可参照上述步骤S102和步骤S103的介绍,在此不再赘述。
然后,电子设备根据上述日志标志位确定第二标识范围,并根据第二标识范围从所述源端数据库获取源端日志文件。
其中,此步骤的实现方式可参照上述步骤S101的介绍,在此不再赘述。
下面,将以在订单处理业务场景下,对源端数据进行数据集成为例对本申请实施例提供的数据处理方法进行举例说明。
示例性的,在订单处理业务场景下,数据存储系统中的源端可以包括三个数据存储节点(节点1、节点2和节点3),目标端包括两个数据存储节点(节点a和节点b)。在订单处理业务场景下,源端可以用于接收订单信息,并基于订单信息对源端进行数据操作。例如,假设商家上架100数量的商品A,源端会接收到增加数据的数据操作,在源端的数据文件中,增加“商品A,数量100”这条数据。又例如,用户下单了10数量的商品A,源端会接收到修改数据的数据操作,将数据文件中的“商品A,数量100”修改为,“商品A,数量90”。再例如,商家将商品A下架,源端会接收到删除数据的数据操作,在源端的数据文件中,删除“商品A,数量90”这条数据。以及,目标端可以用于同步源端的数据,并基于目标端数据,进行订单发货,商品数量展示等等。
假设,参见图14,源端接收到增加了数据文件1、数据文件2、数据文件3;其中,数据文件1是“商品A,数量100”,数据文件2是“商品B,数量200”,数据文件3是“商品C,数量150”。之后,源端的数据存储节点会生成针对上述数据文件1、数据文件2、数据文件3的日志数据。并将该日志数据随机的存入上述三个数据存储节点(节点1、节点2和节点3)中。例如,源端可以将针对数据文件1的日志数据1存入节点1、将针对数据文件2的日志数据2存入节点2,将针对数据文件3的日志数据3存入节点3。之后,源端接收到了下单操作,源端会增加数据文件4“顾客A,购买50个商品A”,以及源端会修改数据文件1,将数据文件1修改为“商品A,数量50”。接下来,源端会生成针对数据文件4的日志数据4,并将该日志数据存入节点2;以及,源端会生成针对数据文件1的修改操作生成日志数据5,并将该日志数据5存入节点3。之后,源端接收到了商品C的下架操作,源端会将数据文件3删除,之后,源端生成针对将数据文件3删除操作的日志数据6,并将该日志数据存入节点1。此时,节点1的在线日志文件a1达到了预设大小,节点会对日志文件a1进行归档操作,并将日志数据6存入日志文件a2中。
基于此,节点1的日志文件a1就会记录着日志数据1,节点1的日志文件a2就会记录着日志数据6;节点2的日志文件b1就会记录着日志数据2和日志数据4,节点3的日志文件c1就会记录着日志数据3和日志数据5。以及,源端在生成日志数据时,会同时生成该日志数据的日志标识(如,为scn);如,日志数据1的scn为1001、日志数据2的scn为1002、日志数据3的scn为1003、日志数据4的scn为1005、日志数据5的scn为1008、日志数据6的scn为1010。也就是说,日志文件a1的起点日志数据标识为975、日志文件a1的终点日志数据标识为1001、日志文件b1的起点日志数据标识为980、日志文件c1的起点日志数据标识为1000。日志文件a2的起点日志数据标识为1010。
示例性的,日志文件的日志数据标识如下述表1所示。
表1
其中,由于日志文件a2、日志文件b1、日志文件c1是在线日志文件,会被随时写入日志数据,基于此其不具有终点日志数据标识。
可以理解的,在源端生成上述日志数据1-6的过程中,源端也会生成一些针对源端数据库系统的日志数据(图中未示出),这些数据也会占用scn,因此上述日志数据1-6的scn可能不是连续的。
接下来,电子设备进行数据集成,将源端三个节点(节点1、节点2和节点3)的数据集成到目标端。由于,电子设备没有获取到历史日志标志;因此,电子设备确定处于首次集成场景。电子设备第一次从源端加载日志文件。接下来,电子设备获取指定范围起点,如为988。之后,电子设备会通过动态步长计算得到,日志数据标识的终端为1011,也就是日志数据标识范围是[988,1011]。而后,电子设备基于该日志数据标识范围,从源端获取日志文件。
示例性的,再次参见图14,日志文件a1、日志文件a2、日志文件b1和日志文件c1的日志数据标识均和上述日志数据标识范围有重合,因此,电子设备需要获取日志文件a1、日志文件a2、日志文件b1和日志文件c1。然而,由于日志文件a1正在进行归档操作,电子设备没有获取到日志文件a1。也就说,电子设备获取到了日志文件a2、日志文件b1和日志文件c1。之后,电子设备通过获取节点1的归档日志文件编号(如为日志文件a0的日志文件编号)和日志文件a2的日志文件编号比较发现,二者不连续,发生了日志文件切换。接下来,电子设备重新从源端获取日志文件;如,电子设备获取到了日志文件a1、日志文件a2、日志文件b1和日志文件c1。然后,电子设备确定获取到日志文件未发生文件切换。这样,就可以缓解源端在线日志文件切换导致的漏数现象。
接下来,由于日志文件a1、日志文件a2、日志文件b1和日志文件c1均是加密状态,电子设备对,日志文件a1、日志文件a2、日志文件b1和日志文件c1进行解密;并在解密之后,基于分别日志文件a1、日志文件a2、日志文件b1和日志文件c1中的日志数据,对目标端进行数据操作。
之后,电子设备可以读取解析后的日志文件a1、日志文件a2、日志文件b1和日志文件c1中的日志数据,如果日志文件b1未读取到日志数据,则确定日志文件b1为遗漏日志文件。或者,电子设备也可以通过解析后的日志文件a1、日志文件a2、日志文件b1和日志文件c1对目标端进行数据操作。如在基于日志文件c1执行数据操作时,目标端未获取到日志文件c1中日志数据对应的数据操作,目标端的数据未发生数据改变;则电子设备确定日志文件c1为遗漏日志文件。
接下来,电子设备在日志文件b1和日志文件c1中确定目标遗漏文件。从图14中可见,日志文件b1的起点日志数据标识(如,scn=980)会小于日志文件c1的起点日志数据标识(如,scn=1000)。因此,电子设备,确定日志文件b1为目标遗漏文件。
而后,电子设备将日志文件b1的起点日志数据标识和范围起点中,数值最大的作为日志标志位。也就是将范围起点作为日志标志位,也就是988。
示例性的,遗漏日志文件和范围起点的数值对比可参见下述表2。
表2
接下来,电子设备基于第一次数据集成时得到的日志标志位,也就是988,得到日志数据标识范围。并基于该日志数据标识范围,第二次进行数据集成,从源端获取日志文件。如,获取日志文件a1、日志文件a2、日志文件b1和日志文件c1。之后,电子设备解析上述日志文件a1、日志文件a2、日志文件b1和日志文件c1,接着对目标端进行数据操作。可以理解的,对于一些目标端来讲,其会有一些避免重复数据操作的机制。这种机制,过滤掉对目标端相同的数据操作。因此即使电子设备再次基于解析后的日志文件a1和日志文件a2对目标端进行数据操作,目标端的数据也不会错乱。
这样,电子设备在第二次数据集成时,就可以再次获取第一次数据集成中遗漏的日志文件b1、和日志文件c1。这样,可以减少日志文件b1、日志文件c1未集成至目标端的情况。可以缓解,因为目标端未获取到日志数据2、日志数据3、日志数据4和日志数据5,而导致在目标端数据失真的情况。可以提高基于目标端的数据进行订单发货和商品数量展示时的准确程度。
这样,电子设备通过使用上一次数据集成得到的日志标志位,进行本次数据集成。电子设备可以在本次数据集成时获取上一次数据集成时遗漏的来自源端的数据,这样,可以缓解在数据集成过程中的漏数现象,进而可以提升源端与目标端数据的一致性,从而减少目标端的数据失真的问题。
然后,在第二次进行数据集成时,电子设备由于没有读取到日志文件c1的内容,电子设备确定日志文件c1是遗漏文件。
接下来,电子设备将日志文件c1的起点日志数据标识(如为scn=1000)和范围起点(如为scn=988)中,数值最大的作为日志标志位。也就是将日志文件c1的起点日志数据标识作为日志标志位,也就是scn=1000。
示例性的,遗漏日志文件和范围起点的数值对比可参见下述表3。
表3
之后,电子设备在进行下一次数据集成时,就会使用这次数据集成得到的日志标志位,也就是scn=1000,得到日志数据标识范围。并基于该日志数据标识范围,第三次从源端获取日志文件。
在一些实施例中,如果因为日志文件a1进行归档操作的时间比较长,电子设备多次(3次、5次等等)获取不到日志文件a1。电子设备可以将日志文件a1作为切换日志文件。之后电子设备可以向源端发送查询请求,以查询日志文件a1的起点日志数据标识和终点日志数据标识。源端可以响应于该日志查询请求,向电子设备发送日志文件a1的起点日志数据标识或终点日志数据标识。这样,电子设备,就可以通过日志文件a1的起点日志数据标识(如,975)或终点日志数据标识(如,980),从源端获取日志文件a1。如,以指定日志数据标识是975或指定日志数据标识是980的形式,从源端获取日志文件a1。并在后续,基于源端日志文件a1对目标端数据库进行数据操作。
可以理解的是,为了实现上述功能,电子设备包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
示例性的,参见图15,本申请实施例还提供一种数据集成装置,该装置包括:日志获取模块、日志切换检测模块、日志解析模块、日志数据操作模块和日志标识快照模块。
其中,日志获取模块被配置为,实现上述步骤S101a1-S101a4的功能,或者实现上述步骤S101b1-S101b4的功能。具体可参见上述相关步骤的介绍,在此不再赘述。
日志切换检测模块,被配置为,实现上述步骤S101a5或S101b5的功能。具体可参见上述相关步骤的介绍,在此不再赘述。
日志解析模块,被配置为,实现上述解析日志文件的功能。具体可参见上述相关步骤的介绍,在此不再赘述。
日志数据操作模块,被配置为,实现上述基于日志文件对目标端进行数据操作的功能。具体可参见上述相关步骤的介绍,在此不再赘述。
快照模块,被配置为,实现上述步骤S102或S103的功能。具体可参见上述相关步骤的介绍,在此不再赘述。
本申请实施例还提供一种电子设备,如图16所示,该电子设备可以包括一个或者多个处理器1001、存储器1002和通信接口1003。
其中,存储器1002、通信接口1003与处理器1001耦合。例如,存储器1002、通信接口1003与处理器1001可以通过总线1004耦合在一起。
其中,通信接口1003用于与其他设备进行数据传输。存储器1002中存储有计算机程序代码。计算机程序代码包括计算机指令,当计算机指令被处理器1001执行时,使得电子设备执行本申请实施例中的设备认证。
其中,处理器1001可以是处理器或控制器,例如可以是中央处理器(centralprocessing unit,CPU),通用处理器,数字信号处理器(digital signal processor,DSP),专用集成电路(application-specific integrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
其中,总线1004可以是外设部件互连标准(peripheral componentinterconnect,PCI)总线或扩展工业标准结构(extended industry standardarchitecture,EISA)总线等。上述总线1004可以分为地址总线、数据总线、控制总线等。为便于表示,图16中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例还提供一种计算机可读存储介质,该计算机存储介质中存储有计算机程序代码,当上述处理器执行该计算机程序代码时,电子设备执行上述方法实施例中的相关方法步骤。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述方法实施例中的相关方法步骤。
其中,本申请提供的电子设备、计算机可读存储介质或者计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种数据处理方法,其特征在于,所述方法包括:
根据第一标识范围从源端数据库获取日志文件,所述第一标识范围用于指示待获取的日志文件的日志数据标识的范围;
若从获取到的日志文件中确定存在至少一个遗漏日志文件,则基于所述至少一个遗漏日志文件的起点日志数据标识和所述第一标识范围得到日志标志位;在下次数据处理时,基于所述日志标志位获取日志文件;所述遗漏日志文件包括:从所述源端数据库获取到的且日志数据发生遗漏的日志文件,和从所述源端数据库获取到的且日志数据异常的日志文件之中至少一种;
根据所述日志标志位确定第二标识范围,根据所述第二标识范围从所述源端数据库获取日志文件;从所述源端数据库获取到的日志文件用于对目标端数据库进行数据操作;
其中,所述根据第一标识范围从源端数据库获取日志文件,包括:
若未获取到与所述第一标识范围对应的每个日志文件,则重新根据所述第一标识范围获取日志文件,直至根据所述第一标识范围获取日志文件的获取次数大于或者等于预设的次数阈值;
所述方法还包括:
根据最后一次获取到的日志文件对所述目标端数据库进行数据操作。
2.根据权利要求1所述的方法,其特征在于,所述基于所述至少一个遗漏日志文件的起点日志数据标识和所述第一标识范围得到日志标志位,包括:
在从根据所述第一标识范围获取到的日志文件中确定存在一个遗漏日志文件的情况下,将所述一个遗漏日志文件的起点日志数据标识和所述第一标识范围的范围起点中,最大的日志数据标识作为所述日志标志位;
或者,在从根据所述第一标识范围获取到的日志文件中确定存在至少两个遗漏日志文件的情况下,在所述至少两个遗漏日志文件中确定目标遗漏日志文件;将所述目标遗漏日志文件的起点日志数据标识和所述第一标识范围的范围起点中,最大的日志数据标识作为所述日志标志位;
其中,所述目标遗漏日志文件是所述至少两个遗漏日志文件中,起点日志数据标识最小的遗漏日志文件。
3.根据权利要求1所述的方法,其特征在于,所述从获取到的日志文件中确定存在至少一个遗漏日志文件,包括:
从基于第一标识范围获取到的日志文件中读取日志数据,若存在读取不到日志数据的日志文件,则确定存在至少一个遗漏日志文件。
4.根据权利要求1所述的方法,其特征在于,所述根据第一标识范围从源端数据库获取日志文件,包括:
若未获取到与所述第一标识范围对应的每个日志文件,则重新根据所述第一标识范围获取日志文件,直至获取到与所述第一标识范围对应的每个日志文件;
所述方法还包括:
基于获取到的与所述第一标识范围对应的每个日志文件,对所述目标端数据库进行数据操作。
5.根据权利要求1所述的方法,其特征在于,所述日志文件包括日志文件编号,所述方法还包括:
确定缺失日志文件的日志文件编号,所述缺失日志文件是未获取到的与所述第一标识范围对应的日志文件;
根据所述缺失日志文件的日志文件编号,得到所述缺失日志文件的起点日志数据标识或终点日志数据标识;
根据所述缺失日志文件的起点日志数据标识或终点日志数据标识,从所述源端数据库获取所述缺失日志文件;
基于所述缺失日志文件对所述目标端数据库进行数据操作。
6.根据权利要求1-5任一项所述的方法,其特征在于,未获取到的与所述第一标识范围对应的日志文件包括切换日志文件;所述切换日志文件是所述源端数据库正在进行归档操作的日志文件。
7.根据权利要求1-3任一项所述的方法,其特征在于,所述日志文件包括:在线日志文件或归档日志文件,
所述根据第一标识范围从源端数据库获取日志文件包括:
在日志文件是所述在线日志文件的情况下,获取所述在线日志文件的起点日志数据标识小于或等于所述第一标识范围的范围终点的在线日志文件;
在日志文件是所述归档日志文件的情况下,获取所述归档日志文件的起点日志数据标识小于或等于所述第一标识范围的范围终点,且大于或等于所述第一标识范围的范围起点的归档日志文件;或者,获取所述归档日志文件的终点日志数据标识小于或等于所述第一标识范围的范围终点,且大于或等于所述第一标识范围的范围起点的归档日志文件。
8.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
若从获取到的所述日志文件中确定不存在所述遗漏日志文件,则基于所述第一标识范围的范围终点得到所述日志标志位。
9.一种电子设备,其特征在于,所述电子设备包括存储器,一个或多个处理器,所述存储器与所述处理器耦合;其中,所述存储器中存储有计算机程序代码,所述计算机程序代码包括计算机指令;当所述计算机指令被所述处理器执行时,使得所述电子设备执行如权利要求1-8任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-8任一项所述的方法。
CN202310983572.5A 2023-08-07 2023-08-07 数据处理方法、电子设备及存储介质 Active CN116701426B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310983572.5A CN116701426B (zh) 2023-08-07 2023-08-07 数据处理方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310983572.5A CN116701426B (zh) 2023-08-07 2023-08-07 数据处理方法、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN116701426A CN116701426A (zh) 2023-09-05
CN116701426B true CN116701426B (zh) 2024-04-05

Family

ID=87829706

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310983572.5A Active CN116701426B (zh) 2023-08-07 2023-08-07 数据处理方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116701426B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2541413A1 (en) * 2011-06-30 2013-01-02 Verisign, Inc. Systems and Methods for Data Integrity Checking
JP2013191188A (ja) * 2012-02-14 2013-09-26 Nippon Telegr & Teleph Corp <Ntt> ログ管理装置、ログ蓄積方法、ログ検索方法、重要度決定方法、およびプログラム
CN103488690A (zh) * 2013-09-02 2014-01-01 用友软件股份有限公司 数据集成系统和数据集成方法
KR20140050903A (ko) * 2012-10-22 2014-04-30 주식회사 엔써티 데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법
CN111723064A (zh) * 2019-03-22 2020-09-29 顺丰科技有限公司 日志采集方法、装置、服务器及存储介质
CN115470082A (zh) * 2022-07-29 2022-12-13 北京结慧科技有限公司 Oracle数据库的日志断点和日志文本数据采集方法
CN115757318A (zh) * 2022-11-16 2023-03-07 中国工商银行股份有限公司 日志查询方法、装置、存储介质以及电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7890466B2 (en) * 2003-04-16 2011-02-15 Oracle International Corporation Techniques for increasing the usefulness of transaction logs
US20050289187A1 (en) * 2004-06-29 2005-12-29 Oracle International Corporation System and method for investigating a data operation performed on a database
US7599967B2 (en) * 2007-03-20 2009-10-06 Oracle International Corporation No data loss system with reduced commit latency
US8001075B2 (en) * 2007-06-01 2011-08-16 Microsoft Corporation Log file amnesia detection
US11151114B2 (en) * 2018-12-04 2021-10-19 International Business Machines Corporation Log reader and parser sharing determination in a change data capture environment
US11966297B2 (en) * 2020-10-20 2024-04-23 EMC IP Holding Company LLC Identifying database archive log dependency and backup copy recoverability

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2541413A1 (en) * 2011-06-30 2013-01-02 Verisign, Inc. Systems and Methods for Data Integrity Checking
JP2013191188A (ja) * 2012-02-14 2013-09-26 Nippon Telegr & Teleph Corp <Ntt> ログ管理装置、ログ蓄積方法、ログ検索方法、重要度決定方法、およびプログラム
KR20140050903A (ko) * 2012-10-22 2014-04-30 주식회사 엔써티 데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법
CN103488690A (zh) * 2013-09-02 2014-01-01 用友软件股份有限公司 数据集成系统和数据集成方法
CN111723064A (zh) * 2019-03-22 2020-09-29 顺丰科技有限公司 日志采集方法、装置、服务器及存储介质
CN115470082A (zh) * 2022-07-29 2022-12-13 北京结慧科技有限公司 Oracle数据库的日志断点和日志文本数据采集方法
CN115757318A (zh) * 2022-11-16 2023-03-07 中国工商银行股份有限公司 日志查询方法、装置、存储介质以及电子设备

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ORACLE SCN增长过快问题研究和解决方案探索;易金旭;;福建电脑(第02期);全文 *
基于Oracle Logminer的数据同步技术研究;张媛;汤学达;桂文军;;网络安全技术与应用(第06期);全文 *
基于Oracle日志分析的数据还原操作的设计及实现;秦森;杨艳;;电脑知识与技术(学术交流)(第03期);全文 *
基于数据块的关系数据库日志挖掘技术;彭巍;邵佳炜;雷振江;吕旭明;聂庆节;刘赛;;计算机系统应用(第07期);全文 *

Also Published As

Publication number Publication date
CN116701426A (zh) 2023-09-05

Similar Documents

Publication Publication Date Title
US20220179863A1 (en) Storing data and parity via a computing system
US8819335B1 (en) System and method for executing map-reduce tasks in a storage device
US11347747B1 (en) Ordering data stream events in a streaming data storage platform
US10346076B1 (en) Method and system for data deduplication based on load information associated with different phases in a data deduplication pipeline
US10826980B2 (en) Command process load balancing system
US20150242432A1 (en) Modified Memory Compression
US8375200B2 (en) Embedded device and file change notification method of the embedded device
WO2021068567A1 (zh) 区块链的区块分发方法、装置、计算机设备和存储介质
AU2015215975B1 (en) Apparatus and method for single pass entropy detection on data transfer
US11546139B2 (en) Smart compressor based on adaptive CPU/QAT scheduling method
US9357007B2 (en) Controlling storing of data
US10089131B2 (en) Compute cluster load balancing based on disk I/O cache contents
US11392545B1 (en) Tracking access pattern of inodes and pre-fetching inodes
US11474715B2 (en) Storage system configuration change tracking for root cause/troubleshooting
CN114201421A (zh) 一种数据流处理方法、存储控制节点及可读存储介质
US8549274B2 (en) Distributive cache accessing device and method for accelerating to boot remote diskless computers
CN111651424A (zh) 一种数据处理方法、装置、数据节点及存储介质
EP3555767B1 (en) Partial storage of large files in distinct storage systems
US11507292B2 (en) System and method to utilize a composite block of data during compression of data blocks of fixed size
US11663166B2 (en) Post-processing global deduplication algorithm for scaled-out deduplication file system
CN116701426B (zh) 数据处理方法、电子设备及存储介质
US20210117393A1 (en) Data deduplication system
US10067678B1 (en) Probabilistic eviction of partial aggregation results from constrained results storage
US10664442B1 (en) Method and system for data consistency verification in a storage system
US11507611B2 (en) Personalizing unstructured data according to user permissions

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