CN116756247B - 数据修复方法、装置、计算机设备和存储介质 - Google Patents

数据修复方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN116756247B
CN116756247B CN202311052381.3A CN202311052381A CN116756247B CN 116756247 B CN116756247 B CN 116756247B CN 202311052381 A CN202311052381 A CN 202311052381A CN 116756247 B CN116756247 B CN 116756247B
Authority
CN
China
Prior art keywords
data
target
conversion
source
identification information
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
CN202311052381.3A
Other languages
English (en)
Other versions
CN116756247A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202311052381.3A priority Critical patent/CN116756247B/zh
Publication of CN116756247A publication Critical patent/CN116756247A/zh
Application granted granted Critical
Publication of CN116756247B publication Critical patent/CN116756247B/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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • 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/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • 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)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种数据修复方法、装置、计算机设备、存储介质和计算机程序产品,涉及到数据库的同步、数据对账及数据库修改领域。所述方法包括:将数据源***和数据使用方***中的其中一方作为目标数据***,另一方作为对应数据***;确定与目标数据***适配的第一数据标识信息,并据此确定目标数据***中的待对账数据;根据目标数据***与对应数据***之间的数据转换关系,将待对账数据转换为转换数据;获取第二数据标识信息,并据此确定对应数据***中的目标数据;比较转换数据与目标数据之间的一致性,得到数据对账结果,并在数据不一致时对目标数据与待对账数据中的一种进行数据修复。采用本方法能够提高数据对账修复效率。

Description

