基于数仓的数据存储方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:38101707 阅读:12 留言:0更新日期:2023-07-06 09:20
本申请实施例属于数据仓库技术领域,涉及一种基于数仓的数据存储方法、装置、计算机设备及存储介质,方法包括下述步骤:将数据库中的新日志同步至数仓;对新日志进行解析,获取目标操作信息;在目标操作信息上插入标签;根据标签获取目标数据。本申请对同步至数仓的新日志进行解析,获取目标操作信息,对目标操作信息打上标签,然后根据标签获取目标数据,无需拉链表繁琐的计算方式。相比于拉链表的方式,本申请既有拉链表节省存储空间的优势,又可以节省计算资源,还能支持准确重跑历史相关数据分析任务。数据分析任务。数据分析任务。

【技术实现步骤摘要】
基于数仓的数据存储方法、装置、计算机设备及存储介质


[0001]本申请涉及数据仓库
,尤其涉及基于数仓的数据存储方法、装置、计算机设备及存储介质。

技术介绍

[0002]传统数据库会基于业务变化,反应业务的状态,例如用户ID、年龄、照片、名称、年龄等信息发生更改,但是不会对历史状态进行保存。与传统数据库用途不同,数仓会将历史状态都保存下来,支持海量数据的存储和查询,但是并不支持更新和删除。
[0003]因此,业务数据库是数仓的数据的来源。目前从业务库同步过来的数据在数仓中的组织和更新方式主要有全量分区和增量分区。全量分区:即每天存储一份对应业务数据库的表的历史全量快照;增量分区:即每天存储一份对应业务数据库的表的新增数据。
[0004]增量分区存储的是业务数据库那种表的数据不会发生改变的,比如金融流水,所以每天保留新增的数据,也就相当于是最新的快照,需要所有的数据,取全部的分区的数据即可。全量分区存储的是,会发生变化的数据,那么就需要每天保留一份全量的快照,以便分析和追溯每天的一个数据情况。但是全量分区的缺陷是每天保留一份全量的快照,对于存储空间的占用非常大(相当于每天复制一张表,且每天都要保留下来)。
[0005]所以业界对上述情况的优化方案是拉链表,拉链表对于没有产生变化的数据,只保留一份,对于产生变化的数据,只保留变化的状态,极大地减少了存储空间的浪费。但是这个方案对计算资源使用比较多,并且重跑历史相关的数据分析任务可能会造成数据不准确。

技术实现思路

