CN110781197B - 一种hive离线同步校验方法、装置及电子设备 - Google Patents

一种hive离线同步校验方法、装置及电子设备 Download PDF

Info

Publication number
CN110781197B
CN110781197B CN201910930903.2A CN201910930903A CN110781197B CN 110781197 B CN110781197 B CN 110781197B CN 201910930903 A CN201910930903 A CN 201910930903A CN 110781197 B CN110781197 B CN 110781197B
Authority
CN
China
Prior art keywords
incremental
data
hive
data table
module
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
CN201910930903.2A
Other languages
English (en)
Other versions
CN110781197A (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.)
Beijing Qilu Information Technology Co Ltd
Original Assignee
Beijing Qilu Information Technology 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 Beijing Qilu Information Technology Co Ltd filed Critical Beijing Qilu Information Technology Co Ltd
Priority to CN201910930903.2A priority Critical patent/CN110781197B/zh
Publication of CN110781197A publication Critical patent/CN110781197A/zh
Application granted granted Critical
Publication of CN110781197B publication Critical patent/CN110781197B/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/2372Updates performed during offline database operations
    • 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种hive离线同步校验方法、装置及电子设备,所述方法包括:分别获取hive表的增量流水数据表和增量数据表;根据所述增量流水数据表和增量数据表对hive同步业务库数据进行校验。本发明的hive离线同步校验方法,根据增量流水数据表和增量数据表对hive同步业务库数据进行校验,从校验机制上保证hive数据仓库的数据质量,能有效防止hive离线同步过程中数据的丢失,达到金融业对数据一致性的要求。

Description