数据修复方法、装置、计算机设备和存储介质
技术领域
本申请涉及数据库技术领域,特别是涉及一种数据修复方法、装置、计算机设备和存储介质。
背景技术
复杂的互联网***,比如广告***,有的业务方需要高并发,高可用的事务型***,比如广告投放;有的业务方需要的是高效率复杂的数据分析型***,比如分析,提炼用户数据的各种特性;也有的数据使用方需要高性能的数据计算***,比如数据检索,广告推荐等。在各种业务下,业务方的数据存储***需要与数据来源方的数据存储***保持一定频率的同步,并通过高效的数据同步通道以及相应的数据一致性保障,能够保障各种业务的可用性。
然而,由于大数据和人工智能时代面对的数据查询和计算场景日趋复杂,数据来源方的数据存储***的数据存储结构与业务方的数据存储***的数据存储结构可能存在差异,这就导致数据同步的正确性难以保证,进而需要一种方法能够实现高效的数据对账和修复。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高数据对账修复效率的数据修复方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
一方面,本申请提供了一种数据修复方法。所述方法包括:
确定数据源***和数据使用方***,并将所述数据源***和所述数据使用方***中的一方作为目标数据***,另一方作为与所述目标数据***对应的对应数据***;所述数据使用方***存储有从所述数据源***同步至的数据;
确定与所述目标数据***适配的第一数据标识信息,并根据所述第一数据标识信息确定所述目标数据***中的待对账数据;
根据所述目标数据***与所述对应数据***之间的数据转换关系,将所述待对账数据转换为适配于所述对应数据***的转换数据;
获取基于所述第一数据标识信息和所述数据转换关系转换得到的第二数据标识信息,并根据所述第二数据标识信息从所述对应数据***中读取与所述待对账数据相匹配的目标数据;
比较所述转换数据与所述目标数据之间的一致性,得到数据对账结果,并在所述数据对账结果表征所述目标数据与所述待对账数据不一致的情况下,对所述目标数据与所述待对账数据中的一种进行数据修复。
另一方面,本申请还提供了一种数据修复装置。所述装置包括:
确定模块,用于确定数据源***和数据使用方***,并将所述数据源***和所述数据使用方***中的一方作为目标数据***,另一方作为与所述目标数据***对应的对应数据***;所述数据使用方***存储有从所述数据源***同步至的数据;
确定模块,还用于确定与所述目标数据***适配的第一数据标识信息,并根据所述第一数据标识信息确定所述目标数据***中的待对账数据;
映射模块,用于根据所述目标数据***与所述对应数据***之间的数据转换关系,将所述待对账数据转换为适配于所述对应数据***的转换数据;
读取模块,用于获取基于所述第一数据标识信息和所述数据转换关系转换得到的第二数据标识信息,并根据所述第二数据标识信息从所述对应数据***中读取与所述待对账数据相匹配的目标数据;
修复模块,用于比较所述转换数据与所述目标数据之间的一致性,得到数据对账结果,并在所述数据对账结果表征所述目标数据与所述待对账数据不一致的情况下,对所述目标数据与所述待对账数据中的一种进行数据修复。
在一些实施例中,所述待对账数据存储于所述目标数据***中的一或多个目标数据实体中,与所述待对账数据相匹配的所述目标数据存储于所述对应数据***中的一或多个对应数据实体中;所述目标数据实体与所述对应数据实体的数据结构为同构或异构。
在一些实施例中,所述目标数据***与所述对应数据***之间的数据转换关系至少包括数据实体转换关系、字段转换关系、以及数据行转换关系中的一种,其中:所述实体转换关系,表征所述目标数据***中的第一数据实体与所述对应数据***中的第二数据实体之间的转换关系;所述字段转换关系,表征所述第一数据实体中的实体字段与所述第二数据实体中的实体字段之间的转换关系;所述数据行转换关系,表征所述第一数据实体中的数据行与所述第二数据实体中的数据行之间的转换关系。
在一些实施例中,上述装置还包括同步模块,用于当检测到所述数据源***对应的数据变更日志发生变更时,根据发生变更的数据变更日志,确定所述数据源***中发生变更的第三数据标识信息;从所述数据源***中获取所述第三数据标识信息所指示的源数据;根据预先设定的数据同步配置信息,将所述第三数据标识信息所指示的源数据同步至所述数据使用方***;所述数据同步配置信息至少包括数据同步周期和数据转换关系。
在一些实施例中,所述确定模块还用于当所述目标数据***为所述数据源***,所述对应数据***为所述数据使用方***,且到达全量源数据获取时间时,从所述数据源***的备份***中确定符合全量对账条件的源数据;根据所述符合全量对账条件的源数据所对应的数据标识,确定与所述目标数据***适配的第一数据标识信息。
在一些实施例中,所述确定模块还用于当所述目标数据***为所述数据源***,所述对应数据***为所述数据使用方***时,获取当前对账周期内同步至所述数据使用方***的已同步源数据;根据所述已同步源数据的数据标识信息,确定与所述目标数据***适配的第一数据标识信息。
在一些实施例中,所述确定模块还用于确定所述已同步源数据同步至所述数据使用方***的同步时间;确定所述同步时间信息与当前操作时间之间的时间差,并在所述时间差大于预设时延时长的情况下,将所述已同步源数据的数据标识信息作为与所述目标数据***适配的第一数据标识信息。
在一些实施例中,所述确定模块还用于当所述目标数据***为所述数据使用方***,所述对应数据***为所述数据源***时,获取在当前对账周期内所述数据使用方***新增的新增数据;根据所述新增数据的数据标识信息,确定与所述目标数据***适配的第一数据标识信息。
在一些实施例中,所述映射模块还用于根据所述目标数据***与所述对应数据***之间的数据转换关系,将所述第一数据标识信息转换为第二数据标识信息;按照所述第二数据标识信息所指示的对应数据实体,将所述待对账数据转换成对应于所述对应数据实体的转换数据。
在一些实施例中,所述目标数据位于至少一个目标数据行中;所述数据对账结果包括行数据对账结果;所述修复模块还用于在得到多个转换数据,且所述多个转换数据位于至少一个转换数据行中,以及得到多个目标数据,且所述多个目标数据位于至少一个目标数据行的情况下,确定各所述转换数据行和各所述目标数据行的行标识;将具有相同行标识的转换数据行和目标数据行进行一致性比较,得到行数据对账结果。
在一些实施例中,所述修复模块还用于对于具有相同行标识的转换数据行和目标数据行,按照各所述转换数据在转换数据行中的排列先后顺序,以及各所述目标数据行在目标数据行中的排列顺序,将具有相同排列顺序的转换数据和目标数据进行一致性比较。
在一些实施例中,所述数据对账结果包括列数据对账结果;所述修复模块还用于在得到多个转换数据,且所述多个转换数据位于转换数据矩阵,以及得到多个目标数据,所述多个目标数据位于目标数据矩阵的情况下,确定所述转换数据矩阵中各转换数据列的列标识,以及确定所述目标数据矩阵中的各目标数据矩阵列的列标识;将具有相同列标识的转换数据列和目标数据列进行一致性比较,得到列数据对账结果。
在一些实施例中,在得到多个所述转换数据的情况下,所述转换数据存在于转换数据集合;在得到多个所述目标数据的情况下,所述目标数据存在于目标数据集合;所述修复模块还用于对所述转换数据集合中的转换数据进行哈希运算,得到第一数据摘要;对所述目标数据集合中的目标数据进行哈希运算,得到第二数据摘要;比较所述第一数据摘要和第二数据摘要,并根据所述第一数据摘要和第二数据摘要的比较结果确定数据对账结果。
在一些实施例中,所述修复模块还用于在所述目标数据***为所述数据源***,所述对应数据***为所述数据使用方***,且所述数据对账结果表征所述目标数据与所述待对账数据不一致时,将数据对账不一致的目标数据确定为待修复数据;根据所述待修复数据对应的数据标识信息,从所述数据源***中读取与所述待修复数据对应的源数据;根据所述数据源***与所述数据使用方***之间的数据转换关系,将与所述待修复数据对应的源数据转换为适配于所述数据使用方***的更新数据;将所述更新数据替换所述数据使用方***中的待修复数据。
在一些实施例中,所述修复模块还用于在所述目标数据***为所述数据使用方***,所述对应数据***为所述数据源***,且所述数据对账结果表征所述目标数据与所述待对账数据不一致时,将数据对账不一致的待对账数据确定为待修复数据;根据所述待修复数据对应的数据标识,从所述数据源***中读取与所述待修复数据对应的源数据;根据所述数据源***与所述数据使用方***之间的数据转换关系,将所述源数据转换为适配于所述数据使用方***的更新数据;将所述更新数据替换所述数据使用方***中的待修复数据。
在一些实施例中,所述修复模块还用于在所述数据源***对应的数据变更日志中增加模拟变更记录,并根据所述模拟变更记录生成数据重放指令;基于所述数据重放指令,触发所述数据源***根据预先设定的数据同步配置信息执行数据同步过程,以对所述数据使用方***进行数据修复。
另一方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述数据修复方法的步骤。
另一方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据修复方法的步骤。
另一方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述数据修复方法的步骤。
上述数据修复方法、装置、计算机设备、存储介质和计算机程序产品,通过将数据源***和数据使用方***中的一方作为目标数据***,另一方作为与目标数据***对应的对应数据***,然后确定与目标数据***适配的第一数据标识信息,即可根据第一数据标识信息确定目标数据***中的待对账数据,由此能够实现对不同数据***之间的增量或全量对账和修复;再根据目标数据***与对应数据***之间的数据转换关系,将待对账数据转换为适配于对应数据***的转换数据,无论数据源***和数据使用方***各自使用的数据存储结构相同还是不同,都能够实现数据的对账与修复,提高了数据***的可扩展性,能够满足各种业务方的需要;并且,再获取基于第一数据标识信息和数据转换关系转换得到的第二数据标识信息,并根据第二数据标识信息从对应数据***中读取与待对账数据相匹配的目标数据,通过比较转换数据与目标数据之间的一致性,得到数据对账结果,实现了数据源***和数据使用方***之间的数据对账;在数据对账结果表征目标数据与待对账数据不一致的情况下,再对目标数据与待对账数据中的一种进行数据修复,从而保障数据的一致性,从而提高业务的可用性和稳定性。
附图说明
图1为一些实施例中数据修复方法的应用环境图;
图2为另一些实施例中数据修复方法的应用环境图;
图3为一些实施例中数据修复方法的流程示意图;
图4为一些实施例中数据转换关系的原理示意图;
图5为另一些实施例中数据转换关系的原理示意图;
图6为又一些实施例中数据转换关系的原理示意图;
图7为再一些实施例中数据转换关系的原理示意图;
图8为一些实施例中基于数据行进行一致性比较的步骤的流程示意图;
图9为一些实施例中基于实体字段进行一致性比较的步骤的流程示意图;
图10为一些实施例中基于数据集合进行一致性比较的步骤的流程示意图;
图11为一些实施例中数据修复方法的整体结构的框架示意图;
图12为一些实施例中数据修复装置的结构框图;
图13为一些实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的数据修复方法,可以应用于如图1所示的应用环境中。其中,数据源***102和数据使用方***104分别与计算机设备106通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。数据源***102作为数据的生产端,通常用于存储各种业务的原始数据。数据使用方***104作为数据的使用方,可以是各种业务方对应的数据存储***。在一些实施例中,数据源***102是关系型数据库***,比如MySQL,PostgreSQL等,适合业务数据的事务性处理。在一些实施例中,数据使用方***104是各种关系型数据库***、非关系型***、搜索引擎、文件***、或者消息队列等,比如MySQL,PostgreSQL,Clickhouse,ElasticSearch,HBase,TDSQL等。
在一些实施例中,如图2所示,数据源***202可以对接于多个数据使用方***204,由此能够满足各种类型的数据使用方对于同一数据或者数据组合可能需要不同类型的数据实体对象,不同数据实体对象可能需要不同的存储模型才能更高效的执行不同类别的数据查询、检索、分析和计算等的实际业务需求。
其中,计算机设备可以是终端或服务器。终端可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备、或者便携式可穿戴设备等中的一种或多种,物联网设备可为智能音箱、智能电视、智能空调、或者智能车载设备等中的一种或多种。便携式可穿戴设备可为智能手表、智能手环、或者头戴设备等中的一种或多种。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
其中,内容分发网络技术是一种将内容从中心服务器分发到靠近用户的边缘服务器,从而实现内容的分布式就近访问的方法。内容分发网络技术有效地提高了内容访问的服务质量,并支持大规模的并发访问能力。
为了更好地理解本申请,下述对本申请的整体构思进行简单介绍:复杂的互联网***,比如广告***,有的业务方需要高并发,高可用的事务型***(OLTP),比如广告投放;有的业务方需要的是高效率复杂的数据分析型***(OLAP),比如分析,提炼用户数据的各种特性;也有的数据使用方需要高性能的数据计算***(HPC),比如数据检索,广告推荐等。各种类型的数据使用方对于同一数据或者数据组合可能需要不同类型的数据实体对象,不同数据实体对象可能需要不同的存储模型才能更高效的执行不同类别的数据查询,检索,分析和计算等。大数据,人工智能时代面对的数据查询,分析,检索,计算场景日趋复杂,单一的数据库***产生的慢查询经常影响到***的稳定性,进而影响到业务的可用性,从而为业务带来***级的风险。因为数据查询和结算使用的模型与数据生产写入的模型天然存在差异,对于单一模型***来说,数据的生产端(数据写入),模型需要实现复杂的数据验证和业务逻辑,如果再考虑复杂的数据分析和高性能的数据计算会显得力不从心。***的数据存储对象,数据的计算处理对象以及数据使用对象之间的映射也使得***变得很复杂。隔离数据的读取和写入操作,才能最大化***性能,提高***可扩展性和安全性。通过高效的数据同步通道以及相应的数据一致性保障方法:实时的数据对账,数据修复来完成数据生产模型到数据计算模型之间的数据一致性保障。
在一些实施例中,如图3所示,提供了一种数据修复方法,该方法可以应用于终端或服务器,也可以由终端和服务器协同执行。下面以该方法应用于计算机设备为例进行说明,该计算机设备可以是终端或服务器。该方法包括以下步骤:
步骤S302,确定数据源***和数据使用方***,并将数据源***和数据使用方***中的一方作为目标数据***,另一方作为与目标数据***对应的对应数据***;数据使用方***存储有从数据源***同步至的数据。
其中,数据源***又称源数据***,指的是数据被写入的***,还可以被称为数据源。比如,源数据***可以是面向事务型的关系数据库***。数据使用方***指的是各种数据使用方或者使用***,可以是关系数据库***或非关系数据库***等。
本申请实施例中涉及到数据源***和数据使用方***之间的数据对账与数据修复。在一些实施例中,数据在作为数据写入端的数据源***被变更写后,通过数据同步通道通过订阅数据变更日志(例如数据变更流水等)感知数据的动态变更,按照可配置的数据同步策略(包括但不限于数据对象映射规则、同步方式、目标数据***等),把变更的数据同步到数据使用方***。因此,数据使用方***存储有从数据源***同步至的数据。
在数据同步之后,计算机设备需要对数据源***和数据使用方***之间的数据进行数据对账,从而保障数据***之间的数据一致性。通常而言,由于数据是从数据源***同步至数据使用方***,因此计算机设备通常将数据源***作为目标数据***,而将数据使用方***作为对应数据***,从而进行从数据源***指向数据使用方数据***之间的数据对账。而本申请实施例中,计算机设备还可以将数据使用方***作为目标数据***,而将数据源***作为对应数据***,从而进行从数据使用方***指向数据源数据***之间的数据对账。
步骤S304,确定与目标数据***适配的第一数据标识信息,并根据第一数据标识信息确定目标数据***中的待对账数据。
其中,在数据对账之前,计算机设备需要确定待进行数据对账的数据。在一些实施例中,数据源***和数据使用方***之间进行数据同步之后,计算机设备记录有发生了数据同步的数据标识信息,比如流水号、主键等信息,这些信息可以保存在***的数据变更日志中。
其中,数据变更日志例如为流水日志。其中,流水日志是中间件层对于数据变更的日志记录。例如,流水日志中包含变更时间、来源、变更请求体、流水类型、流水号以及流水体等数据变更的快照信息,例如流水体可以包括变更事务的详情,比如变更数据的实体/表、变更数据的主键/唯一性索引、数据分区键、变更字段的新旧值等信息。其中,流水日志既可以是一个全局的流水空间,也可以根据不同的业务域或者跨业务域组合不同的实体表形成各个流水空间。例如,一条流水日志对应一个数据变更的事务,即一条流水日志中可能包括一条或者多条数据记录的变更。例如,一条流水日志在一个流水空间有唯一的流水号。
数据标识信息是指标识一个或者多个数据的信息。数据标识信息具体可以是主键或者唯一性键字段。比如,在数据***的数据结构为数据表结构时,主键能够唯一标识数据表中的一行数据,唯一性键字段能够唯一标识数据表中的某一行中的某个数据。当数据***的数据存储结构为图形时,主键字段能够唯一标识一幅图,唯一性键字段能够唯一标识某个图中的某个节点。
因此,在一些实施例中,计算机设备确定与目标数据***适配的第一数据标识信息,包括:从流水日志中确定发生了数据同步的数据标识信息,并将该数据标识信息确定为与目标数据***适配的第一数据标识信息。
当数据源***作为目标数据***、数据使用方***作为对应数据***时,则计算机设备确定与目标数据***适配的第一数据标识信息,包括:计算机设备从流水日志中确定发生了数据同步的数据标识信息,作为与数据源***适配的第一数据标识信息。其中,第一数据标识信息与数据源***适配,指的是第一数据标识信息在数据源***中以该数据源***的数据存储结构呈现。比如,当数据源***的数据存储结构为数据表时,第一数据标识信息可以是数据表的主键或者唯一性键字段,该主键能够唯一标识数据表中的一行数据,该唯一性键字段能够唯一标识数据表中的某一行中的某个数据。
当数据使用方***作为目标数据***、数据源***作为对应数据***时,则计算机设备确定与目标数据***适配的第一数据标识信息,包括:计算机设备从流水日志中确定发生了数据同步的数据标识信息,作为与数据使用方***适配的第一数据标识信息。其中,第一数据标识信息与数据使用方***适配,指的是第一数据标识信息在数据使用方***中以该数据使用方***的数据存储结构呈现。
在确定了第一数据标识信息之后,计算机设备根据第一数据标识信息确定目标数据***中的待对账数据。当数据源***作为目标数据***、数据使用方***作为对应数据***时,计算机设备根据第一数据标识信息确定数据源***中的相应数据作为待进行数据对账的数据,即待对账的数据。当数据使用方***作为目标数据***、数据源***作为对应数据***时,计算机设备根据第一数据标识信息确定数据使用方***中的相应数据作为待对账的数据。
其中,待对账数据存储于目标数据***中的一或多个目标数据实体中。数据实体(Data Entity)指的是数据存储实体,例如关系型数据库或者非关系型数据的逻辑表。目标数据实体与对应数据实体的数据结构为同构或异构,即,目标数据实体可以与对应数据实体为相同的数据结构,也可以为不同的数据结构。相应地,数据结构为同构的情况下数据的结构或者格式相同。而数据结构为异构的情况下,即异构数据(Heterogeneous Data)则是指不同结构或者格式的数据,比如关系数据库中的数据和非关系数据库中的数据。
步骤S306,根据目标数据***与对应数据***之间的数据转换关系,将待对账数据转换为适配于对应数据***的转换数据。
其中,数据转换关系指的是目标数据***与对应数据***中,其中一个***中的数据按照既定的规则和逻辑转换成另一个***中的数据。数据同步、数据对账以及数据修复都需要根据数据转换关系进行数据实体对象映射和转换。
在一些实施例中,当数据存储于数据实体中,则数据转换关系指的是数据实体对象映射(Data Entity Object Mapping)。其中,数据实体对象映射既可以是简单的数据结构转换(比如一对一转换),也可能是复杂的数据转换和计算,包括数据表的一对多映射、数据表的多对一映射、数据表的多对多映射、表的数据行映射,复杂字段(例如protobuf、json等字段)的解析扩展、表的虚字段扩展等复杂计算。其中,复杂字段的解析扩展可能涉及字段的一对多映射,复杂数组的打平扩展可能涉及数据行的一对多扩展。其中,表的虚字段扩展包括从单一数据表的虚拟扩展和从多个数据表的虚拟扩展等。
以数据实体为数据表为例,示例性地,如图4 所示,数据转换关系可以是数据源***中单个数据表Entity_A1与数据使用方***中单个数据表Entity_B1之间的数据实体对象映射。
示例性地,如图5所示,数据转换关系可以是数据源***中多个数据表例如数据表Entity_A1、数据表Entity_A2……等与数据使用方***中单个数据表Entity_B1之间的数据实体对象映射。
示例性地,如图6所示,数据转换关系可以是数据源***中单个数据表Entity_A1与数据使用方***中多个数据表例如数据表Entity_B1、数据表Entity_B2……等之间的数据实体对象映射。
示例性地,如图7所示,数据转换关系可以是数据源***中多个数据表例如数据表Entity_A1、数据表Entity_A2……等与数据使用方***中多个数据表例如数据表Entity_B1、数据表Entity_B2……等之间的数据实体对象映射。
在上述示例中,数据可以存储于数据表中的一个或多个字段(field)中,则数据转换关系还包括字段与字段之间的映射,包括字段的一对多映射、字段的多对一映射、字段的多对多映射、字段的解析扩展、以及虚字段扩展等。
因此,在一些实施例中,目标数据***与对应数据***之间的数据转换关系至少包括数据实体转换关系、字段转换关系、以及数据行转换关系中的一种,其中:实体转换关系,表征目标数据***中的第一数据实体与对应数据***中的第二数据实体之间的转换关系。第一数据实体和第二数据实体例如为数据表。字段转换关系,表征第一数据实体中的实体字段与第二数据实体中的实体字段之间的转换关系。实体字段为数据表中的字段。数据行转换关系,表征第一数据实体中的数据行与第二数据实体中的数据行之间的转换关系。数据行为数据表中的数据行。
其中,数据实体对象映射和具体的数据域(业务)有关,数据对象映射是可定义或者可扩展性配置,例如在实际的应用场景中,计算机设备配置数据转换关系时可以将数据转换关系存储于插件中,并在需要使用时对插件进行调用。
在一些实施例中,当数据源***作为目标数据***、数据使用方***作为对应数据***时,计算机设备根据目标数据***与对应数据***之间的数据转换关系,将待对账数据转换为适配于对应数据***的转换数据,包括:计算机设备根据数据源***与数据使用方***之间的数据转换关系,对数据源***中存储于一或多个数据源***的数据实体的待对账数据进行数据实体对象映射,从而将其转换为适配于数据使用方***的转换数据。转换数据对应在数据使用方***中时,则存储于一或多个数据使用方***的数据实体中。
在另一些实施例中,当数据使用方***作为目标数据***、数据源***作为对应数据***时,则计算机设备根据目标数据***与对应数据***之间的数据转换关系,将待对账数据转换为适配于对应数据***的转换数据,包括:计算机设备根据数据源***与数据使用方***之间的数据转换关系,对数据使用方***中存储于一或多个数据使用方***的数据实体的待对账数据进行数据实体对象映射,从而将其转换为适配于数据源***的转换数据。转换数据对应在数据源***中时,则存储于一或多个数据源***的数据实体中。
示例性地,待对账数据a在目标数据***中存储于目标数据***中的数据实体A(为了以示区分,称为目标数据实体)中的字段field_A1中,则计算机设备将待对账数据a进行数据转换,将其转换为对应数据***中的数据实体A’(称为对应数据实体)中的字段field_A1’中。
又如,待对账数据a在目标数据***中存储于目标数据***中的目标数据实体A中的字段field_A1中,则计算机设备将待对账数据a进行数据转换,将其分别转换为对应数据***中的对应数据实体A’中的字段field_A1’、字段field_ A2’……等中。
再如,待对账数据a在目标数据***中存储于目标数据***中的目标数据实体A中的字段field_A1中,则计算机设备将待对账数据a进行数据转换,将其分别转换为对应数据***中的对应数据实体A1’中的字段field_A1’、对应数据实体B1’ 中的字段field_B1’……等中。
当然并不局限于此,待对账数据在目标数据***中还可以存储于同一个目标数据实体中的多个字段中,也可以分别存储于目标数据***中的不同数据实体的一或多个字段中。
步骤S308,获取基于第一数据标识信息和数据转换关系转换得到的第二数据标识信息,并根据第二数据标识信息从对应数据***中读取与待对账数据相匹配的目标数据。
举例而言,当数据源***作为目标数据***、数据使用方***作为对应数据***时,转换数据指的是按照数据转换关系,将数据源***中的待对账数据进行映射后,对应到数据使用方***时数据使用方***应当存储的数据。但由于数据同步可能发生错误等情况,数据使用方***中实际存储的数据可能与原本的数据不同,因此需要进行数据对账。
由于待对账数据在目标数据***中可以存储于同一个目标数据实体中的一或多个字段中,也可以存储于不同目标数据实体中的一或多个字段中,而待对账数据映射到对应数据***中时,同样既可以存储于同一个对应数据实体中的一或多个字段中,也可以存储于不同对应数据实体中的一或多个字段中。通常而言,字段通过主键信息进行唯一性标识。
因此,计算机设备首先根据第一数据标识信息和数据转换关系,确定第一数据标识信息对应的待对账数据在对应数据***中的第二数据标识信息。该步骤可以预先转换得到(例如在数据同步的过程中)并存储,以在数据对账时使用。
进而,计算机设备根据所获取的第二数据标识信息,从对应数据***中读取与待对账数据相匹配的目标数据。当数据源***作为目标数据***、数据使用方***作为对应数据***时,目标数据则指的是数据使用方***中实际存储的数据。当数据使用方***作为目标数据***、数据源***作为对应数据***时,目标数据则指的是数据源***中实际存储的数据。
需要说明的是,上述术语第一和第二等在本申请中用来描述数据的数据标识,但是这些数据标识不应当被这些术语限制。这些术语仅用来将一个数据标识与另一个数据标识进行区分。例如,第一数据标识可以被称作第二数据标识,并且类似地,第二数据标识可以被称作第一数据标识,而不脱离各种所描述的实施例的范围,但是除非上下文以其他方式明确指出,否则它们不是同一个数据标识。相似的情况还包括第一数据摘要和第二数据摘要等。
步骤S310,比较转换数据与目标数据之间的一致性,得到数据对账结果,并在数据对账结果表征目标数据与待对账数据不一致的情况下,对目标数据与待对账数据中的一种进行数据修复。
在从对应数据***中读取到目标数据之后,计算机设备再对转换数据与目标数据进行比较,通过比较二者之间的一致性得到数据对账结果。当数据对账结果表征转换数据与目标数据一致时,说明数据同步和数据对账的结果一致,则无需进行数据修复。
而在数据对账结果表征转换数据与目标数据不一致的情况下,则说明数据同步出现错误、或者出现数据误写等情况。通常而言,数据源***为各种业务的原始数据,需要进行数据修复的为业务方的数据使用***。因此,当数据对账结果表征转换数据与目标数据一致时,计算机设备对目标数据与待对账数据中的一种进行数据修复。
则相应地,当数据源***作为目标数据***、数据使用方***作为对应数据***时,由于对应数据***对应于目标数据,则计算机设备对目标数据进行数据修复。而当数据使用方***作为目标数据***、数据源***作为对应数据***时,由于数据使用方***对应于目标数据,则计算机设备对待对账数据进行数据修复。
换言之,当数据源***和数据使用方***之间的数据对账结果表征二者中的数据不一致时,则计算机设备均对数据使用方***中的数据进行数据修复。
在一些实施例中,计算机设备进行数据修复可以是进行直接修复,例如,计算机设备根据不一致数据的数据标识信息,从数据源***中读取该数据标识信息所指示的数据,并根据数据转换关系将该数据标识信息所指示的数据转换成适配于数据使用方***的数据并写入数据使用方***,从而对数据使用方***中的数据进行数据修复。
在另一些实施例中,计算机设备进行数据修复还可以是触发重新进行数据同步,则通过重新进行数据同步可以将正确的数据写入数据使用方***,从而对数据使用方***中的数据进行数据修复。
上述数据修复方法中,通过将数据源***和数据使用方***中的一方作为目标数据***,另一方作为与目标数据***对应的对应数据***,然后确定与目标数据***适配的第一数据标识信息,即可根据第一数据标识信息确定目标数据***中的待对账数据,由此能够实现对不同数据***之间的增量或全量对账和修复;再根据目标数据***与对应数据***之间的数据转换关系,将待对账数据转换为适配于对应数据***的转换数据,无论数据源***和数据使用方***各自使用的数据存储结构相同还是不同,都能够实现数据的对账与修复,提高了数据***的可扩展性,能够满足各种业务方的需要;并且,再获取基于第一数据标识信息和数据转换关系转换得到的第二数据标识信息,并根据第二数据标识信息从对应数据***中读取与待对账数据相匹配的目标数据,通过比较转换数据与目标数据之间的一致性,得到数据对账结果,实现了数据源***和数据使用方***之间的数据对账;在数据对账结果表征目标数据与待对账数据不一致的情况下,再对目标数据与待对账数据中的一种进行数据修复,从而保障数据的一致性,从而提高业务的可用性和稳定性。
数据对账是为了对数据同步后的数据进行一致性检查,从而在发现不一致数据后进行数据修复。在一些实施例中,计算机设备对数据源***和数据使用方***进行数据同步的步骤包括:当检测到数据源***对应的数据变更日志发生变更时,根据发生变更的数据变更日志,确定数据源***中发生变更的第三数据标识信息;从数据源***中获取第三数据标识信息所指示的源数据;根据预先设定的数据同步配置信息,将第三数据标识信息所指示的源数据同步至数据使用方***;数据同步配置信息至少包括数据同步周期和数据转换关系。
其中,当数据源***写入了数据或者数据源***写入的数据发生了数据变更时,计算机设备检测到数据源***对应的数据变更日志发生变更。例如,数据变更日志为流水日志,而流水日志由流水号服务(例如序列号服务或者Sequence服务等)维护流水号。例如,每当产生新的变更数据时,流水空间中的流水号也随之单调递增。示例性地,在进行广告数据变更发布的过程中,计算机设备若感知到相关流水空间的流水号的变化,则读取流水日志,并获取变更的数据记录,然后读取数据源***中变更的数据。
进而,计算机设备根据发生变更的数据变更日志,从中确定并提取数据源***中发生变更的数据标识信息,为了以示区分,称为第三数据标识信息。例如,计算机设备从流水日志中提取发生数据变更的主键信息等。则计算机设备即可根据该第三数据标识信息,从数据源***中获取第三数据标识信息所指示的源数据。例如,计算机设备根据主键信息确定数据实体,并进一步确定数据实体中的数据行对应的数据值、或者确定数据实体中的字段对应的数据值等。
由此,计算机设备即可根据预先设定的数据同步配置信息,将第三数据标识信息所指示的源数据同步至数据使用方***。其中,数据同步配置信息至少包括数据同步周期和数据转换关系。数据同步周期指的是预先设置的数据同步的周期,比如每隔24小时进行一次数据同步等。
上述实施例中,通过数据同步配置信息进行数据同步,能够将同构或者异构的数据源***和数据使用方***之间进行数据的转换和映射,数据源***中的数据可以根据业务方的实际需求进行不同的数据转换,由此能够支持各种各样的复杂业务的数据使用需求,最大化数据存储***的可扩展性;同时通过数据同步机制将数据的写入与读取进行隔离,能够保障数据的安全性。
其中,计算机设备可以对数据源***和数据使用方***之间进行全量对账。则在一些实施例中,计算机设备确定与目标数据***适配的第一数据标识信息,包括:当目标数据***为数据源***,对应数据***为数据使用方***,且到达全量源数据获取时间时,从数据源***的备份***中确定符合全量对账条件的源数据;根据符合全量对账条件的源数据所对应的数据标识信息,确定与目标数据***适配的第一数据标识信息。
其中,全量源数据获取时间可以是预先设置的全量对账周期,比如每天凌晨在业务空闲时或者每周的某个设定时间(具体的设定时间依据业务的情况设定),也可以是每隔24小时、每周的第一天、或者每月的第一天等。通常而言,由于全量对账涉及到的数据量较大,为了保障数据源***的稳定性,计算机设备通过利用数据源***的备份***来进行全量对账,以避免影响正常的业务操作事务。
则相应地,当目标数据***为数据源***,对应数据***为数据使用方***,且到达全量源数据获取时间时,计算机设备从数据源***的备份***中确定符合全量对账条件的源数据。
在一些实施例中,计算机设备根据符合全量对账条件的源数据所对应的数据标识,确定与目标数据***适配的第一数据标识信息,包括:将数据源***的备份***中存储的全部源数据所对应的数据标识,均作为与目标数据***适配的第一数据标识信息。
而由于全量数据的庞大,计算机设备可以设置忽略的数据,比较忽略某种状态的数据,或者忽略时间戳在某个时刻之前的数据等。则相应地,全量对账条件包括数据状态条件、时间段条件等中的一种或多种。
进而,在另一些实施例中,计算机设备根据符合全量对账条件的源数据所对应的数据标识,确定与目标数据***适配的第一数据标识信息,包括:基于全量对账条件对数据源***的备份***中存储的全部源数据进行筛选,剔除不符合全量对账条件的源数据,并获取符合全量对账条件的源数据所对应的数据标识,并将这些数据标识均作为与目标数据***适配的第一数据标识信息。
上述实施例中,通过到达全量源数据获取时间时,利用备份***对数据源***中的源数据进行全量对账,从而定期进行更长周期性的数据全量快照比对,能够与数据修复进行结合以实现***启动前的存量数据导入的功能,提高了数据使用方***中数据的可靠性和稳定性。
此外,计算机设备还可以对数据源***和数据使用方***之间进行增量对账。在一些实施例中,计算机设备确定与目标数据***适配的第一数据标识信息,包括:当目标数据***为数据源***,对应数据***为数据使用方***时,获取当前对账周期内同步至数据使用方***的已同步源数据;根据已同步源数据的数据标识信息,确定与目标数据***适配的第一数据标识信息。
其中,相较于全量对账而言,增量对账是更短周期性的数据增量快照比对,例如,增量对账的对账周期例如为10分钟、30分钟、或者1小时等。则相应地,当目标数据***为数据源***,对应数据***为数据使用方***时,计算机设备获取当前对账周期内同步至数据使用方***的已同步源数据,其中,已同步源数据即指的是在当前的数据对账过程之前的数据同步过程中发生了数据同步的源数据。
进而,计算机设备根据已同步源数据的数据标识信息,确定与目标数据***适配的第一数据标识信息,包括:将已同步源数据的数据标识信息,作为与目标数据***适配的第一数据标识信息。
上述实施例中,通过在到达增量对账的对账周期时,获取已同步源数据的数据标识信息来确定哪些数据需要进行数据对账,能够实现较短周期性的数据快照比对,能够及时发现数据同步过程后数据使用方***与数据源***不一致的数据,进而能够及时进行数据修复,提高了数据使用方***中数据的可靠性和稳定性。
在实际的应用场景中,由于数据同步之间可能存在延迟,数据对账检测出的数据的不一致可能并不是真正的数据不一致,只是因为延迟导致数据使用方***中的数据还没来得及更新。相应地,在一些实施例中,计算机设备根据已同步源数据的数据标识信息,确定与目标数据***适配的第一数据标识信息,包括:确定已同步源数据同步至数据使用方***的同步时间;确定同步时间信息与当前操作时间之间的时间差,并在时间差大于预设时延时长的情况下,将已同步源数据的数据标识信息作为与目标数据***适配的第一数据标识信息。
其中,计算机设备在进行数据同步的过程中,记录有源数据同步至数据使用方***的同步时间。当前操作时间指的是当前进行数据对账的操作时间。示例性地,计算机设备可以在数据源***中源数据所位于的数据实体中设置时间戳字段,并在该时间戳字段下记录源数据同步至数据使用方***的同步时间。
进而,计算机设备在数据对账的过程中,通过提取时间戳字段中所存储的已同步源数据同步至数据使用方***的同步时间,并计算同步时间信息与当前操作时间之间的时间差。
在时间差小于预设时延时长的情况下,说明当前很可能处于通信延迟中,则计算机设备可以不在当前对账周期内对该已同步源数据进行数据对账。其中,预设时延时长是预先设置的由于通信延迟所造成的数据同步的滞后时间,比如15秒、5分钟等。
而在时间差大于预设时延时长的情况下,数据的不一致不太可能是因为通信延迟造成的,则计算机设备将该已同步源数据的数据标识信息作为与目标数据***适配的第一数据标识信息。
上述实施例中,通过根据已同步源数据的同步时间与当前操作时间之间的时间差来确定数据的不一致是否源于通信延迟,并在确定并非由于通信延迟引起的情况下,再确定哪些数据需要进行数据对账,能够及时发现数据同步过程后数据使用方***与数据源***不一致的数据,进而能够及时进行数据修复,提高了数据使用方***中数据的可靠性和稳定性。
在其中一个实施例中,确定与目标数据***适配的第一数据标识信息,包括:当目标数据***为数据使用方***,对应数据***为数据源***时,获取在当前对账周期内数据使用方***新增的新增数据;根据新增数据的数据标识信息,确定与目标数据***适配的第一数据标识信息。
具体地,在目标数据***为数据使用方***、对应数据***为数据源***时,计算机设备可确定在当前对账周期内数据适用方***新增的数据,称作新增数据。该新增数据可以包括在当前对账周期内从数据源***同步至数据适用方***的数据,还可以包括用户在当前对账周期内直接写入至数据使用方***的数据。计算机设备将新增数据的数据标识,作为与目标数据***适配的第一数据标识信息。
由于数据转换关系即可以是数据表的映射,也可以是数据行的映射,还可以是实体字段的映射。具体到哪一数据行或者实体字段,则可以通过数据标识信息来指示。而由于数据源***和数据使用方***各自使用的数据结构可以同构或异构,相应的数据标识也会存在映射关系。因此,在一些实施例中,根据目标数据***与对应数据***之间的数据转换关系,将待对账数据转换为适配于对应数据***的转换数据,包括:根据目标数据***与对应数据***之间的数据转换关系,将第一数据标识信息转换为第二数据标识信息;按照第二数据标识信息所指示的对应数据实体,将待对账数据转换成对应于对应数据实体的转换数据。
具体地,计算机设备根据目标数据***与对应数据***之间的数据转换关系,将第一数据标识信息转换为第二数据标识信息。计算机设备将第一数据标识信息转换为第二数据标识信息,可以是将单个第一数据标识信息转换为单个第二数据标识信息,可以是将单个第一数据标识信息转换为多个第二数据标识信息,可以是将多个第一数据标识信息转换为单个第二数据标识信息,也可以是将多个第一数据标识信息转换为多个第二数据标识信息。
进而,计算机设备在得到第二数据标识信息之后,按照对应数据***的数据结构,确定该第二数据标识信息所指示的对应数据实体,并将待对账数据转换成对应于对应数据实体的转换数据。
示例性地,计算机设备通过主键信息之间的转换,将目标数据***中的主键A(第一数据标识信息)按照对应数据***中的数据结构,转换为主键A’(第二数据标识信息)。其中,主键A在目标数据***中指示一或多个数据行a(或者一或多个实体字段b)的数据(即待对账数据),而主键A’在进行转换之后,对应于对应数据***中后,指示一或多个数据行a’(或者一或多个实体字段b’)的数据(即转换数据)。主键A所指示的数据所在数据实体与主键A’所指示的数据所在数据实体可以相同或不同。
上述实施例中,通过数据转换关系将第一数据标识信息转换为第二数据标识信息,再基于第二数据标识信息将待对账数据转换成对应于对应数据实体的转换数据,能够将同构或者异构的数据源***和数据使用方***之间进行数据的转换和映射,数据源***中的数据可以根据业务方的实际需求进行不同的数据转换,由此能够支持各种各样的复杂业务的数据使用需求,最大化数据存储***的可扩展性;同时通过数据同步机制将数据的写入与读取进行隔离,能够保障数据的安全性。
无论是全量数据对账还是增量数据对账,本质上都是从大批量数据集中找出不一致的少量甚至是极少量数据的方法。本申请实施例中的数据对账包括单行数据的对账和批量数据的对账。
为此,在一些实施例中,目标数据位于至少一个目标数据行中;数据对账结果包括行数据对账结果;比较转换数据与目标数据之间的一致性,得到数据对账结果,包括:在得到多个转换数据,且多个转换数据位于至少一个转换数据行中,以及得到多个目标数据,且多个目标数据位于至少一个目标数据行的情况下,确定各转换数据行和各目标数据行的行标识;将具有相同行标识的转换数据行和目标数据行进行一致性比较,得到行数据对账结果。
其中,计算机设备根据第一数据标识信息确定多个转换数据,并且多个转换数据位于至少一个转换数据行中。比如,多个转换数据均位于同一个转换数据行中。又如,多个转换数据分别位于同一数据表的不同数据行中。又如,多个转换数据分别位于不同数据表的数据行中,且不同数据表的数据行中该多个转换数据对应于相同的第一数据标识信息。
类似地,计算机设备在读取得到多个目标数据、且多个目标数据位于至少一个目标数据行的情况下,确定这些目标数据各自对应的行标识。其中,行标识用于表示目标数据位于哪一数据表的哪一数据行,例如分区键等。进而,计算机设备将具有相同行标识的转换数据行和目标数据行进行一致性比较,从而得到行数据对账结果。上述实施例中,通过对于单个或多个数据行的转换数据和目标数据进行一致性比较,根据行数据对账结果得到数据对账结果,能够实现按数据主键维度的单条或者多条数据的修复,保障了***之间数据的一致性。
在一些实施例中,计算机设备将具有相同行标识的转换数据行和目标数据行进行一致性比较,包括:对于具有相同行标识的转换数据行和目标数据行,按照各转换数据在转换数据行中的排列先后顺序,以及各目标数据行在目标数据行中的排列顺序,将具有相同排列顺序的转换数据和目标数据进行一致性比较。
其中,转换数据在转换数据行中的排列先后顺序和目标数据行在目标数据行中的排列顺序,例如可以是数据行中各个实体字段的排列先后顺序。则计算机设备将对于具有相同行标识的转换数据行和目标数据行,按照数据行中各个实体字段的排列先后顺序,将具有相同排列顺序的转换数据和目标数据进行一致性比较。
上述实施例中,通过对于多个数据行的转换数据和目标数据,按照实体字段的顺序先后进行一致性比较,能够实现按字段维度的单条或者多条数据的修复,保障了***之间数据的一致性。
示例性地,在数据源***为目标数据***、数据使用方***为对应数据***的情况下,计算机设备基于数据行进行一致性比较的步骤可以如图8所示。计算机设备根据主键信息(对应于数据标识信息)定位数据行,其中转换数据对应于至少一个转换数据行,每个转换数据行对应于一个行标识。计算机设备可以根据数据转换关系所表示的数据对象映射的方式,确定第二数据标识信息对应的目标数据行和各个目标数据行中的目标数据,并按照行标识对同一个行标识的转换数据和目标数据进行比较,如果数据一致则不做处理,而如果数据不一致则进行数据修复。
示例性地,计算机设备根据主键(PK)从数据源***的数据实体(例如数据表)中读取对应的数据行Row = {v_1, v_2,…,v_m},其中v_1, v_2,…v_m 分别是数据实体中的字段field_1,字段field_2,……,字段field_m下对应的数据值。由于数据源***中源数据所在的数据实体到数据使用方***的映射,还可能涉及数据源***中的多个附属数据实体的数据行的映射,因此计算机设备还可能读取到由多个数据实体的多个数据行构成的数据行集合Rows_x。
进而,计算机设备依据数据转换关系,将数据源***中源数据所在的数据实体(例如源数据所在的行数据Row或数据行集合Rows_x)转换为转换数据行:RowMap = {v_1, v_2,…,v_m},其中v_1, v_2,…,v_m分别是转换数据行中转换数据所属字段field_1,字段field_2,……,字段field_m对应的值。类似地,映射后得到的转换数据也可以是多个数据行构成的数据行集合RowMaps={rowmap_1,rowmap_2,…,rowmap_n},其中rowmap_1,rowmap_2,…,rowmap_n是n个RowMap结构的数据行。其中,RowMaps集合是按照行主键信息排序的有序集合。
计算机设备从RowMap或者RowMaps中读取主键信息,并根据主键信息从数据使用方***中读取对应的数据行:DestRow = {d_v_1, d_v_2,…,d_v_m),其中,d_v_1, d_v_2,…,d_v_m是目标数据行中对应实体字段的对应值。同样,从目标数据读取的数据可能是多行数据集合:DestRows={destrow_1, destrow_2,……,destrow_n}。DestRows也是按照行主键信息排序的有序集合。
由此,计算机设备根据RowMap和DestRow集合的元素(值),或者是比较RowMaps和DestRows。即单行数据的比较和多行数据的比较。示例性地,如图9所示,计算机设备对于RowMap 和 DestRow集合中的数据按照实体字段的先后顺序 v_1, v_2,…,v_m逐个比较,并记录不一致的数据。
为了后续数据对账效率,在一些实施例中,计算机设备可以在发现不一致的数据后,可以继续比较完成所有的值,并记录和统计出现不一致数据的实体字段。有了一定时间段***的运行统计数据后,计算机设备则可以自动改进实体字段进行比较的顺序,比如按照不一致数据所在的实体字段出现的概率从高到低进行比较。
在一些实施例中,数据对账结果包括列数据对账结果。计算机设备比较转换数据与目标数据之间的一致性,得到数据对账结果,包括:在得到多个转换数据,且多个转换数据位于矩阵转换数据,以及得到多个目标数据,多个目标数据位于多个目标数据矩阵中的情况下,确定转换数据矩阵中各转换数据列的列标识,以及确定目标数据矩阵中的各目标数据矩阵列的列标识;将具有相同列标识的转换数据列和目标数据列进行一致性比较,得到列数据对账结果。
其中,计算机设备根据第一数据标识信息确定多个转换数据,并且多个转换数据位于转换数据矩阵中。类似地,计算机设备读取得到多个目标数据,并且多个目标数据位于目标数据矩阵中。
仍以上述示例为例,多个数据行构成的数据行集合RowMaps和DestRows之间的比较,本质上是两个具有相同列值类型的n行m列矩阵的比较。由于这种列具有相同值类型的特性,多行RowMaps和DestRows的比较采用按列比较的逐一比较的方法。发现有不一致的列元素,比较结果即为数据不一致,否则为一致数据。因此,计算机设备确定列标识,并将具有相同列标识的转换数据行和目标数据行进行一致性比较,得到行数据对账结果。比如,计算机设备可将RowMaps中的第一列数据与DestRows中的第一列数据进行比较,将RowMaps中的第二列数据与DestRows中的第二列数据进行比较,等等,通过对列进行比较,来确定不一样的转换数据和目标数据。
上述实施例中,通过转换数据按行或者列对数据进行比较,由于一行或者一列中包括有多个数据,因此可一次性对多个数据进行比较,从而提高了数据对账效率。
在一些实施例中,在得到多个转换数据的情况下,转换数据存在于转换数据集合;在得到多个目标数据的情况下,目标数据存在于目标数据集合。则计算机设备比较转换数据与目标数据之间的一致性,得到数据对账结果,包括:对转换数据集合中的转换数据进行哈希运算,得到第一数据摘要;对目标数据集合中的目标数据进行哈希运算,得到第二数据摘要;比较第一数据摘要和第二数据摘要,并根据第一数据摘要和第二数据摘要的比较结果确定数据对账结果。
为了进一步提高数据对账效率,计算机设备在获取到转换数据集合和目标数据集合后,比如,在得到RowMaps和DestRows后,可分别对转换数据集合和目标数据集合进行哈希运算,得到数据集合的摘要信息。即,计算机设备对转换数据集合中的转换数据进行哈希运算,得到第一数据摘要,并且,计算机设备对目标数据集合中的目标数据进行哈希运算,得到第二数据摘要。
进而,计算机设备比较第一数据摘要和第二数据摘要,并根据第一数据摘要和第二数据摘要的比较结果确定数据对账结果。当第一数据摘要和第二数据摘要相同的时候,计算机设备即可直接判断两个数据集合的数据相同。当第一数据摘要和第二数据摘要不同的时候,计算机设备即可进一步进行比较,例如可以按照上述实施例中的方式进行单行数据行比较或者批量数据行比较。
上述实施例中,对于包括多个数据的数据集合之间的比较,通过哈希运算并比较数据摘要来获取数据对账结果,由于不一致数据往往是少部分数据甚至极少部分数据,因此能够极大地提高数据对账效率。
示例性地,在数据源***为目标数据***、数据使用方***为对应数据***的情况下,计算机设备基于数据集合进行一致性比较的流程可如图10所示。对于批量的转换数据(即转换数据集合)与目标数据集合之间的一致性比较,计算机设备可以先获取转换数据转换得到的目标数据构成的目标数据集合。然后计算机设备对两个数据集合进行比较,当不一致的情况下,计算机设备例如可以再进行单个数据行的比较。
示例性地,计算机设备根据转换数据集合中转换数据各自对应的主键信息得到批量主键,并根据批量主键确定转换数据构成的转换数据集合:Rows=(row_1, row_2, …,row_n),其中每个row_ = {v_1, v_2, … …v_m}。然后计算机设备根据数据转换关系,将转换数据集合Rows转换为目标数据集合,RowMaps={rowmap_1,rowmap_2,…,rowmap_n},其中,rowmap_x={v_1, v_2, … ,v_m}。其中,RowMaps是按照行数据主键排序的有序集合。
计算机设备再根据映射后得到的目标数据对象集合RowMaps中每个目的rowmap_x各自对应的主键信息,从数据使用方***中获取目标数据集合的键集合:RowKeys =(rowkey_1, rowkey_2, … … rowkey_n),再基于RowKeys读取到目标数据DestRows ={destrow_1, destrow_2, …, destrow_n}。
进而,计算机设备比较两个集合RowMaps和DestRows,既可以按照上述实施例中单行数据行或者批量数据(RowMaps和DestRows)的比较方式,也可以按照基于数据摘要进行比较的方式,以此确定不一致的数据。有了一定时间段***的运行统计数据后,可以自动改进字段值比较的顺序,按照不一致字段出现的概率从高到低比较。
在一些实施例中,在数据对账结果表征目标数据与待对账数据不一致的情况下,对目标数据与待对账数据中的一种进行数据修复,包括:在目标数据***为数据源***,对应数据***为数据使用方***,且数据对账结果表征目标数据与待对账数据不一致时,将数据对账不一致的目标数据确定为待修复数据;根据待修复数据对应的数据标识,从数据源***中读取与待修复数据对应的源数据;根据数据源***与数据使用方***之间的数据转换关系,将与待修复数据对应的源数据转换为适配于数据使用方***的更新数据;将更新数据替换数据使用方***中的待修复数据。
其中,在目标数据***为数据源***,对应数据***为数据使用方***,且数据对账结果表征目标数据与待对账数据不一致时,计算机设备将数据对账不一致的目标数据确定为待修复数据。进而,计算机设备获取待修复数据对应的数据标识,并且根据待修复数据对应的数据标识,直接从数据源***中读取与待修复数据对应的源数据。
由此,计算机设备根据数据源***与数据使用方***之间的数据转换关系,将与待修复数据对应的源数据转换为适配于数据使用方***的更新数据,然后将更新数据替换数据使用方***中的待修复数据,从而完成对数据使用方***中与数据源***不一致数据的数据修复。
上述实施例中,通过对不一致数据进行数据修复,保障了数据使用方***中数据与数据源***的一致性,进而提高了业务的可用性和稳定性。
当数据源***和数据使用方***之间的数据对账结果表征二者中的数据不一致时,则计算机设备均对数据使用方***中的数据进行数据修复。则在另一些实施例中,在数据对账结果表征目标数据与待对账数据不一致的情况下,计算机设备对目标数据与待对账数据中的一种进行数据修复,包括:在目标数据***为数据使用方***,对应数据***为数据源***,且数据对账结果表征目标数据与待对账数据不一致时,将数据对账不一致的待对账数据确定为待修复数据;根据待修复数据对应的数据标识,从数据源***中读取与待修复数据对应的源数据;根据数据源***与数据使用方***之间的数据转换关系,将源数据转换为适配于数据使用方***的更新数据;将更新数据替换数据使用方***中的待修复数据。
其中,在目标数据***为数据使用方***,对应数据***为数据源***,且数据对账结果表征目标数据与待对账数据不一致时,计算机设备将数据对账不一致的待对账数据确定为待修复数据。进而,计算机设备获取待修复数据对应的数据标识,并且根据待修复数据对应的数据标识,同样也是从数据源***中读取与待修复数据对应的源数据。
由此,计算机设备根据数据源***与数据使用方***之间的数据转换关系,将与待修复数据对应的源数据转换为适配于数据使用方***的更新数据,然后将更新数据替换数据使用方***中的待修复数据,从而完成对数据使用方***中与数据源***不一致数据的数据修复。
上述实施例中,当数据源***和数据使用方***之间的数据对账结果表征二者中的数据不一致时,通过均对数据使用方***中的数据进行数据修复,保障了数据使用方***中数据与数据源***的一致实现了隔性,并且使得数据源***中数据的写入与数据使用方***中数据的读取与使用离,提高了***的安全性。
在其中一个实施例中,计算机设备还可按照下述方式对数据进行修复:数据主键维度的单条或者多条数据修复;按用户维度的批量修复;按时间维度或者时间段维度的数据修复;同步通道失败日志文件的修复;综合维度的数据对账以及修复。数据主键维度的单条或者多条数据修复是指,以主键为维度,将主键所对应的一行或多行待修复数据进行修复。按用户维度的批量修复是指以用户为维度进行修复,将基于某个用户所对应的待修复数据进行修复。同步通道失败日志文件的修复是指按照同步通道失败日志文件,将同步失败的待修复数据进行修复。综合维度的数据对账以及修复是指综合上述方式对待修复数据进行修复。
在另一些实施例中,计算机设备对目标数据与待对账数据中的一种进行数据修复,包括:在数据源***对应的数据变更日志中增加模拟变更记录,并根据模拟变更记录生成数据重放指令;基于数据重放指令,触发数据源***根据预先设定的数据同步配置信息执行数据同步过程,以对数据使用方***进行数据修复。
除了从数据源***中获取最新的数据并替换至数据使用方***的方式以外,计算机设备还可以通过在数据源***对应的数据变更日志中增加模拟变更记录,并根据模拟变更记录生成数据重放指令。其中,数据重放(Replay)指令指的是通过是模拟产生数据变更日志或者数据变更流水,触发数据同步过程重新同步数据以达到数据修复的目的。
因此,计算机设备通过模拟变更记录生成数据重放指令后,基于该数据重放指令,触发数据源***根据预先设定的数据同步配置信息执行数据同步过程,以对数据使用方***进行数据修复。数据重放可以触发全部数据的重新同步,也可以触发不一致数据的数据修复。
上述实施例中,通过重新触发数据同步进行数据修复,能够利用数据重放机制进行高效数据修复,有效地保障了数据的一致性。
本申请还提供一种应用场景,该应用场景应用上述的数据修复方法。具体地,该数据修复方法在该应用场景的应用例如如下:计算机设备确定数据源***和数据使用方***,并将数据源***作为目标数据***,将数据使用方***作为对应数据***。其中,数据源***可为用以存放多个业务的广告投放信息,比如,可为用以存放与影视业务相关的广告投放信息、存放与在线商城业务相关的广告投放信息等,相应的,数据使用方***可为需要使用与影视业务相关的广告投放信息进行广告投放的第一***,或者可为需要使用与在线商城业务相关的广告投放信息进行广告投放的第二***。计算机设备确定与数据源***适配的第一数据标识信息,并根据第一数据标识信息确定数据源***中的待对账数据。计算机设备根据数据源***与数据使用方***之间的数据转换关系,将待对账数据转换为适配于数据使用方***的转换数据,并获取基于第一数据标识信息和数据转换关系转换得到的第二数据标识信息,并根据第二数据标识信息从数据使用方***中读取与待对账数据相匹配的目标数据。进而,计算机设备比较转换数据与目标数据之间的一致性,得到数据对账结果,并在数据对账结果表征目标数据与待对账数据不一致的情况下,对数据使用方***中的数据进行数据修复。比如,计算机设备可按照上述方式确定数据源***中的与影视业务相关的广告投放信息,是否与上述的第一***中的与影视业务相关的广告投放信息一致,若不一致时,对上述的第一***中的与影视业务相关的广告投放信息进行修复,以便后续用户基于第一***中的与影视业务相关的广告投放信息,在影视业务领域进行广告投放。
当然并不局限于此,本申请提供的数据修复方法还可以应用在其他应用场景中,例如广告投放场景、数据计算场景、或者数据检索场景等等。
在一些具体的示例中,本申请提供的数据修复方法的整体结构可以如图11所示,数据源***的主***通过数据同步将源数据同步至数据使用方***。在预先设定的对账周期内,计算机设备可以基于数据源***中的数据进行数据的增量对账,并在数据对账结果表征数据存在不一致的情况进行数据修复。计算机设备还可以基于数据源***的备份***进行数据的全量对账,并在数据对账结果表征数据存在不一致的情况进行数据修复。由此,实现了对数据使用方中的数据修复和更新。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据修复方法的数据修复装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据修复装置实施例中的具体限定可以参见上文中对于数据修复方法的限定,在此不再赘述。
在一些实施例中,如图12所示,提供了一种数据修复装置1200,包括:确定模块1201、映射模块1202、读取模块1203和修复模块1204,其中:
确定模块1201,用于确定数据源***和数据使用方***,并将数据源***和数据使用方***中的一方作为目标数据***,另一方作为与目标数据***对应的对应数据***;数据使用方***存储有从数据源***同步至的数据;
确定模块1201,还用于确定与目标数据***适配的第一数据标识信息,并根据第一数据标识信息确定目标数据***中的待对账数据;
映射模块1202,用于根据目标数据***与对应数据***之间的数据转换关系,将待对账数据转换为适配于对应数据***的转换数据;
读取模块1203,用于获取基于第一数据标识信息和数据转换关系转换得到的第二数据标识信息,并根据第二数据标识信息从对应数据***中读取与待对账数据相匹配的目标数据;
修复模块1204,用于比较转换数据与目标数据之间的一致性,得到数据对账结果,并在数据对账结果表征目标数据与待对账数据不一致的情况下,对目标数据与待对账数据中的一种进行数据修复。
在一些实施例中,待对账数据存储于目标数据***中的一或多个目标数据实体中,与待对账数据相匹配的目标数据存储于对应数据***中的一或多个对应数据实体中;目标数据实体与对应数据实体的数据结构为同构或异构。
在一些实施例中,目标数据***与对应数据***之间的数据转换关系至少包括数据实体转换关系、字段转换关系、以及数据行转换关系中的一种,其中:实体转换关系,表征目标数据***中的第一数据实体与对应数据***中的第二数据实体之间的转换关系;字段转换关系,表征第一数据实体中的实体字段与第二数据实体中的实体字段之间的转换关系;数据行转换关系,表征第一数据实体中的数据行与第二数据实体中的数据行之间的转换关系。
在一些实施例中,上述装置还包括同步模块,用于当检测到数据源***对应的数据变更日志发生变更时,根据发生变更的数据变更日志,确定数据源***中发生变更的第三数据标识信息;从数据源***中获取第三数据标识信息所指示的源数据;根据预先设定的数据同步配置信息,将第三数据标识信息所指示的源数据同步至数据使用方***;数据同步配置信息至少包括数据同步周期和数据转换关系。
在一些实施例中,确定模块还用于当目标数据***为数据源***,对应数据***为数据使用方***,且到达全量源数据获取时间时,从数据源***的备份***中确定符合全量对账条件的源数据;根据符合全量对账条件的源数据所对应的数据标识,确定与目标数据***适配的第一数据标识信息。
在一些实施例中,确定模块还用于当目标数据***为数据源***,对应数据***为数据使用方***时,获取当前对账周期内同步至数据使用方***的已同步源数据;根据已同步源数据的数据标识信息,确定与目标数据***适配的第一数据标识信息。
在一些实施例中,确定模块还用于确定已同步源数据同步至数据使用方***的同步时间;确定同步时间信息与当前操作时间之间的时间差,并在时间差大于预设时延时长的情况下,将已同步源数据的数据标识信息作为与目标数据***适配的第一数据标识信息。
在一些实施例中,确定模块还用于当目标数据***为数据使用方***,对应数据***为数据源***时,获取在当前对账周期内数据使用方***新增的新增数据;根据新增数据的数据标识信息,确定与目标数据***适配的第一数据标识信息。
在一些实施例中,映射模块还用于根据目标数据***与对应数据***之间的数据转换关系,将第一数据标识信息转换为第二数据标识信息;按照第二数据标识信息所指示的对应数据实体,将待对账数据转换成对应于对应数据实体的转换数据。
在一些实施例中,目标数据位于至少一个目标数据行中;数据对账结果包括行数据对账结果;修复模块还用于在得到多个转换数据,且多个转换数据位于至少一个转换数据行中,以及得到多个目标数据,且多个目标数据位于至少一个目标数据行的情况下,确定各转换数据行和各目标数据行的行标识;将具有相同行标识的转换数据行和目标数据行进行一致性比较,得到行数据对账结果。
在一些实施例中,修复模块还用于对于具有相同行标识的转换数据行和目标数据行,按照各转换数据在转换数据行中的排列先后顺序,以及各目标数据行在目标数据行中的排列顺序,将具有相同排列顺序的转换数据和目标数据进行一致性比较。
在一些实施例中,数据对账结果包括列数据对账结果;修复模块还用于在得到多个转换数据,且多个转换数据位于转换数据矩阵,以及得到多个目标数据,多个目标数据位于目标数据矩阵的情况下,确定转换数据矩阵中各转换数据列的列标识,以及确定目标数据矩阵中的各目标数据矩阵列的列标识;将具有相同列标识的转换数据列和目标数据列进行一致性比较,得到列数据对账结果。
在一些实施例中,在得到多个转换数据的情况下,转换数据存在于转换数据集合;在得到多个目标数据的情况下,目标数据存在于目标数据集合;修复模块还用于对转换数据集合中的转换数据进行哈希运算,得到第一数据摘要;对目标数据集合中的目标数据进行哈希运算,得到第二数据摘要;比较第一数据摘要和第二数据摘要,并根据第一数据摘要和第二数据摘要的比较结果确定数据对账结果。
在一些实施例中,修复模块还用于在目标数据***为数据源***,对应数据***为数据使用方***,且数据对账结果表征目标数据与待对账数据不一致时,将数据对账不一致的目标数据确定为待修复数据;根据待修复数据对应的数据标识信息,从数据源***中读取与待修复数据对应的源数据;根据数据源***与数据使用方***之间的数据转换关系,将与待修复数据对应的源数据转换为适配于数据使用方***的更新数据;将更新数据替换数据使用方***中的待修复数据。
在一些实施例中,修复模块还用于在目标数据***为数据使用方***,对应数据***为数据源***,且数据对账结果表征目标数据与待对账数据不一致时,将数据对账不一致的待对账数据确定为待修复数据;根据待修复数据对应的数据标识,从数据源***中读取与待修复数据对应的源数据;根据数据源***与数据使用方***之间的数据转换关系,将源数据转换为适配于数据使用方***的更新数据;将更新数据替换数据使用方***中的待修复数据。
在一些实施例中,修复模块还用于在数据源***对应的数据变更日志中增加模拟变更记录,并根据模拟变更记录生成数据重放指令;基于数据重放指令,触发数据源***根据预先设定的数据同步配置信息执行数据同步过程,以对数据使用方***进行数据修复。
上述数据修复装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一些实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过***总线连接,通信接口通过输入/输出接口连接到***总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储待对账数据、目标数据、或者数据变更日志等。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据修复方法。
本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一些实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一些实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一些实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (33)

