CN110321383A - 大数据平台数据同步方法、装置、计算机设备及存储介质 - Google Patents

大数据平台数据同步方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN110321383A
CN110321383A CN201910418941.XA CN201910418941A CN110321383A CN 110321383 A CN110321383 A CN 110321383A CN 201910418941 A CN201910418941 A CN 201910418941A CN 110321383 A CN110321383 A CN 110321383A
Authority
CN
China
Prior art keywords
data
record
data record
target
incremental
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910418941.XA
Other languages
English (en)
Inventor
赵乐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Puhui Enterprise Management Co Ltd
Original Assignee
Ping An Puhui Enterprise Management 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 Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN201910418941.XA priority Critical patent/CN110321383A/zh
Publication of CN110321383A publication Critical patent/CN110321383A/zh
Pending legal-status Critical Current

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/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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

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

Abstract

本发明提供一种大数据平台的数据同步方法及其数据同步装置,所述数据同步方法包括:响应于数据同步指令,监控源数据库中的增量数据记录和删除数据记录;根据所述增量数据记录和所述删除数据记录,生成增量数据同步触发指令和数据删除指令;根据所述增量数据同步触发指令,将源数据库中的增量数据同步至目标数据库;根据所述数据删除指令,从所述目标数据库中删除目标数据记录。本发明对大量的增量数据和删除记录信息进行筛选,确定出对最终的同步操作具有意义的目标增量数据和目标删除数据,可以避免对中间增量数据或中间删除数据执行无意义的同步,从而提高数据同步效率。

Description