一种hive离线同步校验方法、装置及电子设备
技术领域
本发明涉及计算机信息处理领域,具体而言,涉及一种hive离线同步校验方法、装置、电子设备及计算机可读介质。
背景技术
随着计算机技术的不断发展和信息化程度的不断提高,互联网快速发展,网络信息呈指数级增长,海量数据存储及应用也随之蓬勃发展。
在大数据处理领域中,hive作为建立在Hadoop上的开源数据仓库框架有着较为广泛的使用,其可以将结构化的数据文件映射为一张数据库表,并提供类SQL语言HQL的查询,可以方便的读取、写入和管理Hadoop中的海量数据集,越来越多的数据存储电子设备以hive作为数据管理仓库和数据处理分析工具。Hive采用的HQL与数据库sql最大的区别就是数据库sql支持数据更新,HQL却不支持,也就是HQL无法对数据进行update(更新)、delete(删除),只能通过insert(插入)变相实现update、delete。这个变相的实现过程容易导致数据丢失,也因此会导致现有的hive离线同步工具在同步过程中在数据丢失的问题。
发明内容
本发明旨在解决现有技术中hive离线同步过程中存在数据丢失的技术问题。
为了解决上述技术问题,本发明第一方面提出一种hive离线同步校验方法,所述方法包括:
分别获取hive表的增量流水数据表和增量数据表;
根据所述增量流水数据表和增量数据表对hive同步业务库数据进行校验。
在一种较佳的实施方式中,所述获取hive表的增量流水数据表包括:
通过canal同步业务库binlog到kafka;
通过流计算将binlog实时写到hive表中生成增量数据变更log;
根据所述增量数据变更log生成增量流水数据表。
在一种较佳的实施方式中,所述获取增量数据表包括:
通过DataX/Sqoop离线同步获取增量数据表。
在一种较佳的实施方式中,所述根据所述增量流水数据表和增量数据表对hive同步业务库数据进行校验包括:
对比所述增量流水数据表和增量数据表是否有差异;
若所述增量流水数据表和增量数据表有差异,确定所述增量数据表是否有数据缺失;
若所述增量数据表中有数据缺失,根据所述增量流水表补充所述增量数据表中的缺失数据。
在一种较佳的实施方式中,所述方法还包括:
根据补充后的增量数据表更新hive同步业务库数据。
在一种较佳的实施方式中,若所述增量流水数据表和增量数据表有差异,提示报警信息。
为解决上述技术问题,本发明第二方面提供一种hive离线同步校验装置,所述装置包括:
第一获取模块,用于获取hive表的增量流水数据表;
第二获取模块,用于获取hive表的增量数据表;
校验模块,用于根据所述增量流水数据表和增量数据表对hive同步业务库数据进行校验。
在一种较佳的实施方式中,所述第一获取模块包括:
同步模块,用于通过canal同步业务库binlog到kafka;
第一生成模块,用于通过流计算将binlog实时写到hive表中生成增量数据变更log;
第二生成模块,用于根据所述增量数据变更log生成增量流水数据表。
在一种较佳的实施方式中,所述第二获取模块具体用于通过DataX/Sqoop离线同步获取增量数据表。
在一种较佳的实施方式中,所述校验模块包括:
对比模块,用于对比所述增量流水数据表和增量数据表是否有差异;
确定模块,用于若所述增量流水数据表和增量数据表有差异,确定所述增量数据表是否有数据缺失;
补充模块,用于若所述增量数据表中有数据缺失,根据所述增量流水表补充所述增量数据表中的缺失数据。
在一种较佳的实施方式中,所述校验模块还包括:
更新模块,用于根据补充后的增量数据表更新hive同步业务库数据。
在一种较佳的实施方式中,所述校验模块还包括报警模块,用于若所述增量流水数据表和增量数据表有差异,提示报警信息。
为解决上述技术问题,本发明第三方面提供一种电子设备,包括:
处理器;以及
存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器执行上述的方法。
为了解决上述技术问题,本发明第四方面提出一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,当所述一个或多个程序被处理器执行时,实现上述方法。
本发明通过分别获取hive表的增量流水数据表和增量数据表;根据增量流水数据表和增量数据表对hive同步业务库数据进行校验,通过对比增量流水表和增量数据表的数据的差异,一旦发现数据丢失可及时补充hive同步业务库对应的数据,从校验机制上保证hive数据仓库的数据质量,达到金融业对数据一致性的要求。本发明的hive离线同步校验方法,根据增量流水数据表和增量数据表对hive同步业务库数据进行校验,能有效防止hive离线同步过程中数据的丢失,提高hive数据的一致性。
附图说明
为了使本发明所解决的技术问题、采用的技术手段及取得的技术效果更加清楚,下面将参照附图详细描述本发明的具体实施例。但需声明的是,下面描述的附图仅仅是本发明的示例性实施例的附图,对于本领域的技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他实施例的附图。
图1是本发明一种hive离线同步校验方法的流程图;
图2是本发明获取hive表的增量流水数据表的流程图;
图3a是本发明实施例源hive表示意图;
图3b是本发明实施例获取图3a中源hive表的增量流水数据表示意图;
图3c是本发明实施例获取图3a中源hive表的增量数据表示意图;
图3d是本发明实施例对图3c补充后的增量数据表示意图;
图4是本发明根据所述增量流水数据表和增量数据表对hive同步业务库数据进行校验步骤的流程图;
图5是本发明一种hive离线同步校验装置的结构框架示意图;
图6是根据本发明的一种电子设备的示例性实施例的结构框图;
图7是本发明一个计算机可读介质实施例的示意图。
具体实施方式
现在将参考附图来更加全面地描述本发明的示例性实施例,虽然各示例性实施例能够以多种具体的方式实施,但不应理解为本发明仅限于在此阐述的实施例。相反,提供这些示例性实施例是为了使本发明的内容更加完整,更加便于将发明构思全面地传达给本领域的技术人员。
在符合本发明的技术构思的前提下,在某个特定的实施例中描述的结构、性能、效果或者其他特征可以以任何合适的方式结合到一个或更多其他的实施例中。
在对于具体实施例的介绍过程中,对结构、性能、效果或者其他特征的细节描述是为了使本领域的技术人员对实施例能够充分理解。但是,并不排除本领域技术人员可以在特定情况下,以不含有上述结构、性能、效果或者其他特征的技术方案来实施本发明。
附图中的流程图仅是一种示例性的流程演示,不代表本发明的方案中必须包括流程图中的所有的内容、操作和步骤,也不代表必须按照图中所显示的的顺序执行。例如,流程图中有的操作/步骤可以分解,有的操作/步骤可以合并或部分合并,等等,在不脱离本发明的发明主旨的情况下,流程图中显示的执行顺序可以根据实际情况改变。
附图中的框图一般表示的是功能实体,并不一定必然与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
各附图中相同的附图标记表示相同或类似的元件、组件或部分,因而下文中可能省略了对相同或类似的元件、组件或部分的重复描述。还应理解,虽然本文中可能使用第一、第二、第三等表示编号的定语来描述各种器件、元件、组件或部分,但是这些器件、元件、组件或部分不应受这些定语的限制。也就是说,这些定语仅是用来将一者与另一者区分。例如,第一器件亦可称为第二器件,但不偏离本发明实质的技术方案。此外,术语“和/或”、“及/或”是指包括所列出项目中的任一个或多个的所有组合。
如图1是本发明提供的一种hive离线同步校验方法的流程图,如图1所示,所述方法包括:
S1、分别获取hive表的增量流水数据表和增量数据表;
其中,hive是一种数据库技术,可以定义数据库和表来分析结构化数据。对结构化数据的分析是以hive表方式存储数据,并通过查询hive表来分析。因此,hive数据仓的数据是以hive表的方式存储和更新的。本实施例中,所述增量流水数据表用于记录对hive表的每一个修改,可以用于反映实际hive表的数据变更。所述增量数据表用于记录hive表的新增数据,增量数据是上次导出之后的新数据。
示例性的,如图2所示,所述获取hive表的增量流水数据表包括:
S201、通过canal同步业务库binlog到kafka;
其中,canal是一款开源项目,基于对数据库增量日志的解析,提供增量数据订阅&消费,根据增量数据订阅&消费获取增量变更实现数据同步。
binlog是记录业务库更改的二进制日志,可以用来查看业务库的变更历史(如在某一具体时间点所有的HQL操作)、业务库增量备份和恢复(增量备份和基于时间点的恢复)、业务的复制(如主主业务库的复制、主从业务库的复制)。
kafka是一个分布式、分区的、多副本的、多订阅者的分布式日志系统。主要应用于日志收集系统和消息系统中。Kafka采用发布-订阅模式基于可靠的消息队列,在客户端应用和消息系统之间异步传递消息。
具体的,本步骤通过canal解析binlog的数据,由同步客户端syncClient订阅,然后实时推送到kafka。如果kafka服务异常,syncClient会进行回滚操作;这样,canal、kafka的异常退出,都不会影响数据的传输。
S202、通过流计算将binlog实时写到hive表中生成增量数据变更log;
流计算实时获取binlog的海量数据,经过实时分析处理,获得有价值的信息,将该信息实时写到hive表中生成增量数据变更log。流计算秉承数据的价值随着时间的流逝而降低的理念(如用户点击流),当事件或数据出现时立即进行处理,而不是缓存起来进行批量处理。本发明通过流计算可保证增量数据变更log的实时性,进而保证增量流水数据表的实时性。
S203、根据所述增量数据变更log生成增量流水数据表。
具体的,根据增量数据变更log及源hive表形成对应于源hive表的增量流水数据表。其中,增量流水数据表记录源hive表增量数据变更情况,即记录对源hive表的修改情况。示例性的,图3a为源hive表,时间点a的数据记录ABC、时间点b的数据记录ABCrD、时间点c的数据记录ABCDEF,图3b为通过步骤S201~S203获取的增量流水数据表,记录了源hive表时间点a到时间点b的数据变更情况:删除C,增加CrD,源hive表时间点b到时间点c的数据变更情况:插入EF。
本实施例中,所述增量数据表通过DataX/Sqoop离线同步获取。DataX是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。
本实施例中,所述离线同步是指在预定时间点对hive源数据同步。具体的,DataX直接在运行DataX的机器上进行增量数据的抽取及加载,其主要原理为:通过Reader插件读取源数据,Writer插件写入数据到目标,使用Job来控制同步作业。Sqoop使用sql语句获取关系型数据库中的数据后,通过hadoop的MapReduce把数据从关系型数据库中导入数据到HDFS,其通过指定递增列或者根据时间戳达到增量数据导入的目的。图3c为通过DataX/Sqoop离线同步获取的增量数据表,记录了源hive表时间点a到时间点b的增加数据:D,源hive表时间点b到时间点c的增加数据:EF。
S2、根据所述增量流水数据表和增量数据表对hive同步业务库数据进行校验。
本步骤进行校验的目的是防止hive离线同步过程中的数据丢失,如图4所示,本步骤具体包括:
S401、对比所述增量流水数据表和增量数据表是否有差异;
以图3b中增量流水数据表和图3c中的增量数据表为例,图3b记录了源hive表时间点a到时间点b的数据变更情况:删除C,增加CrD,图3c记录了源hive表时间点a到时间点b的增加数据:D;图3b记录源hive表时间点b到时间点c的数据变更情况:插入EF。图3c记录源hive表时间点b到时间点c的增加数据:EF。显然,在时间点b增量流水数据表和增量数据表记录有差异。
S402、若所述增量流水数据表和增量数据表有差异,确定所述增量数据表是否有数据缺失;
对比图3b与3c,在时间点b:增量流水数据表记录了数据r,而增量数据表未记录r,表明增量数据表有数据缺失。
S403、若所述增量流水数据表和增量数据表有差异,提示报警信息,
通过报警信息可以提示hive数据表同步过程中有数据错误或丢失。
上述步骤S402与步骤S403可同步执行也可异步执行,本发明不做具体限定。
S404、若所述增量数据表中有数据缺失,根据所述增量流水表补充所述增量数据表中的缺失数据。
具体的,将图3b中的数据r补充到图3c时间点b的数据位置,补充后的增量数据表如图3d所示。
S405、根据补充后的增量数据表更新hive同步业务库数据,实现hive数据同步的一致性。
图5是本发明一种hive离线同步校验装置的架构示意图,如图5所示,所述装置包括:
第一获取模块51,用于获取hive表的增量流水数据表;
第二获取模块52,用于获取hive表的增量数据表;
校验模块53,用于根据所述增量流水数据表和增量数据表对hive同步业务库数据进行校验。
在一种具体实施方式中,所述第一获取模块51进一步包括:
同步模块511,用于通过canal同步业务库binlog到kafka;
第一生成模块512,用于通过流计算将binlog实时写到hive表中生成增量数据变更log;
第二生成模块513,用于根据所述增量数据变更log生成增量流水数据表。
所述第二获取模块52具体用于通过DataX/Sqoop离线同步获取增量数据表。
所述校验模块53进一步的包括:
对比模块531,用于对比所述增量流水数据表和增量数据表是否有差异;
确定模块532,用于若所述增量流水数据表和增量数据表有差异,确定所述增量数据表是否有数据缺失;
补充模块533,用于若所述增量数据表中有数据缺失,根据所述增量流水表补充所述增量数据表中的缺失数据。
报警模块534,用于若所述增量流水数据表和增量数据表有差异,提示报警信息。
更新模块535,用于根据补充后的增量数据表更新hive同步业务库数据。
本领域技术人员可以理解,上述装置实施例中的各模块可以按照描述分布于装置中,也可以进行相应变化,分布于不同于上述实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
下面描述本发明的电子设备实施例,该电子设备可以视为对于上述本发明的方法和装置实施例的实体形式的实施方式。对于本发明电子设备实施例中描述的细节,应视为对于上述方法或装置实施例的补充;对于在本发明电子设备实施例中未披露的细节,可以参照上述方法或装置实施例来实现。
图6是根据本发明的一种电子设备的示例性实施例的结构框图。图6显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,该示例性实施例的电子设备600以通用数据处理设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同电子设备组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
其中,所述存储单元620存储有计算机可读程序,其可以是源程序或都只读程序的代码。所述程序可以被处理单元610执行,使得所述处理单元610执行本发明各种实施方式的步骤。例如,所述处理单元610可以执行如图1所示的步骤。
所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作电子设备、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备300(例如键盘、显示器、网络设备、蓝牙设备等)通信,使得用户能经由这些外部设备600与该电子设备600交互,和/或使得该电子设备600能与一个或多个其它数据处理设备(例如路由器、调制解调器等等)进行通信。这种通信可以通过输入/输出(I/O)接口650进行,还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)进行。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图6中未示出,电子设备600中可使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID电子设备、磁带驱动器以及数据备份存储电子设备等。
图7是本发明的一个计算机可读介质实施例的示意图。如图7所示,所述计算机程序可以存储于一个或多个计算机可读介质上。计算机可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的电子设备、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。当所述计算机程序被一个或多个数据处理设备执行时,使得该计算机可读介质能够实现本发明的上述方法,即:分别获取hive表的增量流水数据表和增量数据表;根据所述增量流水数据表和增量数据表对hive同步业务库数据进行校验。
通过以上的实施方式的描述,本领域的技术人员易于理解,本发明描述的示例性实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读的存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台数据处理设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明的上述方法。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行电子设备、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
综上所述,本发明可以执行计算机程序的方法、装置、电子设备或计算机可读介质来实现。可以在实践中使用微处理器或者数字信号处理器(DSP)等通用数据处理设备来实现本发明的一些或者全部功能。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种hive离线同步校验方法,其特征在于,所述方法包括:
分别获取hive表的增量流水数据表和增量数据表;所述增量流水数据表用于记录对hive表的每一个修改并用于反映实际hive表的数据变更,所述增量数据表用于记录hive表的新增数据;
其中,通过DataX或者Sqoop离线同步获取所述增量数据表;以及,通过canal同步业务库binlog到kafka,通过流计算将binlog实时写到hive表中生成增量数据变更log,以及根据所述增量数据变更log生成所述增量流水数据表;
根据所述增量流水数据表和增量数据表对hive同步业务库数据进行校验。
2.根据权利要求1所述的方法,其特征在于,
通过canal同步业务库binlog到kafka,包括:通过canal解析binlog的数据,由同步客户端syncClient订阅,然后实时推送到kafka;
通过流计算将binlog实时写到hive表中生成增量数据变更log,包括:流计算实时获取binlog的海量数据,经过实时分析处理而获得有价值的信息,将有价值的信息实时写到hive表中生成增量数据变更log;
根据所述增量数据变更log生成增量流水数据表,包括:根据所述增量数据变更log及源hive表形成对应于源hive表的增量流水数据表。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述增量流水数据表和增量数据表对hive同步业务库数据进行校验包括:
对比所述增量流水数据表和增量数据表是否有差异;
若所述增量流水数据表和增量数据表有差异,确定所述增量数据表是否有数据缺失;
若所述增量数据表中有数据缺失,根据所述增量流水数据表补充所述增量数据表中的缺失数据。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据补充后的增量数据表更新hive同步业务库数据。
5.根据权利要求3所述的方法,其特征在于,还包括:若所述增量流水数据表和增量数据表有差异,提示报警信息。
6.一种hive离线同步校验装置,其特征在于,所述装置包括:
第一获取模块,用于获取hive表的增量流水数据表,所述增量流水数据表用于记录对hive表的每一个修改并用于反映实际hive表的数据变更,具体包括:同步模块,用于通过canal同步业务库binlog到kafka;第一生成模块,用于通过流计算将binlog实时写到hive表中生成增量数据变更log;第二生成模块,用于根据所述增量数据变更log生成所述增量流水数据表;
第二获取模块,用于通过DataX或者Sqoop离线同步获取hive表的增量数据表,所述增量数据表用于记录hive表的新增数据;
校验模块,用于根据所述增量流水数据表和增量数据表对hive同步业务库数据进行校验。
7.根据权利要求6所述的装置,其特征在于,
所述同步模块具体用于:通过canal解析binlog的数据,由同步客户端syncClient订阅,然后实时推送到kafka;
所述第一生成模块具体用于:流计算实时获取binlog的海量数据,经过实时分析处理而获得有价值的信息,将有价值的信息实时写到hive表中生成增量数据变更log;
第二生成模块具体用于:根据所述增量数据变更log及源hive表形成对应于源hive表的增量流水数据表。
8.根据权利要求6或7所述的装置,其特征在于,所述校验模块包括:
对比模块,用于对比所述增量流水数据表和增量数据表是否有差异;
确定模块,用于若所述增量流水数据表和增量数据表有差异,确定所述增量数据表是否有数据缺失;
补充模块,用于若所述增量数据表中有数据缺失,根据所述增量流水数据表补充所述增量数据表中的缺失数据。
9.根据权利要求8所述的装置,其特征在于,所述校验模块还包括:
更新模块,用于根据补充后的增量数据表更新hive同步业务库数据。
10.根据权利要求8所述的装置,其特征在于,所述校验模块还包括报警模块,用于若所述增量流水数据表和增量数据表有差异,提示报警信息。
11.一种电子设备,包括:
处理器;以及
存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器执行根据权利要求1-5中任一项所述的方法。
12.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,当所述一个或多个程序被处理器执行时,实现权利要求1-5中任一项所述的方法。
CN201910930903.2A 2019-09-29 2019-09-29 一种hive离线同步校验方法、装置及电子设备 Active CN110781197B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910930903.2A CN110781197B (zh) 2019-09-29 2019-09-29 一种hive离线同步校验方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910930903.2A CN110781197B (zh) 2019-09-29 2019-09-29 一种hive离线同步校验方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN110781197A CN110781197A (zh) 2020-02-11
CN110781197B true CN110781197B (zh) 2023-09-26