1.一种数据修复方法,其特征在于,所述方法包括:
确定数据源***和数据使用方***,并将所述数据源***和所述数据使用方***中的一方作为目标数据***,另一方作为与所述目标数据***对应的对应数据***;所述数据使用方***存储有从所述数据源***同步的数据;
确定与所述目标数据***适配的第一数据标识信息,并根据所述第一数据标识信息确定所述目标数据***中的待对账数据;
根据所述目标数据***与所述对应数据***之间的数据转换关系,将所述待对账数据转换为适配于所述对应数据***的转换数据;
获取基于所述第一数据标识信息和所述数据转换关系转换得到的第二数据标识信息,并根据所述第二数据标识信息从所述对应数据***中读取与所述待对账数据相匹配的目标数据;
比较所述转换数据与所述目标数据之间的一致性,得到数据对账结果,并在所述数据对账结果表征所述目标数据与所述待对账数据不一致的情况下,对所述目标数据与所述待对账数据中的一种进行数据修复;
所述在所述数据对账结果表征所述目标数据与所述待对账数据不一致的情况下,对所述目标数据与所述待对账数据中的一种进行数据修复,包括:
确定待修复数据;在所述目标数据***为所述数据源***,所述对应数据***为所述数据使用方***时,所述待修复数据为数据对账不一致的目标数据;在所述目标数据***为所述数据使用方***,所述对应数据***为所述数据源***时,所述待修复数据为数据对账不一致的待对账数据;
根据所述待修复数据对应的数据标识,从所述数据源***中读取与所述待修复数据对应的源数据;
根据所述数据源***与所述数据使用方***之间的数据转换关系,将所述源数据转换为适配于所述数据使用方***的更新数据;
将所述更新数据替换所述数据使用方***中的待修复数据。
2.根据权利要求1所述的方法,其特征在于,所述待对账数据存储于所述目标数据***中的一或多个目标数据实体中,与所述待对账数据相匹配的所述目标数据存储于所述对应数据***中的一或多个对应数据实体中;所述目标数据实体与所述对应数据实体的数据结构为同构或异构。
3.根据权利要求2所述的方法,其特征在于,所述目标数据***与所述对应数据***之间的数据转换关系至少包括数据实体转换关系、字段转换关系、以及数据行转换关系中的一种,其中:
所述实体转换关系,表征所述目标数据***中的第一数据实体与所述对应数据***中的第二数据实体之间的转换关系;
所述字段转换关系,表征所述第一数据实体中的实体字段与所述第二数据实体中的实体字段之间的转换关系;
所述数据行转换关系,表征所述第一数据实体中的数据行与所述第二数据实体中的数据行之间的转换关系。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当检测到所述数据源***对应的数据变更日志发生变更时,根据发生变更的数据变更日志,确定所述数据源***中发生变更的第三数据标识信息;
从所述数据源***中获取所述第三数据标识信息所指示的源数据;
根据预先设定的数据同步配置信息,将所述第三数据标识信息所指示的源数据同步至所述数据使用方***;所述数据同步配置信息至少包括数据同步周期和数据转换关系。
5.根据权利要求1所述的方法,其特征在于,所述确定与所述目标数据***适配的第一数据标识信息,包括:
当所述目标数据***为所述数据源***,所述对应数据***为所述数据使用方***,且到达全量源数据获取时间时,从所述数据源***的备份***中确定符合全量对账条件的源数据;
根据所述符合全量对账条件的源数据所对应的数据标识信息,确定与所述目标数据***适配的第一数据标识信息。
6.根据权利要求1所述的方法,其特征在于,所述确定与所述目标数据***适配的第一数据标识信息,包括:
当所述目标数据***为所述数据源***,所述对应数据***为所述数据使用方***时,获取当前对账周期内同步至所述数据使用方***的已同步源数据;
根据所述已同步源数据的数据标识信息,确定与所述目标数据***适配的第一数据标识信息。
7.根据权利要求6所述的方法,其特征在于,所述根据所述已同步源数据的数据标识信息,确定与所述目标数据***适配的第一数据标识信息,包括:
确定所述已同步源数据同步至所述数据使用方***的同步时间;
确定所述同步时间信息与当前操作时间之间的时间差,并在所述时间差大于预设时延时长的情况下,将所述已同步源数据的数据标识信息作为与所述目标数据***适配的第一数据标识信息。
8.根据权利要求1所述的方法,其特征在于,所述确定与所述目标数据***适配的第一数据标识信息,包括:
当所述目标数据***为所述数据使用方***,所述对应数据***为所述数据源***时,获取在当前对账周期内所述数据使用方***新增的新增数据;
根据所述新增数据的数据标识信息,确定与所述目标数据***适配的第一数据标识信息。
9.根据权利要求1所述的方法,其特征在于,所述数据对账结果包括行数据对账结果;所述比较所述转换数据与所述目标数据之间的一致性,得到数据对账结果,包括:
在得到多个转换数据,且所述多个转换数据位于至少一个转换数据行中,以及得到多个目标数据,且所述多个目标数据位于至少一个目标数据行的情况下,确定各所述转换数据行和各所述目标数据行的行标识;
将具有相同行标识的转换数据行和目标数据行进行一致性比较,得到行数据对账结果。
10.根据权利要求9所述的方法,其特征在于,所述将具有相同行标识的转换数据行和目标数据行进行一致性比较,包括:
对于具有相同行标识的转换数据行和目标数据行,按照各所述转换数据在转换数据行中的排列先后顺序,以及各所述目标数据行在目标数据行中的排列顺序,将具有相同排列顺序的转换数据和目标数据进行一致性比较。
11.根据权利要求1所述的方法,其特征在于,所述数据对账结果包括列数据对账结果;所述比较所述转换数据与所述目标数据之间的一致性,得到数据对账结果,包括:
在得到多个转换数据,且所述多个转换数据位于转换数据矩阵,以及得到多个目标数据,所述多个目标数据位于目标数据矩阵的情况下,确定所述转换数据矩阵中各转换数据列的列标识,以及确定所述目标数据矩阵中的各目标数据矩阵列的列标识;
将具有相同列标识的转换数据列和目标数据列进行一致性比较,得到列数据对账结果。
12.根据权利要求1所述的方法,其特征在于,在得到多个所述转换数据的情况下,所述转换数据存在于转换数据集合;在得到多个所述目标数据的情况下,所述目标数据存在于目标数据集合;所述比较所述转换数据与所述目标数据之间的一致性,得到数据对账结果,包括:
对所述转换数据集合中的转换数据进行哈希运算,得到第一数据摘要;
对所述目标数据集合中的目标数据进行哈希运算,得到第二数据摘要;
比较所述第一数据摘要和第二数据摘要,并根据所述第一数据摘要和第二数据摘要的比较结果确定数据对账结果。
13.根据权利要求1所述的方法,其特征在于,所述确定待修复数据,包括:
在所述目标数据***为所述数据源***,所述对应数据***为所述数据使用方***,且所述数据对账结果表征所述目标数据与所述待对账数据不一致时,将数据对账不一致的目标数据确定为待修复数据。
14.根据权利要求1所述的方法,其特征在于,所述确定待修复数据,包括:
在所述目标数据***为所述数据使用方***,所述对应数据***为所述数据源***,且所述数据对账结果表征所述目标数据与所述待对账数据不一致时,将数据对账不一致的待对账数据确定为待修复数据。
15.根据权利要求1所述的方法,其特征在于,所述对所述目标数据与所述待对账数据中的一种进行数据修复,包括:
在所述数据源***对应的数据变更日志中增加模拟变更记录,并根据所述模拟变更记录生成数据重放指令;
基于所述数据重放指令,触发所述数据源***根据预先设定的数据同步配置信息执行数据同步过程,以对所述数据使用方***进行数据修复。
16.一种数据修复装置,其特征在于,所述装置包括:
确定模块,用于确定数据源***和数据使用方***,并将所述数据源***和所述数据使用方***中的一方作为目标数据***,另一方作为与所述目标数据***对应的对应数据***;所述数据使用方***存储有从所述数据源***同步至的数据;
确定模块,还用于确定与所述目标数据***适配的第一数据标识信息,并根据所述第一数据标识信息确定所述目标数据***中的待对账数据;
映射模块,用于根据所述目标数据***与所述对应数据***之间的数据转换关系,将所述待对账数据转换为适配于所述对应数据***的转换数据;
读取模块,用于获取基于所述第一数据标识信息和所述数据转换关系转换得到的第二数据标识信息,并根据所述第二数据标识信息从所述对应数据***中读取与所述待对账数据相匹配的目标数据;
修复模块,用于比较所述转换数据与所述目标数据之间的一致性,得到数据对账结果,并在所述数据对账结果表征所述目标数据与所述待对账数据不一致的情况下,对所述目标数据与所述待对账数据中的一种进行数据修复;所述在所述数据对账结果表征所述目标数据与所述待对账数据不一致的情况下,对所述目标数据与所述待对账数据中的一种进行数据修复,包括:确定待修复数据;在所述目标数据***为所述数据源***,所述对应数据***为所述数据使用方***时,所述待修复数据为数据对账不一致的目标数据;在所述目标数据***为所述数据使用方***,所述对应数据***为所述数据源***时,所述待修复数据为数据对账不一致的待对账数据;根据所述待修复数据对应的数据标识,从所述数据源***中读取与所述待修复数据对应的源数据;根据所述数据源***与所述数据使用方***之间的数据转换关系,将所述源数据转换为适配于所述数据使用方***的更新数据;将所述更新数据替换所述数据使用方***中的待修复数据。
17.根据权利要求16所述的装置,其特征在于,所述待对账数据存储于所述目标数据***中的一或多个目标数据实体中,与所述待对账数据相匹配的所述目标数据存储于所述对应数据***中的一或多个对应数据实体中;所述目标数据实体与所述对应数据实体的数据结构为同构或异构。
18.根据权利要求17所述的装置,其特征在于,所述目标数据***与所述对应数据***之间的数据转换关系至少包括数据实体转换关系、字段转换关系、以及数据行转换关系中的一种,其中:
所述实体转换关系,表征所述目标数据***中的第一数据实体与所述对应数据***中的第二数据实体之间的转换关系;
所述字段转换关系,表征所述第一数据实体中的实体字段与所述第二数据实体中的实体字段之间的转换关系;
所述数据行转换关系,表征所述第一数据实体中的数据行与所述第二数据实体中的数据行之间的转换关系。
19.根据权利要求18所述的装置,其特征在于,所述数据修复装置还包括同步模块,用于当检测到所述数据源***对应的数据变更日志发生变更时,根据发生变更的数据变更日志,确定所述数据源***中发生变更的第三数据标识信息;从所述数据源***中获取所述第三数据标识信息所指示的源数据;根据预先设定的数据同步配置信息,将所述第三数据标识信息所指示的源数据同步至所述数据使用方***;所述数据同步配置信息至少包括数据同步周期和数据转换关系。
20.根据权利要求16所述的装置,其特征在于,所述确定模块还用于当所述目标数据***为所述数据源***,所述对应数据***为所述数据使用方***,且到达全量源数据获取时间时,从所述数据源***的备份***中确定符合全量对账条件的源数据;根据所述符合全量对账条件的源数据所对应的数据标识信息,确定与所述目标数据***适配的第一数据标识信息。
21.根据权利要求16所述的装置,其特征在于,所述确定模块还用于当所述目标数据***为所述数据源***,所述对应数据***为所述数据使用方***时,获取当前对账周期内同步至所述数据使用方***的已同步源数据;根据所述已同步源数据的数据标识信息,确定与所述目标数据***适配的第一数据标识信息。
22.根据权利要求21所述的装置,其特征在于,所述确定模块还用于确定所述已同步源数据同步至所述数据使用方***的同步时间;确定所述同步时间信息与当前操作时间之间的时间差,并在所述时间差大于预设时延时长的情况下,将所述已同步源数据的数据标识信息作为与所述目标数据***适配的第一数据标识信息。
23.根据权利要求16所述的装置,其特征在于,所述确定模块还用于当所述目标数据***为所述数据使用方***,所述对应数据***为所述数据源***时,获取在当前对账周期内所述数据使用方***新增的新增数据;根据所述新增数据的数据标识信息,确定与所述目标数据***适配的第一数据标识信息。
24.根据权利要求16所述的装置,其特征在于,所述数据对账结果包括行数据对账结果;所述修复模块还用于在得到多个转换数据,且所述多个转换数据位于至少一个转换数据行中,以及得到多个目标数据,且所述多个目标数据位于至少一个目标数据行的情况下,确定各所述转换数据行和各所述目标数据行的行标识;将具有相同行标识的转换数据行和目标数据行进行一致性比较,得到行数据对账结果。
25.根据权利要求24所述的装置,其特征在于,所述修复模块对于具有相同行标识的转换数据行和目标数据行,按照各所述转换数据在转换数据行中的排列先后顺序,以及各所述目标数据行在目标数据行中的排列顺序,将具有相同排列顺序的转换数据和目标数据进行一致性比较。
26.根据权利要求16所述的装置,其特征在于,所述数据对账结果包括列数据对账结果;所述修复模块还用于在得到多个转换数据,且所述多个转换数据位于转换数据矩阵,以及得到多个目标数据,所述多个目标数据位于目标数据矩阵的情况下,确定所述转换数据矩阵中各转换数据列的列标识,以及确定所述目标数据矩阵中的各目标数据矩阵列的列标识;将具有相同列标识的转换数据列和目标数据列进行一致性比较,得到列数据对账结果。
27.根据权利要求16所述的装置,其特征在于,在得到多个所述转换数据的情况下,所述转换数据存在于转换数据集合;在得到多个所述目标数据的情况下,所述目标数据存在于目标数据集合;所述修复模块还用于对所述转换数据集合中的转换数据进行哈希运算,得到第一数据摘要;对所述目标数据集合中的目标数据进行哈希运算,得到第二数据摘要;比较所述第一数据摘要和第二数据摘要,并根据所述第一数据摘要和第二数据摘要的比较结果确定数据对账结果。
28.根据权利要求16所述的装置,其特征在于,所述修复模块还用于在所述目标数据***为所述数据源***,所述对应数据***为所述数据使用方***,且所述数据对账结果表征所述目标数据与所述待对账数据不一致时,将数据对账不一致的目标数据确定为待修复数据。
29.根据权利要求16所述的装置,其特征在于,所述修复模块还用于在所述目标数据***为所述数据使用方***,所述对应数据***为所述数据源***,且所述数据对账结果表征所述目标数据与所述待对账数据不一致时,将数据对账不一致的待对账数据确定为待修复数据。
30.根据权利要求16所述的装置,其特征在于,所述修复模块还用于在所述数据源***对应的数据变更日志中增加模拟变更记录,并根据所述模拟变更记录生成数据重放指令;基于所述数据重放指令,触发所述数据源***根据预先设定的数据同步配置信息执行数据同步过程,以对所述数据使用方***进行数据修复。
31.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至15中任一项所述的方法的步骤。
32.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至15中任一项所述的方法的步骤。
33.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至15中任一项所述的方法的步骤。
CN202311052381.3A 2023-08-21 2023-08-21 数据修复方法、装置、计算机设备和存储介质 Active CN116756247B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311052381.3A CN116756247B (zh) 2023-08-21 2023-08-21 数据修复方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311052381.3A CN116756247B (zh) 2023-08-21 2023-08-21 数据修复方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN116756247A CN116756247A (zh) 2023-09-15
CN116756247B true CN116756247B (zh) 2023-11-17

