CN114780563A - 一种基于数据湖的拉链表处理方法及设备 - Google Patents

一种基于数据湖的拉链表处理方法及设备 Download PDF

Info

Publication number
CN114780563A
CN114780563A CN202210412171.XA CN202210412171A CN114780563A CN 114780563 A CN114780563 A CN 114780563A CN 202210412171 A CN202210412171 A CN 202210412171A CN 114780563 A CN114780563 A CN 114780563A
Authority
CN
China
Prior art keywords
data
historical
lake
change
update
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
CN202210412171.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.)
Shanghai Juyin Information Technology Co ltd
Original Assignee
Shanghai Juyin 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 Shanghai Juyin Information Technology Co ltd filed Critical Shanghai Juyin Information Technology Co ltd
Priority to CN202210412171.XA priority Critical patent/CN114780563A/zh
Publication of CN114780563A publication Critical patent/CN114780563A/zh
Pending legal-status Critical Current

Links

Images

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
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

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)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请的目的是提供一种基于数据湖的拉链表处理方法及设备,本申请通过获取数据源的历史快照数据,将所述历史快照数据写入数据湖,得到初始化后的历史拉链表,并记录所述历史拉链表的起始时间和结束时间;对所述数据源进行数据变更的监测,实时获取所述数据源中的变更数据;对所述变更数据进行数据分析,确定所述变更数据的变更模式;基于所述变更模式和所述历史拉链表,将所述变更数据更新写入至所述数据湖,实现了通过数据湖技术,对拉链表中的变更数据进行实时记录,从而解决数仓人员在处理拉链表过程中操作过于繁琐以及传统历史拉链表中统计的数据颗粒度不够细的问题。

Description