大数据平台数据同步方法、装置、计算机设备及存储介质
技术领域
本发明涉及数据库技术领域,尤其涉及一种可实现大数据平台与上游数据表之间的数据保持高度一致性的数据同步方法、装置、计算机设备及存储介质。
背景技术
在一些大数据运用场景中,由于上游数据每天都在变化着,因此使用这些数据的下游系统需要每天刷新这些变化的数据。当数据量小时候,简单粗暴的方式就是每次全量更新数据,但随着业务的增长当数据量呈几何方式增长时(达到亿级别甚至更多),若每次还进行全量更新数据将非常耗时耗力,并且也是业务方无法忍受的,此时就需要变全量数据同步为增量数据同步。
所谓增量数据同步指的是不再需要将全部上游数据复制到大数据平台中,而仅仅只抽取上游数据中发生增量变化的内容。常用的增量抽取工具包括例如 ETL,可以实现增量数据的同步。然而,上述增量抽取工具在进行数据同步时也存在固有的缺陷,即只能根据创建时间或更新时间同步新增的数据和发生更改的数据,但是当上游数据库系统删除某些数据时,现有的增量同步工具无法获知相关信息,从而导致大数据平台中会存在已删除数据的记录。
另一方面,上游数据中的同一条数据记录有可能针对特定字段发生多次变更,但对于有同步需求的大数据平台而言,只需要保证存储的数据记录与上游数据中的最新数据一致即可,没有必要关注数据的中间变更情况。然而现有技术中往往会将所有的发生增量变化的数据全部进行同步,产生许多不必要的额外操作。例如,上游数据中的其中一条账户金额记录变化情况为:从1000元变更为3000元,从3000元变更为5000元,从5000元变更为2000元,大数据平台在执行数据同步时只需要将该条账户金额纪录由最初的1000元变更为当前的2000元即可,没有必要体现中间3000元、5000元的变更过程。
因此,如何保证大数据平台与上游数据库系统之间进行数据同步时的准确性和高效性,成为本领域技术人员亟待解决的技术问题。
发明内容
本发明的目的是提供一种基于增量数据同步的大数据平台的数据同步方法、装置、计算机设备及存储介质,用于解决现有技术存在的问题。
为实现上述目的,本发明提供一种大数据平台的数据同步方法,包括以下步骤:
响应于数据同步指令,监控所述源数据库中的增量数据记录和删除数据记录;
根据所述增量数据记录和所述删除数据记录,生成增量数据同步触发指令和数据删除指令;
响应于所述增量数据同步触发指令,将源数据库中的增量数据同步至目标数据库;
根据所述数据删除指令,从所述目标数据库中删除目标数据记录。
根据本发明提供的数据同步方法,其中,所述根据所述增量数据记录和所述删除数据记录,生成增量数据同步触发指令和数据删除指令的步骤包括:
提取具有相同关键字段的所有候选增量数据记录和候选删除数据记录;
对所述候选增量数据记录和所述候选删除数据记录按照时间顺序进行排序;
从按照时间顺序进行排序的所述候选增量数据记录和所述候选删除数据记录确定目标增量数据记录和目标删除数据记录;
根据所述目标增量数据记录和所述目标删除数据记录分别生成增量数据同步触发指令和数据删除指令。
根据本发明提供的数据同步方法,其中,所述根据所述数据删除指令,从所述目标数据库中删除目标数据记录的步骤包括:
将所述数据删除指令依序放入消息队列;
从所述消息队列中逐条读取所述数据删除指令,根据所述数据删除指令删除目标数据记录。
根据本发明提供的数据同步方法,其中,所述根据所述数据删除指令删除目标数据记录的步骤包括:
提取所述素具删除指令中的关键词;
在所述目标数据库中查找所述关键词对应的目标数据记录;
删除所述目标数据记录。
根据本发明提供的数据同步方法,其中,所述监控所述源数据库中的增量数据记录和删除数据记录的步骤包括:
通过监测所述源数据库中的临时增量表或时间戳来确定增量数据记录,其中所述临时增量表中记录发生增量变化的数据,所述时间戳表征发生数据变化的时刻;
通过抽取源数据库操作日志中的删除操作日志来确定删除数据记录。
为实现上述目的,本发明还提供一种大数据平台的数据同步装置,包括:
数据记录监控模块,适用于监控所述源数据库中的增量数据记录和删除数据记录;
指令生成模块,适用于根据所述增量数据记录和所述删除数据记录,生成增量数据同步触发指令和数据删除指令;
增量同步模块,适用于响应于所述增量数据同步触发指令,将源数据库中的增量数据同步至目标数据库;
删除模块,适用于根据所述数据删除指令,从所述目标数据库中删除目标数据记录。
根据本发明提供的数据同步装置,其中,所述指令生成模块包括:
候选记录提取子模块,适用于提取具有相同关键字段的所有候选增量数据记录和候选删除数据记录;
排序子模块,适用于对所述候选增量数据记录和所述候选删除数据记录按照时间顺序进行排序;
目标记录确定子模块,适用于从按照时间顺序进行排序的所述候选增量数据记录和所述候选删除数据记录确定目标增量数据记录和目标删除数据记录;
指令生成子模块,适用于根据所述目标增量数据记录和所述目标删除数据记录分别生成增量数据同步触发指令和数据删除指令。
根据本发明提供的数据同步装置,其中,所述删除模块包括:
关键词提取子模块,适用于提取所述删除操作日志中的关键词;
记录查找子模块,适用于在所述目标数据库中查找所述关键词对应的目标数据记录;
删除子模块,适用于删除所述目标数据记录。
为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明提供的大数据平台的数据同步方法、装置、计算机设备及计算机可读存储介质,以增量数据同步为基础,能够实现大数据平台与上游数据之间的高度一致性。本发明一方面通过创建时间和更新时间同步上游数据中的增量数据,另一方面通过获取删除操作日志的方式获取上游数据中的删除记录信息,根据所述删除记录信息对大数据平台中的相关数据进行删除,从而保证大数据平台中的数据与上游数据库系统中的数据无差异对应,提高大数据平台的数据质量可靠性。进一步,本发明对大量的增量数据和删除记录信息进行了筛选,确定出对最终的同步操作具有意义的目标增量数据和目标删除数据,并根据目标增量数据和目标删除数据生成增量同步指令和删除数据指令。通过本发明的上述筛选过程,可以避免对中间增量数据或中间删除数据执行无意义的同步,从而提高数据同步效率。
附图说明
图1为本发明的数据同步方法实施例一的应用场景图;
图2为本发明的数据同步方法实施例一的流程图;
图3为本发明的数据同步方法实施例一中生成增量数据同步触发指令和删除数据指令的流程图;
图4为本发明的数据同步装置实施例一的程序模块示意图;
图5为本发明的数据同步装置实施例一的硬件结构示意图;
图6为本发明的数据同步方法实施例二的流程图;
图7为本发明的数据同步装置实施例二的程序模块示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的大数据平台的数据同步方法、装置、计算机设备及存储介质,适用于数据库技术领域,为大数据平台和上游数据库系统之间的精确数据匹配提供一种高效快速的自动化实现方案。本发明一方面通过创建时间和更新时间同步上游数据中的增量数据,另一方面通过获取删除操作日志的方式获取上游数据中的删除记录信息,根据所述删除记录信息对大数据平台中的相关数据进行删除,从而保证大数据平台中的数据与上游数据库系统中的数据无差异对应,提高大数据平台的数据质量可靠性。进一步,本发明对大量的增量数据和删除记录信息进行了筛选,确定出对最终的同步操作具有意义的目标增量数据和目标删除数据,并根据目标增量数据和目标删除数据生成增量同步指令和删除数据指令。通过本发明的上述筛选过程,可以避免对中间增量数据或中间删除数据执行无意义的同步,从而提高数据同步效率。
实施例一
本发明提出的大数据平台的数据同步方法,可以应用于如图1所示的场景中。其中,目标数据库服务器601通过网络分别与调度服务器600和源数据库服务器602进行通信。目标数据库服务器601根据调度服务器600的指令从源数据库服务器602中查询已有的数据,将已有的数据按照相应的存储路径同步到目标数据库服务器601中。其中源数据库服务器602可以是相对比较分散独立的各个上游数据库系统,例如保存每个班级各自的期末成绩的班级成绩数据库系统,保存每个班级学生基本情况的班级学生信息数据库系统等,目标数据库服务器601可以是综合统计的大数据平台系统,例如保存全校所有班级的期末成绩的学校成绩数据库系统,保存全校所有学生基本情况的全校学生信息数据库系统。上述学校成绩数据库系统和全校学生信息数据库系统中的数据分别来自于班级成绩数据库系统和班级学生信息数据库系统,不同系统之间的数据需要保持高度一致性。
请参阅图2,本实施例提出一种大数据平台的数据同步方法,是基于图1 所示的应用场景,以调度服务器作为操作主体进行的数据同步过程,具体包括以下步骤:
S1:响应于目标数据库的数据同步指令,监控源数据库中的增量数据记录和删除数据记录。
本步骤中,目标数据库服务器首先向调度服务器发起数据同步指令,调度服务器接收到数据同步指令后,执行增量数据同步操作。
数据同步指令是触发数据同步操作的指令,该数据同步指令一般是基于规定的时间点触发,例如规定每天晚上零点零分执行数据同步指令;除此之外也可以人工手动触发,即数据库管理人员通过手动点击按钮的方式实现在任意时间点执行数据同步指令。数据同步是将源数据库服务器中的数据迁移到目标数据库服务器,以实现源数据库和目标数据库中的数据同步。数据同步指令具体可用于指定待同步的数据、数据同步的节点时间或数据同步的方式等。本实施例中,数据同步指令用于指示将某特定源数据库中的数据同步到大数据平台的目标数据库。
具体的,调度服务器将源数据库中的增量数据进行抽取后迁移到目标数据库。增量数据的抽取可以采用现有的数据同步工具实现,例如ETL工具或者 sqoop工具等,具体的增量数据抽取方式可以采用触发器方式、时间戳方式等。其中,触发器方式是指在要抽取的表上建立触发器,例如建立插入、修改两个触发器,每当源数据库的数据表中的数据发生变化,就被相应的触发器将变化的数据写入一个临时表,抽取线程从该临时表中抽取数据并迁移至目标数据库。时间戳方式则是一种基于快照比较的变化数据比较方式,通过在源数据库的数据表中增加一个时间戳字段,源数据库中更新修改数据表中数据的时候,同时修改时间戳字段的值。当进行数据抽取时,通过比较系统时间与时间戳字段的值来决定抽取哪些数据。
例如,本实施例中在源数据库的数据表中建立的时间戳字段包括创建时间和更新时间,其中创建时间表征在数据表中新增数据记录的时间,更新时间表征在数据表中修改数据记录的时间,则本实施例中将源数据库中的增量数据同步至目标数据库的步骤包括:按照创建时间将源数据库中的新增数据同步至目标数据库,和按照更新时间将源数据库中的变更数据同步至目标数据库。
本发明的删除信息指的是从源数据库中删除的数据记录的信息。由于该数据记录已经被删除,因此从源数据库中无法直接获取删除标记,因此在同步到大数据平台的目标服务器中时,很难留意到这部分被删除的数据。
为了获得源数据库中被删除的数据记录的详细信息,本发明引入了删除操作日志,通过分析源数据库自身的操作日志来获取被删除的数据记录的详细信息。具体操作时,可以通过日志采集工具实时采集源数据库中数据表的操作日志,并从操作日志中提取出删除操作日志。
S2:根据所述增量数据记录和所述删除数据记录,生成增量数据同步触发指令和数据删除指令。
请参阅图3,本步骤在获取到源数据库中的所有增量数据记录和删除数据记录的基础上,对所述增量数据记录和删除数据记录进行过滤筛选,去掉不需要执行同步操作的中间数据,例如去掉属于中间过程的增量数据记录和属于中间过程的删除数据记录,得到与目的数据库的最终同步动作相关联的目标增量数据记录和目标删除数据记录;根据目标增量数据记录和目标删除数据记录生成增量数据同步触发指令和数据删除指令。
S21:本发明从所有增量数据记录和删除数据记录中提取具有相同关键字段的所有候选增量数据记录和候选删除数据记录。
上文中的具有相同关键字段,指的是具有相同操作对象的数据记录。例如,关于某健身中心的会员账户余额数据记录在一段时间内的变化情况为:初始值 2000元;第一次变更后剩余500元;第二次由于会员身份到期未续费,该会员余额数据记录从健身中心的数据库中删除;第三次会员请求再次开通账户并续费3000元,此时该会员账户余额为3000元,第四次会员再次续费2000元,此时会员账户余额为5000元。上述多条会员账户余额记录具有相同的会员卡号 (例如003576)和相同的操作字段(账户余额),那么上述相同的会员卡号(例如003576)和相同的操作字段(账户余额)就相当于本发明中所称的相同关键字段,用以表征对同一数据记录中的同一个字段进行的操作。此时,上述不同时期的会员账户余额即为候选增量数据记录或候选删除数据记录(因未续费而删除)。
S22:对所述候选增量数据记录和所述候选删除数据记录按照时间顺序进行排序。
以上述会员账户余额记录数据为例,按照时间先后顺序排序如下:
初始数据:会员账户余额记录_2000;
增量数据1:会员账户余额记录_500;
删除数据:会员账户已删除;
增量数据2:会员账户余额记录_3000;
增量数据3:会员账户余额记录_5000。
S23:从按照时间顺序进行排序的所述候选增量数据记录和所述候选删除数据记录确定目标增量数据记录和目标删除数据记录。
从上述实施例中,会员账户余额最终从增量数据3中体现,而其余增量数据1、增量数据2和删除数据均为中间变化过程中的数据,对最终需要同步的数据没有影响。因此,本实施例中确定的目标增量数据记录为对最终需要同步的数据会产生影响的增量数据3,且没有目标删除数据记录。
S24:根据所述目标增量数据记录和所述目标删除数据记录分别生成增量数据同步触发指令和数据删除指令。
本实施例中,根据增量数据3生成增量数据同步触发指令“会员账户余额记录5000”,没有数据删除指令。
S3:根据所述增量数据同步触发指令,将源数据库中的增量数据同步至目标数据库;根据所述数据删除指令,从所述目标数据库中删除目标数据记录。
本步骤包括两个方面,一是增量数据同步,二是删除数据同步。对于增量数据同步,在确定了增量数据同步触发指令之后,按照该指令依次执行同步即可。对于删除数据同步,删除数据是通过源数据库的操作日志进行统计的,本发明在下文中进行详细说明。
由于大数据平台每天会产生大量的日志,为了对这些日志进行处理也需要特定的日志系统,本发明在操作日志的获取和传输方面采用的是Kafka组件和Flume组件相结合的方式,上述两款组件都是现有技术中比较流行的日志系统,且各有特点。其中Flume是一个分布式、可靠、高可用的海量日志采集、聚合和传输的日志收集系统。支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。Kafka是一个分布式的、可分区的、可复制的消息系统,维护消息队列。本实施例中可以选用flume来负责源数据库的操作日志的实时采集,由于采集数据的速度和数据处理的速度不一定同步,因此添加一个消息中间件来作为缓冲,例如选用kafka消息系统,用来处理操作日志流数据。
以保存某班级学生基本信息的源数据库为例,假设每一条数据记录均包括 ID编号、姓名、年龄、性别和民族几个字段,其中主键为ID编号。本周内学生基本信息情况发生如下变化:增加插班学生一名,其基本信息为【054号,林某,12岁,男,汉族】;学生王某的原始基本信息记录为【037号,王某,12 岁,女,满族】由于发现录入时的错误,需要将学生王某的年龄由12岁更改为 13岁,即学生王某的基本信息变更为【037号,王某,13岁,女,满族】;学生李某的基本信息因为转学而删除,删除前学生李某的基本信息为【022号,李某,女,12岁,汉族】,删除后,学生李某的基本信息不再出现在数据表中。在本发明的具体实施例中,例如采用时间戳的方式在每条数据记录后面增加一个时间戳字段,则学生林某的数据记录最后一项会显示创建时间的时间戳,学生王某的数据记录的最后一项会显示更改时间的时间戳,但是对于学生李某来说,由于与其对应的整条数据记录已经从数据表中删除,所以也不可能再对这条数据记录添加相应的时间戳,因此当进行大数据平台的数据同步时,无法得到学生李某的数据记录已经被删除,因此,本发明进一步通过采集操作日志的方式来明确哪些数据记录已经被删除。例如,在对本周内该班级学生基本信息的数据库采集日志信息时,可以获取到如下日志信息:新增记录【054号,林某,12岁,男,汉族】,变更记录【037号,王某,12岁,女,满族】,删除记录【022号,李某,女,12岁,汉族】。对于本发明而言,新增记录和变更记录已经通过时间戳的方式获取,因此本发明此时只关心删除记录。通过过滤方式只保留与删除信息有关的日志内容,即保留删除记录‘姓名:李某’的日志内容,这条关于姓名为李某的学生的删除记录即为本发明所关注的目标数据记录。
在获取了表征被删除的数据记录信息的删除操作日志的基础上,调度服务器根据被删除的数据记录信息从目标数据库中逐条删除相应数据记录。
在具体实施例中,本发明通过提取删除操作日志中的关键字,根据所述关键字去目标数据库中比对相应数据记录的方式来删除该删除操作日志所对应的数据记录。优选的,该关键字为主键信息。
例如,获取到删除操作日志为:删除记录【022号,李某,女,12岁,汉族】。这条记录中的主键为学生ID,即022号。因此,本发明通过关键字“022 号”在目标数据库中进行查找,从而定位到【022号,李某,女,12岁,汉族】的数据记录并将其删除。
由于删除的数据记录可能不止一条,为了保证每一条删除操作日志都被正确执行,本发明采用消息队列来存放上述删除操作日志,例如可以选择kafka 消息订阅系统来与大数据平台的目标数据库例如hive进行对接,来实现每日数据的同步。
进一步地,完成删除数据记录的同步之后,调度服务器中可以增加一条上次同步时间记录,以便在下次执行数据同步指令时,直接对自上次同步时间之后的数据记录进行同步,避免对于已经进行过同步的数据进行重复同步操作,提高数据同步的效率。
请继续参阅图2,示出了一种大数据平台的数据同步装置,在本实施例中,数据同步装置10可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述自动更新方法。本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述数据同步装置10在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
数据记录监控模块11,适用于监控所述源数据库中的增量数据记录和删除数据记录;
指令生成模块12,适用于根据所述增量数据记录和所述删除数据记录,生成增量数据同步触发指令和数据删除指令;
增量同步模块13,适用于响应于所述增量数据同步触发指令,将源数据库中的增量数据同步至目标数据库;
删除模块14,适用于根据所述数据删除指令,从所述目标数据库中删除目标数据记录。
根据本发明提供的数据同步装置,其中,所述指令生成模块12包括:
候选记录提取子模块121,适用于提取具有相同关键字段的所有候选增量数据记录和候选删除数据记录;
排序子模块122,适用于对所述候选增量数据记录和所述候选删除数据记录按照时间顺序进行排序;
目标记录确定子模块123,适用于从按照时间顺序进行排序的所述候选增量数据记录和所述候选删除数据记录确定目标增量数据记录和目标删除数据记录;
指令生成子模块124,适用于根据所述目标增量数据记录和所述目标删除数据记录分别生成增量数据同步触发指令和数据删除指令。
根据本发明提供的数据同步装置,其中,所述删除模块14包括:
关键词提取子模块141,适用于提取所述删除操作日志中的关键词;
记录查找子模块142,适用于在所述目标数据库中查找所述关键词对应的目标数据记录;
删除子模块143,适用于删除所述目标数据记录。
本实施例还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备20至少包括但不限于:可通过系统总线相互通信连接的存储器21、处理器22,如图3所示。需要指出的是,图3仅示出了具有组件21-22 的计算机设备20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器21(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器 (EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备20的内部存储单元,例如该计算机设备20的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备 20的外部存储设备,例如该计算机设备20上配备的插接式硬盘,智能存储卡 (Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备20的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备 20的操作系统和各类应用软件,例如实施例一的数据同步装置10的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit, CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备20的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行数据同步装置10,以实现实施例一的数据同步方法。
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器 (EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储数据同步装置10,被处理器执行时实现实施例一的数据同步方法。
实施例二
本实施例针对的是对多个源数据库中的数据进行同步的情况。实施例一描述的是仅针对单一源数据库进行数据同步的情况,本实施例针对多个源数据库进行数据同步的过程与实施例一类似,只是增加了串行处理的步骤,即按顺序分别对每个单独的源数据库进行数据同步。
请参阅图4,本实施例的信息查询方法以实施例一为基础,包括以下步骤:
S1:响应于目标数据库的数据同步指令,将多个源数据库中的增量数据同步至目标数据库。
本步骤中,调度服务器将多个源数据库中的增量数据分别进行抽取后迁移到目标数据库。增量数据的抽取可以采用现有的数据同步工具实现,例如ETL 工具或者sqoop工具等,具体的增量数据抽取方式可以采用触发器方式、时间戳方式等。其中,触发器方式是指在要抽取的表上建立触发器,例如建立插入、修改两个触发器,每当源数据库的数据表中的数据发生变化,就被相应的触发器将变化的数据写入一个临时表,抽取线程从该临时表中抽取数据并迁移至目标数据库。时间戳方式则是一种基于快照比较的变化数据比较方式,通过在源数据库的数据表中增加一个时间戳字段,源数据库中更新修改数据表中数据的时候,同时修改时间戳字段的值。当进行数据抽取时,通过比较系统时间与时间戳字段的值来决定抽取哪些数据。
例如,本实施例中在源数据库的数据表中建立的时间戳字段包括创建时间和更新时间,其中创建时间表征在数据表中新增数据记录的时间,更新时间表征在数据表中修改数据记录的时间,则本实施例中将源数据库中的增量数据同步至目标数据库的步骤包括:按照创建时间将源数据库中的新增数据同步至目标数据库,和按照更新时间将源数据库中的变更数据同步至目标数据库。
每个源数据库在目标数据库中都有对应的固定存储位置,在对增量数据进行同步时,需要将每个源数据库中的增量数据存储到与该源数据库对应的目标数据库的位置中。
S2:获取所述多个源数据库中的删除信息,所述删除信息表征从所述源数据库中删除的目标数据记录。
本发明的删除信息指的是从源数据库中删除的数据记录的信息。由于该数据记录已经被删除,因此从源数据库中无法直接获取删除标记,因此在同步到大数据平台的目标服务器中时,很难留意到这部分被删除的数据。
为了获得源数据库中被删除的数据记录的详细信息,本发明引入了删除操作日志,通过分析源数据库自身的操作日志来获取被删除的数据记录的详细信息。具体操作时,可以通过日志采集工具实时采集源数据库中数据表的操作日志,并从操作日志中提取出删除操作日志。
由于大数据平台每天会产生大量的日志,为了对这些日志进行处理也需要特定的日志系统,本发明在操作日志的获取和传输方面采用的是Kafka组件和Flume组件相结合的方式,上述两款组件都是现有技术中比较流行的日志系统,且各有特点。其中Flume是一个分布式、可靠、高可用的海量日志采集、聚合和传输的日志收集系统。支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。Kafka是一个分布式的、可分区的、可复制的消息系统,维护消息队列。本实施例中可以选用flume来负责源数据库的操作日志的实时采集,由于采集数据的速度和数据处理的速度不一定同步,因此添加一个消息中间件来作为缓冲,例如选用kafka消息系统,用来处理操作日志流数据。
以保存某班级学生基本信息的源数据库为例,假设每一条数据记录均包括ID编号、姓名、年龄、性别和民族几个字段,其中主键为ID编号。本周内学生基本信息情况发生如下变化:增加插班学生一名,其基本信息为【054号,林某,12岁,男,汉族】;学生王某的原始基本信息记录为【037号,王某,12 岁,女,满族】由于发现录入时的错误,需要将学生王某的年龄由12岁更改为 13岁,即学生王某的基本信息变更为【037号,王某,13岁,女,满族】;学生李某的基本信息因为转学而删除,删除前学生李某的基本信息为【022号,李某,女,12岁,汉族】,删除后,学生李某的基本信息不再出现在数据表中。在本发明的具体实施例中,例如采用时间戳的方式在每条数据记录后面增加一个时间戳字段,则学生林某的数据记录最后一项会显示创建时间的时间戳,学生王某的数据记录的最后一项会显示更改时间的时间戳,但是对于学生李某来说,由于与其对应的整条数据记录已经从数据表中删除,所以也不可能再对这条数据记录添加相应的时间戳,因此当进行大数据平台的数据同步时,无法得到学生李某的数据记录已经被删除,因此,本发明进一步通过采集操作日志的方式来明确哪些数据记录已经被删除。例如,在对本周内该班级学生基本信息的数据库采集日志信息时,可以获取到如下日志信息:新增记录【054号,林某,12岁,男,汉族】,变更记录【037号,王某,12岁,女,满族】,删除记录【022号,李某,女,12岁,汉族】。对于本发明而言,新增记录和变更记录已经通过时间戳的方式获取,因此本发明此时只关心删除记录。通过过滤方式只保留与删除信息有关的日志内容,即保留删除记录‘姓名:李某’的日志内容,这条关于姓名为李某的学生的删除记录即为本发明所关注的目标数据记录。
对于来自多个源数据库的删除操作日志,需要表明其所属的源数据库,方便后续在目标数据库中按照对应的存储位置迅速定位。
S3:从所述目标数据库中删除所述目标数据记录。
在获取了表征被删除的数据记录信息的删除操作日志的基础上,调度服务器根据被删除的数据记录信息从目标数据库中逐条删除相应数据记录。
在具体实施例中,本发明通过提取删除操作日志中的关键字,根据所述关键字去目标数据库中比对相应数据记录的方式来删除该删除操作日志所对应的数据记录。优选的,该关键字为主键信息。
例如,获取到删除操作日志为:删除记录【022号,李某,女,12岁,汉族】。这条记录中的主键为学生ID,即022号。因此,本发明通过关键字“022 号”在目标数据库中进行查找,从而定位到【022号,李某,女,12岁,汉族】的数据记录并将其删除。
由于删除的数据记录可能不止一条,为了保证每一条删除操作日志都被正确执行,本发明采用消息队列来存放上述删除操作日志,例如可以选择kafka 消息订阅系统来与大数据平台的目标数据库例如hive进行对接,来实现每日数据的同步。
对于来自多个源数据库的删除操作日志,分别按照每个源数据库在目标数据库中的存储位置依次进行删除。
进一步地,完成删除数据记录的同步之后,调度服务器中可以增加一条上次同步时间记录,以便在下次执行数据同步指令时,直接对自上次同步时间之后的数据记录进行同步,避免对于已经进行过通过的数据进行重复同步操作,提高数据同步的效率。
请继续参阅图5,本实施例的数据同步装置30以实施例一为基础,用以实现实施例二的数据同步方法,其包括的各程序模块的功能:
增量同步模块31,适用于响应于目标数据库的数据同步指令,将源数据库中的增量数据同步至目标数据库;
删除信息获取模块32,适用于获取所述源数据库中的删除信息,所述删除信息表征从所述源数据库中删除的目标数据记录;
删除模块33,适用于从所述目标数据库中删除所述目标数据记录。
进一步地,所述删除信息获取模块32包括:
日志获取模块321,适用于获取所述源数据库中的操作日志,并从所述操作日志中提取删除操作日志。
进一步地,所述删除模块33包括:
关键词提取子模块331,适用于提取所述删除操作日志中的关键词;
记录查找子模块332,适用于在所述目标数据库中查找所述关键词对应的目标数据记录;
删除子模块333,适用于删除所述目标数据记录。
综上所述,本发明提出的关联数据的信息查询方法、装置、计算机设备及存储介质,可以减少在数据库中创建大量索引的过程,通过用文本格式建立数据表之间的索引结构数据模型,可以有效减少对数据的访问压力。同时本发明造业务处理过程中可以直接从缓存中获取数据,提高数据查询效率且具有良好的可拓展性,可以支持大数据量下的存储查询需求。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
流程图中或在此以其它方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
本技术领域的普通技术人员可以理解,实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种大数据平台的数据同步方法,其特征在于,包括:
响应于数据同步指令,监控源数据库中的增量数据记录和删除数据记录;
根据所述增量数据记录和所述删除数据记录,生成增量数据同步触发指令和数据删除指令;
根据所述增量数据同步触发指令,将源数据库中的增量数据同步至目标数据库;
根据所述数据删除指令,从所述目标数据库中删除目标数据记录。
2.根据权利要求1所述的数据同步方法,其特征在于,所述根据所述增量数据记录和所述删除数据记录,生成增量数据同步触发指令和数据删除指令的步骤包括:
提取具有相同关键字段的所有候选增量数据记录和候选删除数据记录;
对所述候选增量数据记录和所述候选删除数据记录按照时间顺序进行排序;
从按照时间顺序进行排序的所述候选增量数据记录和所述候选删除数据记录确定目标增量数据记录和目标删除数据记录;
根据所述目标增量数据记录和所述目标删除数据记录分别生成增量数据同步触发指令和数据删除指令。
3.根据权利要求2所述的数据同步方法,其特征在于,所述根据所述数据删除指令,从所述目标数据库中删除目标数据记录的步骤包括:
将所述数据删除指令依序放入消息队列;
从所述消息队列中逐条读取所述数据删除指令,根据所述数据删除指令删除目标数据记录。
4.根据权利要求3所述的数据同步方法,其特征在于,所述根据所述数据删除指令删除目标数据记录的步骤包括:
提取所述素具删除指令中的关键词;
在所述目标数据库中查找所述关键词对应的目标数据记录;
删除所述目标数据记录。
5.根据权利要求1所述的数据同步方法,其特征在于,所述监控所述源数据库中的增量数据记录和删除数据记录的步骤包括:
通过监测所述源数据库中的临时增量表或时间戳来确定增量数据记录,其中所述临时增量表中记录发生增量变化的数据,所述时间戳表征发生数据变化的时刻;
通过抽取源数据库操作日志中的删除操作日志来确定删除数据记录。
6.一种大数据平台的数据同步装置,其特征在于,包括:
数据记录监控模块,适用于监控所述源数据库中的增量数据记录和删除数据记录;
指令生成模块,适用于根据所述增量数据记录和所述删除数据记录,生成增量数据同步触发指令和数据删除指令;
增量同步模块,适用于响应于所述增量数据同步触发指令,将源数据库中的增量数据同步至目标数据库;
删除模块,适用于根据所述数据删除指令,从所述目标数据库中删除目标数据记录。
7.根据权利要求6所述的数据同步装置,其特征在于,所述指令生成模块包括:
候选记录提取子模块,适用于提取具有相同关键字段的所有候选增量数据记录和候选删除数据记录;
排序子模块,适用于对所述候选增量数据记录和所述候选删除数据记录按照时间顺序进行排序;
目标记录确定子模块,适用于从按照时间顺序进行排序的所述候选增量数据记录和所述候选删除数据记录确定目标增量数据记录和目标删除数据记录;
指令生成子模块,适用于根据所述目标增量数据记录和所述目标删除数据记录分别生成增量数据同步触发指令和数据删除指令。
8.根据权利要求7所述的数据同步装置,其特征在于,所述删除模块包括:
关键词提取子模块,适用于提取所述删除操作日志中的关键词;
记录查找子模块,适用于在所述目标数据库中查找所述关键词对应的目标数据记录;
删除子模块,适用于删除所述目标数据记录。
9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至5任一项所述方法的步骤。
CN201910418941.XA 2019-05-20 2019-05-20 大数据平台数据同步方法、装置、计算机设备及存储介质 Pending CN110321383A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910418941.XA CN110321383A (zh) 2019-05-20 2019-05-20 大数据平台数据同步方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910418941.XA CN110321383A (zh) 2019-05-20 2019-05-20 大数据平台数据同步方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN110321383A true CN110321383A (zh) 2019-10-11

Family

ID=68113169

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910418941.XA Pending CN110321383A (zh) 2019-05-20 2019-05-20 大数据平台数据同步方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN110321383A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651519A (zh) * 2020-05-08 2020-09-11 携程计算机技术(上海)有限公司 数据同步方法、数据同步装置、电子设备及存储介质
CN111881091A (zh) * 2020-06-08 2020-11-03 微梦创科网络科技(中国)有限公司 数据存储方法、装置、电子设备及存储介质
CN112380227A (zh) * 2020-11-12 2021-02-19 平安科技(深圳)有限公司 基于消息队列的数据同步方法、装置、设备及存储介质
CN112445799A (zh) * 2020-11-19 2021-03-05 北京思特奇信息技术股份有限公司 一种单源多节点的数据同步方法和系统
CN112465630A (zh) * 2020-12-11 2021-03-09 天冕信息技术(深圳)有限公司 指标数据的处理方法、装置、设备及存储介质
CN113297239A (zh) * 2021-04-29 2021-08-24 上海淇玥信息技术有限公司 一种数据管理平台、方法及电子设备
CN114500569A (zh) * 2022-01-27 2022-05-13 中国工商银行股份有限公司 数据同步方法、装置、设备及存储介质
CN114817410A (zh) * 2022-06-23 2022-07-29 心鉴智控(深圳)科技有限公司 业务数据处理方法、装置、设备及存储介质
CN116431688A (zh) * 2022-11-14 2023-07-14 北京远舢智能科技有限公司 一种数据的处理方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140279920A1 (en) * 2013-03-15 2014-09-18 Amazon Technologies, Inc. Log record management
CN104834700A (zh) * 2015-04-27 2015-08-12 南京邮电大学 一种基于轨迹变更的移动数据增量捕获方法
CN107590277A (zh) * 2017-09-28 2018-01-16 泰康保险集团股份有限公司 数据同步方法、装置、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140279920A1 (en) * 2013-03-15 2014-09-18 Amazon Technologies, Inc. Log record management
CN104834700A (zh) * 2015-04-27 2015-08-12 南京邮电大学 一种基于轨迹变更的移动数据增量捕获方法
CN107590277A (zh) * 2017-09-28 2018-01-16 泰康保险集团股份有限公司 数据同步方法、装置、电子设备及存储介质

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651519A (zh) * 2020-05-08 2020-09-11 携程计算机技术(上海)有限公司 数据同步方法、数据同步装置、电子设备及存储介质
CN111651519B (zh) * 2020-05-08 2023-04-25 携程计算机技术(上海)有限公司 数据同步方法、数据同步装置、电子设备及存储介质
CN111881091A (zh) * 2020-06-08 2020-11-03 微梦创科网络科技(中国)有限公司 数据存储方法、装置、电子设备及存储介质
CN112380227A (zh) * 2020-11-12 2021-02-19 平安科技(深圳)有限公司 基于消息队列的数据同步方法、装置、设备及存储介质
CN112380227B (zh) * 2020-11-12 2024-05-07 平安科技(深圳)有限公司 基于消息队列的数据同步方法、装置、设备及存储介质
CN112445799A (zh) * 2020-11-19 2021-03-05 北京思特奇信息技术股份有限公司 一种单源多节点的数据同步方法和系统
CN112465630B (zh) * 2020-12-11 2024-03-26 天冕信息技术(深圳)有限公司 指标数据的处理方法、装置、设备及存储介质
CN112465630A (zh) * 2020-12-11 2021-03-09 天冕信息技术(深圳)有限公司 指标数据的处理方法、装置、设备及存储介质
CN113297239A (zh) * 2021-04-29 2021-08-24 上海淇玥信息技术有限公司 一种数据管理平台、方法及电子设备
CN114500569A (zh) * 2022-01-27 2022-05-13 中国工商银行股份有限公司 数据同步方法、装置、设备及存储介质
CN114817410A (zh) * 2022-06-23 2022-07-29 心鉴智控(深圳)科技有限公司 业务数据处理方法、装置、设备及存储介质
CN116431688A (zh) * 2022-11-14 2023-07-14 北京远舢智能科技有限公司 一种数据的处理方法、装置、电子设备及存储介质
CN116431688B (zh) * 2022-11-14 2024-05-03 北京远舢智能科技有限公司 一种数据的处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN110321383A (zh) 大数据平台数据同步方法、装置、计算机设备及存储介质
US9130971B2 (en) Site-based search affinity
CN110292775B (zh) 获取差异数据的方法及装置
CN108536752B (zh) 一种数据同步方法、装置和设备
CN109034993A (zh) 对账方法、设备、系统及计算机可读存储介质
KR101125911B1 (ko) 업무 프로세스 분석을 위한 정보 처리 방법 및 장치
CN110489699B (zh) 一种异步数据采集方法及系统
CN110297866A (zh) 基于日志分析的数据同步方法及数据同步装置
EP3456360A1 (en) Device and method for tuning relational database
WO2013121181A1 (en) Method of machine learning classes of search queries
KR101740271B1 (ko) 온라인 상에서 실시간으로 업데이트되는 대규모 오디오 핑거프린트 데이터베이스의 구축 방법 및 장치
CN110245145A (zh) 关系型数据库到Hadoop数据库的结构同步方法和装置
CN110417873B (zh) 一种实现记录网页交互操作的网络信息提取系统
CN109376196A (zh) 一种redo日志批量同步方法及装置
CN110019469A (zh) 分布式数据库数据处理方法、装置、存储介质及电子装置
JP2016076003A (ja) 命令履歴分析プログラム、命令履歴分析装置、および、命令履歴分析方法
CN109271545A (zh) 一种特征检索方法及装置、存储介质和计算机设备
CN106802928B (zh) 电网历史数据管理方法及其系统
CN114416868B (zh) 一种数据同步方法、装置、设备及存储介质
CN113094442B (zh) 全量数据同步方法、装置、设备和介质
US10089350B2 (en) Proactive query migration to prevent failures
CN110554992B (zh) 一种分布式元数据路径管理方法、系统、终端及存储介质
CN107291938A (zh) 订单查询系统及方法
CN113778996A (zh) 一种大数据流数据处理方法、装置、电子设备及存储介质
CN109857768B (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