Family

ID=87953748

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311052381.3A Active CN116756247B (zh) 2023-08-21 2023-08-21 数据修复方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN116756247B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776876A (zh) * 2016-11-29 2017-05-31 用友网络科技股份有限公司 数据迁移方法和数据迁移***
CN110378778A (zh) * 2019-07-10 2019-10-25 中信百信银行股份有限公司 多数据源对账方法、***、电子设备及存储介质
CN113157804A (zh) * 2021-03-26 2021-07-23 北京市商汤科技开发有限公司 同步数据的对账方法、装置、计算机设备及存储介质
CN113609119A (zh) * 2021-08-11 2021-11-05 平安国际智慧城市科技股份有限公司 一种数据对账修复方法、装置、存储介质及电子设备
CN114066587A (zh) * 2021-11-15 2022-02-18 平安证券股份有限公司 待交收数据对账方法、装置、设备及存储介质
CN115757623A (zh) * 2022-11-15 2023-03-07 远光软件股份有限公司 一种对账方法、对账***和电子设备
CN116015556A (zh) * 2023-01-03 2023-04-25 南京国电南自电网自动化有限公司 通用报文特征数据变更和校正码计算使校验和不变的方法
CN116089508A (zh) * 2022-11-30 2023-05-09 贵州多彩宝互联网服务有限公司 一种基于数据采集与对账的***及方法
CN116308848A (zh) * 2023-03-28 2023-06-23 中国工商银行股份有限公司 信息处理方法、装置、计算机设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1708097A1 (de) * 2005-03-31 2006-10-04 Ubs Ag Rechnernetzwerksystem zum Synchronisieren einer zweiten Datenbank mit einer ersten Datenbank sowie Vorgehensweise hierfür

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776876A (zh) * 2016-11-29 2017-05-31 用友网络科技股份有限公司 数据迁移方法和数据迁移***
CN110378778A (zh) * 2019-07-10 2019-10-25 中信百信银行股份有限公司 多数据源对账方法、***、电子设备及存储介质
CN113157804A (zh) * 2021-03-26 2021-07-23 北京市商汤科技开发有限公司 同步数据的对账方法、装置、计算机设备及存储介质
CN113609119A (zh) * 2021-08-11 2021-11-05 平安国际智慧城市科技股份有限公司 一种数据对账修复方法、装置、存储介质及电子设备
CN114066587A (zh) * 2021-11-15 2022-02-18 平安证券股份有限公司 待交收数据对账方法、装置、设备及存储介质
CN115757623A (zh) * 2022-11-15 2023-03-07 远光软件股份有限公司 一种对账方法、对账***和电子设备
CN116089508A (zh) * 2022-11-30 2023-05-09 贵州多彩宝互联网服务有限公司 一种基于数据采集与对账的***及方法
CN116015556A (zh) * 2023-01-03 2023-04-25 南京国电南自电网自动化有限公司 通用报文特征数据变更和校正码计算使校验和不变的方法
CN116308848A (zh) * 2023-03-28 2023-06-23 中国工商银行股份有限公司 信息处理方法、装置、计算机设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
数据仓库构建探讨;温津伟;;金融电子化(09);全文 *