一种基于数据湖的拉链表处理方法及设备
技术领域
本申请涉及计算机领域,尤其涉及一种基于数据湖的拉链表处理方法及设备。
背景技术
目前,随着大数据及人工智能技术逐渐发展成熟,数据湖已广泛应用于各大互联网企业的实时及离线业务分析场景中来。现有数据湖技术主要基于hudi,iceberg,deltalake等开源项目实现。通过监听数据库的binglog日志,将业务数据库中的数据同步到数据湖中,之后在数仓中进行后续大数据量的业务处理。而现有的拉链表的数据模型,主要是基于天层级上的,以离线T+1形式将变动的数据进行新增,同时将变动的前一条数据的有效期进行变更。但是,如果想要记录更细粒度的数据变化(分钟级),这种常规的拉链表则无法有效的统计数据的变更情况。
现有的拉链表设计中,基于hudi数据湖技术,能够实时将数据的变更落地到数仓目前这一块还是比较空缺的。现有的拉链表设计中,拉链表数据模型是利用先从原始数据中获取一份快照数据存储到历史拉链表中,并将当前时间设定为启始时间,将一个固定的永久时间(例如9999-12-31)设定为结束时间。之后将当天变动的数据集放入到增量数据表中,将历史的数据拉链表跟当天变动的增量数据集进行左连接,关联上的数据说明已经出现变动,将这部分数据的截止时间进行更新,作为数据集,这部分就相当于历史数据了。之后再将增量数据表中的数据添加启始时间和结束时间,即该部分数据就也就是当天变动的数据。最后将上述的两部分数据进行合并生成新的全量历史拉链表覆盖原先的历史拉链表。这种方案虽然可以解决基于天层级方面的数仓侧拉链表问题,但是操作起来较为繁杂,且无法做到更细颗粒度层级的拉链表统计,同时也不适用于对实时性要求较高场景的应用等。
发明内容
本申请的一个目的是提供一种基于数据湖的拉链表处理方法及设备,以实现通过数据湖技术,对拉链表中的变更数据进行实时记录,从而解决数仓人员在处理拉链表过程中操作过于繁琐以及传统历史拉链表中统计的数据颗粒度不够细的问题。
根据本申请的一个方面,提供了一种基于数据湖的拉链表处理方法,其中,所述方法包括:
获取数据源的历史快照数据,将所述历史快照数据写入数据湖,得到初始化后的历史拉链表,并记录所述历史拉链表的起始时间和结束时间;
对所述数据源进行数据变更的监测,实时获取所述数据源中的变更数据;
对所述变更数据进行数据分析,确定所述变更数据的变更模式;
基于所述变更模式和所述历史拉链表,将所述变更数据更新写入至所述数据湖。
进一步地,上述一种基于数据湖的拉链表处理方法中,其中,所述获取数据源的历史快照数据,将所述历史快照数据写入数据湖,得到初始化后的历史拉链表,包括:
连接所述数据源,基于所述数据源中的数据表的自增索引,通过flink批处理方式获取所述数据表中的数据;
基于数据湖的数据批量插入命令,将所述数据表中的数据写入数据湖,得到所述历史拉链表。
进一步地,上述一种基于数据湖的拉链表处理方法中,其中,所述对所述数据源进行数据变更的监测,实时获取所述数据源中的变更数据,包括:
确定所述数据源中目标业务对应的目标业务字段;
基于所述数据源的binlog日志,通过数据库增量日志解析系统对所述数据源中的所述目标业务字段对应的数据进行数据变更的监测,实时获取所述目标业务字段对应的变更数据,并将所述变更数据发送至分布式发布订阅消息系统;
通过flink流处理方式实时获取所述分布式发布订阅消息系统中的所述变更数据。
进一步地,上述一种基于数据湖的拉链表处理方法中,其中,所述基于所述变更模式和所述历史拉链表,将所述变更数据更新写入至所述数据湖,包括:
若所述变更数据的变更模式为插入模式,则对所述插入模式对应的插入数据添加一个固定时间进行标记,并基于数据湖的插入更新命令,将标记后的所述插入数据写入所述数据湖。
进一步地,上述一种基于数据湖的拉链表处理方法中,其中,所述基于所述变更模式和所述历史拉链表,将所述变更数据更新写入至所述数据湖,还包括:
若所述变更数据的所述变更模式为更新模式,则对所述更新模式对应的更新数据进行解析,得到所述更新数据的更新部分和所述更新数据的原始部分;
将所述更新数据的所述更新部分和所述原始部分进行组装,得到拉链表更新数据,并基于数据湖的插入更新命令,将所述拉链表更新数据写入所述数据湖。
根据本申请的另一方面,还提供了一种非易失性存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行时,使所述处理器实现如上述一种基于数据湖的拉链表处理方法。
根据本申请的另一方面,还提供了一种基于数据湖的拉链表处理设备,其中,所述设备包括:
一个或多个处理器;
非易失性存储介质,用于存储一个或多个计算机可读指令,
当所述一个或多个计算机可读指令被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述一种基于数据湖的拉链表处理方法。
与现有技术相比,本申请通过获取数据源的历史快照数据,将所述历史快照数据写入数据湖,得到初始化后的历史拉链表,并记录所述历史拉链表的起始时间和结束时间;对所述数据源进行数据变更的监测,实时获取所述数据源中的变更数据;对所述变更数据进行数据分析,确定所述变更数据的变更模式;基于所述变更模式和所述历史拉链表,将所述变更数据更新写入至所述数据湖,实现了通过数据湖技术,对拉链表中的变更数据进行实时记录,从而解决数仓人员在处理拉链表过程中操作过于繁琐以及传统历史拉链表中统计的数据颗粒度不够细的问题。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种基于数据湖的拉链表处理方法的流程示意图;
图2示出根据本申请一个方面的一种基于数据湖的拉链表处理方法的项目层级图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
如图1所示,本申请一个方面的一种基于数据湖的拉链表处理方法的流程示意图。其中,所述方法包括:步骤S11、步骤S12、步骤S13及步骤S14,具体包括如下步骤:
步骤S11,获取数据源的历史快照数据,将所述历史快照数据写入数据湖,得到初始化后的历史拉链表,并记录所述历史拉链表的起始时间和结束时间。在此,通过将数据源中的历史快照数据写入数据湖,从而对数据源中的历史快照数据进行初始化,得到历史拉链表,以便后续基于数据源中的变更数据,在数据湖中对历史拉链表中的数据进行插入更新。
步骤S12,对所述数据源进行数据变更的监测,实时获取所述数据源中的变更数据。
需要说明的是,在对所述数据源进行数据变更的监测,实时获取所述数据源中的变更数据之前,需要判断数据源中的历史快照数据是否初始化完成。通过在外部设定一个监听任务对初始化模块进行监听,当初始化完成后,所述监听任务发出告警提示,基于所述告警提示信息,启动对所述数据源进行数据变更的监测任务,以便实时获取所述数据源中的变更数据,其中,启动对所述数据源进行数据变更的监测任务,包括但不限于自动启动和手动启动。
步骤S13,对所述变更数据进行数据分析,确定所述变更数据的变更模式。在此,变更数据包括插入数据和更新数据,其中,插入数据表示新增加的数据,更新数据表示删除或更新的数据;基于变更数据的不同,确定变更数据所对应的变更模式。
例如,在本申请中的一优选实施例中,变更数据的变更模式包括insert模式和update模式,其中,insert模式对应的变更数据中包含有“INSERT”标识字段,update模式对应的变更数据中包含有“UPDATE”标识字段,通过对变更数据的标识字段“INSERT/UPDATE”进行分析,确定变更数据的变更模式为insert模式或update模式,并基于变更数据的不同变更模式,对变更数据进行不同的操作。
步骤S14,基于所述变更模式和所述历史拉链表,将所述变更数据更新写入至所述数据湖。在此,根据变更数据对应的不同变更模式,采取不同的方式将变更数据写入数据湖中的历史拉链表,从而在数据湖中对历史拉链表中的数据进行插入更新,得到更新后的拉链表,并将更新后的拉链表同步到数据仓库,以便后续在数据仓库中对数据进行业务处理。
通过上述步骤S11至S14,本申请通过获取数据源的历史快照数据,将所述历史快照数据写入数据湖,得到初始化后的历史拉链表,并记录所述历史拉链表的起始时间和结束时间;对所述数据源进行数据变更的监测,实时获取所述数据源中的变更数据;对所述变更数据进行数据分析,确定所述变更数据的变更模式;基于所述变更模式和所述历史拉链表,将所述变更数据更新写入至所述数据湖,实现了通过数据湖技术,对拉链表中的变更数据进行实时记录,从而解决数仓人员在处理拉链表过程中操作过于繁琐以及传统历史拉链表中统计的数据颗粒度不够细的问题。
接着本申请的上述实施例,其中,所述获取数据源的历史快照数据,将所述历史快照数据写入数据湖,得到初始化后的历史拉链表,包括:
连接所述数据源,基于所述数据源中的数据表的自增索引,通过flink批处理方式获取所述数据表中的数据。在此,所述自增索引用于表示所述数据表中的数据范围,基于所述自增索引,确定数据表的数据范围,通过flink批处理方式批量获取所述数据表的数据范围内的数据。
例如,在本申请的一优选实施例中,将自增索引优选为以id的形式进行表示,通过Java数据库连接(Java Database Connectivity,JDBC)的方式连接数据源,基于所述数据源中的数据表的自增id,获取自增id的最大值和最小值,以此基于自增id确定所述数据表的数据范围,例如,数据源中的数据表A的自增id是从1-1000,自增id的最大值是1000,自增id的最小值是1,获取自增id的最大值1000和最小值1,从而确定了数据表A中的数据范围是1到1000,共1000条数据,从而通过flink批处理方式批量获取数据表A中的1000条数据。
基于数据湖的数据批量插入命令,将所述数据表中的数据写入数据湖,得到所述历史拉链表。
例如,在本申请的一优选实施例中,通过flink批处理方式批量处理所述数据范围1-1000内的1000条数据后,基于数据湖hudi的bulk_insert命令将所述1000条数据批量写入数据湖,得到所述历史拉链表,从而完成对所述数据源中的数据表A中的1000条数据的初始化。
接着本申请的上述实施例,其中,所述对所述数据源进行数据变更的监测,实时获取所述数据源中的变更数据,包括:
确定所述数据源中目标业务对应的目标业务字段。在此,基于业务需求,数仓人员会预先设置需要进行监测的目标业务对应的目标业务字段,并将目标业务字段预先写入到查询语句之中,以便后续通过查询语句对所述目标业务字段对应的数据进行监测。
例如,在本申请的一优选实施例中,数据表A中有a、b、c、d、e五个字段,自增id范围是1-1000,若基于业务需求,需要对其中的a、b、c三个字段进行监测,在预先在sql文件中将需要感知的字段a、b、c写入到查询语句中,以便后续基于sql文件对数据源中字段a、b、c对应的数据进行查询监测。
基于所述数据源的binlog日志,通过数据库增量日志解析系统对所述数据源中的所述目标业务字段对应的数据进行数据变更的监测,实时获取所述目标业务字段对应的变更数据,并将所述变更数据发送至分布式发布订阅消息系统。
在此,基于数据源的binlog日志,通过数据库增量日志解析系统Canal对binlog日志进行监测,以通过binlog日志的变化,实现对所述数据源中的所述目标业务字段对应的数据进行数据变更的监测,从而实时获取所述目标业务字段对应的变更数据,并将所述变更数据发送盒子分布式发布订阅消息系统Kafka。
通过flink流处理方式实时获取所述分布式发布订阅消息系统中的所述变更数据。在此,为了实时获取所述变更数据,通过flink流处理方式从所述分布式发布订阅消息系统Kafka中获取所述变更数据。
接着本申请的上述实施例,其中,所述基于所述变更模式和所述历史拉链表,将所述变更数据更新写入至所述数据湖,包括:
若所述变更数据的变更模式为插入模式,则对所述插入模式对应的插入数据添加一个固定时间进行标记,并基于数据湖的插入更新命令,将标记后的所述插入数据写入所述数据湖。
在此,为所述插入数据添加一个的固定时间作为结束时间,以此对所述插入数据进行标记,其中,不同的插入数据均对应一个统一的固定时间,以此表明当前数据为插入数据。
例如,在本申请的一优选实施例中,将所述固定时间优选为“9999-12-31”,若所述变更数据为insert模式,为所有插入数据都添加一个固定时间9999-12-31,以此实现对所述插入数据的标记,并将标记后的插入数据通过数据湖的upsert命令,将所述插入数据写入数据湖中的所述历史拉链表中。
接着本申请的上述实施例,其中,所述基于所述变更模式和所述历史拉链表,将所述变更数据更新写入至所述数据湖,还包括:
若所述变更数据的所述变更模式为更新模式,则对所述更新模式对应的更新数据进行解析,得到所述更新数据的更新部分和所述更新数据的原始部分。在此,所述更新数据的更新部分,表示此次数据基于上一次数据而发生变化的部分,包括删除的数据、变动的数据;所述更新数据的原始部分,表示此次数据发生变化之前的上一次数据。
将所述更新数据的所述更新部分和所述原始部分进行组装,得到拉链表更新数据,并基于数据湖的插入更新命令,将所述拉链表更新数据写入所述数据湖。在此,为了记录数据的变化状态,需要同时了解数据的历史信息和数据的变化信息,因此将需要将所述更新数据的所述更新部分和所述原始部分进行组装,以此反映数据的整个变化过程。
例如,在本申请的一优选实施例中,若所述变更模式为update模式,则对所述更新数据进行解析并重新组装,得到包含所述更新数据的更新部分和原始部分的拉链表更新数据,并将所述拉链表更新数据通过数据湖的upsert命令,将所述拉链表更新数据写入数据湖中的所述历史拉链表中。
在本申请中的一完整实施例中,首先,步骤一,创建sql文件,其中,所述sql文件中包含基于bulk_insert的建表语句、查询自增id的最大值和最小值的语句、基于最大值和最小值查询需要感知的字段的语句、基于upsert的建表语句以及将flink临时表数据插入数据湖hudi表中的插入语句,并保证上述语句的上述先后顺序,如图2所示,将创建完成的所述sql文件放到的sql目录下,其中,创建各语句的代码如下所示:
/**goods_zipper_hudi是hudi的表名称具体名称需基于hudi命名规范创建,此处建表语句是用于初始化*/
CREATETABLEif…;
/**此处为固定模板,更换时替换gc_source_sku_big_data为数据库原表即可*/
SELECTMAX(id)asmax_id,MIN(id)asmin_idfromgc_source_sku_big_data;
/**1.此处为固定模板,只需要替换gc_source_sku_big_data为数据库原表及将剩余字段名称替换成源表中需要被识别出的字段
**2.cast(gmtUpdatedaschar)asstart_time,’9999-12-31 00:00:00’as end_time为固定语句,不可替换*/
SELECTsku_no,common_name,approval_number,internal_id,merchant_id,price,trade_code,
Cast(gmtUpdated as char)as start_time,’9999-12-31 00:00:00’as end_time
FROM gc_source_sku_big_data WHERE id BETWEEN?AND?;
/**此处建表语句用于增量写入部分*/
CREATE TABLE if…;
/**goods_sku_table为虚拟表,自己指定即可,goods_zipper_hudi为hudi表,具体基于hudi命令规范创建*/
IESERT INTO goods_zipper_hudi SELECT*FROM goods_sku_table
其次,步骤二,如图2所示,进入bin目录下,执行初始化脚本,并将任务的名称及sql目录下编写的所述sql文件作为入参传入,如下所示:
/**jobname为自己给该flink任务定义的名称zipper.sql为步骤一中创建的sql文件具体名称自定义
shrun_zipper_init_job.shjobnamezipper.sql
最后,步骤三,当初始化脚本执行任务完成后,如图2所示,依旧在bin目录下,将初始化脚本替换成增量脚本,即数据变更,并将任务的名称及sql目录下编写的sql文件作为入参传入,如下所示:
/**jobname为自己给该flink任务定义的名称zipper.sql为步骤一中创建的sql文件具体名称自定义
shrun_zipper_incr_job.shjobnamezipper.sql
根据本申请的另一方面,还提供了一种非易失性存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行时,使所述处理器实现如上述一种基于数据湖的拉链表处理方法。
根据本申请的另一方面,还提供了一种基于数据湖的拉链表处理设备,其中,所述设备包括:
一个或多个处理器;
非易失性存储介质,用于存储一个或多个计算机可读指令,
当所述一个或多个计算机可读指令被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述一种基于数据湖的拉链表处理方法。
在此,所述一种基于数据湖的拉链表处理设备中的各实施例的详细内容,具体可参见上述一种基于数据湖的拉链表处理方法的实施例的对应部分,在此,不再赘述。
综上所述,本申请通过获取数据源的历史快照数据,将所述历史快照数据写入数据湖,得到初始化后的历史拉链表,并记录所述历史拉链表的起始时间和结束时间;对所述数据源进行数据变更的监测,实时获取所述数据源中的变更数据;对所述变更数据进行数据分析,确定所述变更数据的变更模式;基于所述变更模式和所述历史拉链表,将所述变更数据更新写入至所述数据湖,实现了通过数据湖技术,对拉链表中的变更数据进行实时记录,从而解决数仓人员在处理拉链表过程中操作过于繁琐以及传统历史拉链表中统计的数据颗粒度不够细的问题。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (7)

1.一种基于数据湖的拉链表处理方法,其中,所述方法包括:
获取数据源的历史快照数据,将所述历史快照数据写入数据湖,得到初始化后的历史拉链表,并记录所述历史拉链表的起始时间和结束时间;
对所述数据源进行数据变更的监测,实时获取所述数据源中的变更数据;
对所述变更数据进行数据分析,确定所述变更数据的变更模式;
基于所述变更模式和所述历史拉链表,将所述变更数据更新写入至所述数据湖。
2.根据权利要求1所述的方法,其中,所述获取数据源的历史快照数据,将所述历史快照数据写入数据湖,得到初始化后的历史拉链表,包括:
连接所述数据源,基于所述数据源中的数据表的自增索引,通过flink批处理方式获取所述数据表中的数据;
基于数据湖的数据批量插入命令,将所述数据表中的数据写入数据湖,得到所述历史拉链表。
3.根据权利要求1所述的方法,其中,所述对所述数据源进行数据变更的监测,实时获取所述数据源中的变更数据,包括:
确定所述数据源中目标业务对应的目标业务字段;
基于所述数据源的binlog日志,通过数据库增量日志解析系统对所述数据源中的所述目标业务字段对应的数据进行数据变更的监测,实时获取所述目标业务字段对应的变更数据,并将所述变更数据发送至分布式发布订阅消息系统;
通过flink流处理方式实时获取所述分布式发布订阅消息系统中的所述变更数据。
4.根据权利要求1所述的方法,其中,所述基于所述变更模式和所述历史拉链表,将所述变更数据更新写入至所述数据湖,包括:
若所述变更数据的变更模式为插入模式,则对所述插入模式对应的插入数据添加一个固定时间进行标记,并基于数据湖的插入更新命令,将标记后的所述插入数据写入所述数据湖。
5.根据权利要求1所述的方法,其中,所述基于所述变更模式和所述历史拉链表,将所述变更数据更新写入至所述数据湖,还包括:
若所述变更数据的所述变更模式为更新模式,则对所述更新模式对应的更新数据进行解析,得到所述更新数据的更新部分和所述更新数据的原始部分;
将所述更新数据的所述更新部分和所述原始部分进行组装,得到拉链表更新数据,并基于数据湖的插入更新命令,将所述拉链表更新数据写入所述数据湖。
6.一种非易失性存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行时,使所述处理器实现如权利要求1至5中任一项所述的方法。
7.一种基于数据湖的拉链表处理设备,其中,所述设备包括:
一个或多个处理器;
非易失性存储介质,用于存储一个或多个计算机可读指令,
当所述一个或多个计算机可读指令被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至5中任一项所述的方法。
CN202210412171.XA 2022-04-19 2022-04-19 一种基于数据湖的拉链表处理方法及设备 Pending CN114780563A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210412171.XA CN114780563A (zh) 2022-04-19 2022-04-19 一种基于数据湖的拉链表处理方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210412171.XA CN114780563A (zh) 2022-04-19 2022-04-19 一种基于数据湖的拉链表处理方法及设备

Publications (1)

Publication Number Publication Date
CN114780563A true CN114780563A (zh) 2022-07-22

Family

ID=82431994

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210412171.XA Pending CN114780563A (zh) 2022-04-19 2022-04-19 一种基于数据湖的拉链表处理方法及设备

Country Status (1)

Country Link
CN (1) CN114780563A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115470217A (zh) * 2022-11-14 2022-12-13 云筑信息科技(成都)有限公司 一种实时解决数仓模型变化响应问题的方法
CN115756960A (zh) * 2022-11-16 2023-03-07 湖南长银五八消费金融股份有限公司 误操作数据恢复方法、装置、计算机设备与存储介质
CN116383228A (zh) * 2023-06-05 2023-07-04 建信金融科技有限责任公司 数据处理方法、装置、计算机设备和存储介质
CN116821146A (zh) * 2023-08-31 2023-09-29 杭州玳数科技有限公司 一种基于Apache Iceberg的数据表列更新方法及系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115470217A (zh) * 2022-11-14 2022-12-13 云筑信息科技(成都)有限公司 一种实时解决数仓模型变化响应问题的方法
CN115756960A (zh) * 2022-11-16 2023-03-07 湖南长银五八消费金融股份有限公司 误操作数据恢复方法、装置、计算机设备与存储介质
CN116383228A (zh) * 2023-06-05 2023-07-04 建信金融科技有限责任公司 数据处理方法、装置、计算机设备和存储介质
CN116383228B (zh) * 2023-06-05 2023-08-25 建信金融科技有限责任公司 数据处理方法、装置、计算机设备和存储介质
CN116821146A (zh) * 2023-08-31 2023-09-29 杭州玳数科技有限公司 一种基于Apache Iceberg的数据表列更新方法及系统
CN116821146B (zh) * 2023-08-31 2023-12-08 杭州玳数科技有限公司 一种基于Apache Iceberg的数据表列更新方法及系统

Similar Documents

Publication Publication Date Title
CN114780563A (zh) 一种基于数据湖的拉链表处理方法及设备
CN110443552B (zh) 一种产品主数据信息自动传输的方法及装置
CN112732641A (zh) 一种电子档案的归档方法及装置、介质
CN105915381A (zh) 一种实现监控系统业务逻辑在线修改系统
WO2011116471A1 (en) Method and system for generating updated test data
CN112256581A (zh) 高仿真证券业交易类系统的日志回放测试方法及装置
CN104036034A (zh) 用于数据仓库的日志分析方法和装置
US10394844B2 (en) Integrating co-deployed databases for data analytics
CN113688396A (zh) 一种汽车信息安全风险评估自动化系统
CN113641651A (zh) 一种业务数据管理方法、系统及计算机存储介质
US7822587B1 (en) Hybrid database architecture for both maintaining and relaxing type 2 data entity behavior
CN112256544A (zh) 软件问题的预警方法及设备
US20100114631A1 (en) Managing reusable business process modeling (bpm) assets
US20080027966A1 (en) Dynamic creation of star-schema database structures and cubes
CN116185706A (zh) 数据备份方法、装置、计算及存储介质及电子设备
CN110334011A (zh) 一种执行测试用例的方法及装置
CN112799951B (zh) 用于计费系统的生成自动测试用例的方法与设备
CN112540752B (zh) 保险产品上线发布方法、装置、计算机设备及存储介质
CN111813880B (zh) 一种国土空间规划项目管理方法、系统及存储介质
CN111930387B (zh) 一种集成包的集成方法及装置、电子设备和存储介质
CN115185825A (zh) 接口测试的调度方法及装置
CN115292141B (zh) 基于滑动时间窗口的调度异常预警方法、监控服务器
CN115114268B (zh) 一种组织未来状态孪生方法、装置及设备
CN116610762B (zh) 一种企业数据资产的管理方法、设备及介质
CN117437038B (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