[0006]本申请实施例的目的在于提出一种基于数仓的数据存储方法、装置、计算机设备及存储介质,解决计算资源使用多,重跑历史相关数据分析任务造成数据不准确的技术问题。
[0007]为了解决上述技术问题,本申请实施例提供一种基于数仓的数据存储方法,采用了如下所述的技术方案:
[0008]基于数仓的数据存储方法,包括下述步骤:
[0009]将数据库中的新日志同步至数仓;
[0010]对新日志进行解析,获取目标操作信息;
[0011]在目标操作信息上插入标签;
[0012]根据标签获取目标数据。
[0013]进一步的,所述将数据库中的新日志同步至数仓的步骤,包括:
[0014]对存储日志的数据库进行监听;
[0015]当监听到数据库生成新日志时,将新日志同步至数仓中。
[0016]进一步的,所述对新日志进行解析,获取目标操作信息的步骤,包括:
[0017]对新日志进行解析,获取新增操作信息,其中,新增操作信息包括明细数据的信息及对应的操作日志;
[0018]结合新增操作信息和数仓中的历史操作信息,对新增操作信息和历史操作信息中的所有操作信息进行排序,将至少一条操作信息作为目标操作信息。
[0019]进一步的,所述结合新增操作信息和数仓中的历史操作信息,对新增操作信息和历史操作信息中的所有操作信息进行排序,将至少一条操作信息作为目标操作信息的步骤,包括:
[0020]根据预设的排序周期,将对应同一账户的操作信息按照生成的时间进行排序,得到操作历史;
[0021]将操作历史中最新的操作信息作为目标操作信息。
[0022]进一步的,根据标签获取目标数据的步骤,包括:
[0023]目标数据为目标账户在目标日期的历史状态,根据标签获取目标账户在目标日期的历史状态,其中,标签包括目标操作信息的有效日期。
[0024]进一步的,所述目标数据为目标账户在目标日期的历史状态,根据标签获取目标账户在目标日期的历史状态的步骤,包括:
[0025]所述当需要目标账户在目标日期的历史状态时,根据标签获取目标账户在目标日期的历史状态的步骤,包括:
[0026]当需要目标账户在目标日期的历史状态时,根据目标日期将目标账户中带有标签的目标操作信息作为目标账户的历史状态;
[0027]根据目标账户的历史状态进行标签过滤,得到目标账户在目标日期的历史状态。
[0028]进一步的,所述对存储日志的数据库进行监听的步骤,包括:
[0029]使用canal监控业务数据库的数据变化日志。
[0030]为了解决上述技术问题,本申请实施例还提供一种基于数仓的数据存储装置,采用了如下所述的技术方案:
[0031]一种基于数仓的数据存储装置,包括:
[0032]同步模块,用于将数据库中的新日志同步至数仓;
[0033]解析模块,用于对新日志进行解析,获取目标操作信息;
[0034]插入模块,用于在目标操作信息上插入标签;及
[0035]获取模块,根据标签获取目标数据。
[0036]为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
[0037]一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述的基于数仓的数据存储方法的步骤。
[0038]为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
[0039]一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于数仓的数据存储方法的步骤。
[0040]与现有技术相比,本申请实施例主要有以下有益效果:
[0041]业务数据库中业务更改或更新时,业务数据库的操作日志会生成binlog日志,以
记录业务数据库的操作明细,将数据库中的新日志同步至数仓,对新日志进行解析,获取目标操作信息,在目标操作信息上插入标签,通过map类型字段flag,标记目标操作信息的有效日期,当需要目标账户在目标日期的历史状态时,根据标签获取目标账户在目标日期的历史状态。本申请实施例优化拉链表的实现方式,使用标签的方式,当业务数据库中业务更改或更新时,对同步至数仓的新日志进行解析,获取目标操作信息,对目标操作信息打上标签,然后根据标签获取目标账户在目标日期的历史状态,无需拉链表繁琐的计算方式。相比于拉链表的方式,本申请既有拉链表节省存储空间的优势,又可以节省计算资源,还能支持准确重跑历史相关数据分析任务。
附图说明
[0042]为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0043]图1是本申请可以应用于其中的示例性系统架构图;
[0044]图2根据本申请的基于数仓的数据存储方法的一个实施例的流程图;
[0045]图3是图2中步骤S101的一种具体实施方式的流程图;
[0046]图4是图2中步骤S102的一种具体实施方式的流程图;
[0047]图5是图2中步骤S104的一种具体实施方式的流程图本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于数仓的数据存储方法,其特征在于,包括下述步骤:将数据库中的新日志同步至数仓;对新日志进行解析,获取目标操作信息;在目标操作信息上插入标签;根据标签获取目标数据。2.根据权利要求1所述的基于数仓的数据存储方法,其特征在于,所述将数据库中的新日志同步至数仓的步骤,包括:对存储日志的数据库进行监听;当监听到数据库生成新日志时,将新日志同步至数仓中。3.根据权利要求1所述的基于数仓的数据存储方法,其特征在于,所述对新日志进行解析,获取目标操作信息的步骤,包括:对新日志进行解析,获取新增操作信息,其中,新增操作信息包括明细数据的信息及对应的操作日志;结合新增操作信息和数仓中的历史操作信息,对新增操作信息和历史操作信息中的所有操作信息进行排序,将至少一条操作信息作为目标操作信息。4.根据权利要求3所述的基于数仓的数据存储方法,其特征在于,所述结合新增操作信息和数仓中的历史操作信息,对新增操作信息和历史操作信息中的所有操作信息进行排序,将至少一条操作信息作为目标操作信息的步骤,包括:根据预设的排序周期,将对应同一账户的操作信息按照生成的时间进行排序,得到操作历史;将操作历史中最新的操作信息作为目标操作信息。5.根据权利要求1所述的基于数仓的数据存储方法,其特征在于,所述根据标签获取目标数据的步骤,包括:目标数据为目标账户在目标日期的历史状...

【专利技术属性】
技术研发人员:王桦范峰王友伦
申请(专利权)人:广东映客互娱网络信息有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1