Family

ID=69384651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910930903.2A Active CN110781197B (zh) 2019-09-29 2019-09-29 一种hive离线同步校验方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN110781197B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111522832B (zh) * 2020-05-09 2024-04-19 深圳市铭墨科技有限公司 一种大数据实时更新方法、系统、设备和存储介质
CN112527903A (zh) * 2020-12-11 2021-03-19 北京首汽智行科技有限公司 一种基于canal平台的数据同步方法
CN113778764B (zh) * 2021-08-24 2023-10-27 百融至信(北京)科技有限公司 一种hbase数据双活系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107689998A (zh) * 2017-09-14 2018-02-13 平安科技(深圳)有限公司 一种增量数据同步方法及终端设备
CN109284334A (zh) * 2018-09-05 2019-01-29 拉扎斯网络科技(上海)有限公司 实时数据库同步方法、装置、电子设备及存储介质
CN110046168A (zh) * 2019-03-28 2019-07-23 苏宁易购集团股份有限公司 一种增量数据一致性实现方法及装置
CN110175211A (zh) * 2019-05-05 2019-08-27 中国银行股份有限公司 一种数据同步方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9977706B2 (en) * 2016-04-25 2018-05-22 Acronis International Gmbh System and method of validating data for incremental format of backup archive

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107689998A (zh) * 2017-09-14 2018-02-13 平安科技(深圳)有限公司 一种增量数据同步方法及终端设备
CN109284334A (zh) * 2018-09-05 2019-01-29 拉扎斯网络科技(上海)有限公司 实时数据库同步方法、装置、电子设备及存储介质
CN110046168A (zh) * 2019-03-28 2019-07-23 苏宁易购集团股份有限公司 一种增量数据一致性实现方法及装置
CN110175211A (zh) * 2019-05-05 2019-08-27 中国银行股份有限公司 一种数据同步方法及装置