Also Published As

Publication number Publication date
CN116756247A (zh) 2023-09-15

Similar Documents

Publication Publication Date Title
US11468015B2 (en) Storage and synchronization of metadata in a distributed storage system
CN103116661B (zh) 一种数据库的数据处理方法
US8924365B2 (en) System and method for range search over distributive storage systems
CN111656326B (zh) 用于执行用于无修复恢复的数据库备份的***和方法
CN106815218B (zh) 数据库访问方法、装置和数据库***
CN107209704A (zh) 检测丢失的写入
CN104572689A (zh) 数据同步方法、装置及***
CN109298978B (zh) 一种指定位置的数据库集群的恢复方法及***
CN110287251B (zh) MongoDB到HBase的分布式高容错数据实时同步方法
WO2023011022A1 (zh) 基于区块链的数据处理方法、设备及计算机可读存储介质
CN114048217A (zh) 增量数据的同步方法和装置、电子设备和存储介质
CN105405070A (zh) 一种分布式内存电网***构建方法
WO2023077971A1 (zh) 事务处理方法、装置、计算设备及存储介质
CN111651519A (zh) 数据同步方法、数据同步装置、电子设备及存储介质
CN114153809A (zh) 基于数据库日志并行实时增量统计的方法
CN105955989A (zh) 一种云平台数据库主从服务器的建立方法
CN113704359B (zh) 一种时序数据库多数据副本的同步方法、***以及服务器
CN109947730A (zh) 元数据恢复方法、装置、分布式文件***及可读存储介质
CN116756247B (zh) 数据修复方法、装置、计算机设备和存储介质
CN111258508B (zh) 一种分布式对象存储中的元数据管理方法
CN116303789A (zh) 多分片多副本数据库并行同步方法、装置及可读介质
CN110046172B (zh) 在线计算数据处理方法及***
CN111966650B (zh) 一种运维大数据共享数据表的处理方法、装置及存储介质
CN104765748B (zh) 一种将复制表转换为分片表的方法及装置
CN110928839A (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
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40097666

Country of ref document: HK