Also Published As

Publication number Publication date
CN110781197A (zh) 2020-02-11

Similar Documents

Publication Publication Date Title
CN107402963B (zh) 搜索数据的构建方法、增量数据的推送方法及装置和设备
CN108920698B (zh) 一种数据同步方法、装置、系统、介质及电子设备
US10255108B2 (en) Parallel execution of blockchain transactions
WO2022126974A1 (zh) 基于Kafka的增量数据同步方法、装置、设备及介质
CN107506451B (zh) 用于数据交互的异常信息监控方法及装置
CN110647579A (zh) 数据同步方法及装置、计算机设备与可读介质
CN110781197B (zh) 一种hive离线同步校验方法、装置及电子设备
CN108536761A (zh) 报表数据查询方法及服务器
US9465880B2 (en) Optimizing storage in a publish / subscribe environment
CN109558400A (zh) 数据处理方法、装置、设备和存储介质
CN111324610A (zh) 一种数据同步的方法及装置
CN104572689A (zh) 数据同步方法、装置及系统
CN108958959B (zh) 检测hive数据表的方法和装置
US11977532B2 (en) Log record identification using aggregated log indexes
CN112559475B (zh) 数据实时捕获和传输方法及系统
US11907260B2 (en) Compare processing using replication log-injected compare records in a replication environment
CN112948486A (zh) 批量数据同步方法、系统及电子设备
EP4145298A1 (en) Method and apparatus for snapshotting metadata
CN110990365A (zh) 一种数据同步方法、装置、服务器及存储介质
WO2023000785A1 (zh) 用于处理数据的方法、装置、系统、服务器和介质
CN111338834B (zh) 数据存储方法和装置
CN114416868B (zh) 一种数据同步方法、装置、设备及存储介质
CN115858488A (zh) 基于数据治理的平行迁移方法、装置及可读介质
EP2904520B1 (en) Reference data segmentation from single to multiple tables
CN112148705A (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