CN117251448B - 一种宽表拉链表数据处理方法及装置 - Google Patents
一种宽表拉链表数据处理方法及装置 Download PDFInfo
- Publication number
- CN117251448B CN117251448B CN202311207103.0A CN202311207103A CN117251448B CN 117251448 B CN117251448 B CN 117251448B CN 202311207103 A CN202311207103 A CN 202311207103A CN 117251448 B CN117251448 B CN 117251448B
- Authority
- CN
- China
- Prior art keywords
- data
- wide
- zipper
- incremental
- auxiliary
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 83
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000005192 partition Methods 0.000 claims abstract description 47
- 230000008569 process Effects 0.000 claims abstract description 20
- 230000005012 migration Effects 0.000 claims abstract description 17
- 238000013508 migration Methods 0.000 claims abstract description 17
- 238000013075 data extraction Methods 0.000 claims abstract description 11
- 238000012217 deletion Methods 0.000 claims abstract description 8
- 230000037430 deletion Effects 0.000 claims abstract description 8
- 238000001914 filtration Methods 0.000 claims description 42
- 230000008859 change Effects 0.000 claims description 22
- 238000003672 processing method Methods 0.000 claims description 3
- 238000003860 storage Methods 0.000 abstract description 15
- 238000010586 diagram Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 7
- 230000006399 behavior Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004140 cleaning Methods 0.000 description 2
- 230000000875 corresponding effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
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)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种宽表拉链表数据处理方法及装置,从宽表拉链表的数据源表中抽取增量数据,并根据所述增量数据及宽表拉链表的历史数据,加工获取宽表拉链表增量数据;将宽表拉链表增量数据与历史数据进行整合,将历史数据设置为失效状态,将增量数据设置为生效状态,在宽表拉链表中插入增量数据。本发明方案包括了源表增量数据提取、宽表拉链表增量数据加工、宽表拉链表数据处理、宽表拉链表数据删除、宽表拉链表数据月迁处理等一整套宽表拉链解决方案,能够解决全量分区表数据冗余存储问题,实现多源表数据组成的宽表拉链表,减轻拉链表加工的复杂过程,降低宽表拉链表的实现难度。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种宽表拉链表数据处理方法及装置。
背景技术
现有技术中,随着计算机互联网技术的不断发展,我们的生活已经被数字信息所包围,而这些数字信息就是我们通常所说的”数据”。面对数据爆炸式的增长,对服务器数量的需求量越来越高,数据建设陷入了计算不够用,存储不够用的窘境。
面对这种资源紧缺的困难,业内对各类数据进行了多维度、全场景的统计分析,经过分类,得出以下三类数据:客户基础信息数据、客户行为数据、客户状态类数据。
客户基础信息数据主要用于客户分布情况分析,客户基础信息里面包含了:客户姓名、出生年月、性别、学历等信息。
客户行为数据主要用于分析客户交易行为,交易偏好等,客户行为数据中包含:客户交易明细数据、客户浏览记录等
客户状态类数据主要用于分析客户价值情况,客户状态类数据包含了客户资产、账户资产等信息。
一般情况下,客户行为数据的数据量巨大,但是属于增量类、静态类数据,一旦产生即不会对数据本身进行变更。客户基础信息数据和客户状态类数据主要来源于业务数据库中的上产数据,会频繁的进行增删改查。在数据仓库中需要记录数据任意时点的情况。
客户行为类数据一般采用增量表方式进行数据存储,数据按照日期进行分区,将每日新增数据单独存放在独立分区中。对于客户基础信息数据和客户状态类数据一般采用全量分区表模式进行存储,需要永久保存,但是受限与存储容量,可能会定期删除最早的历史分区。
全量分区表是按照日期对当日的全量数据进行分区存储,数据在全量分区表的每一份分区中都存储一份,对于没有变化的数据会存在重复存储的问题,当数据变化频率低时,重复存储比例大大增加。如果定期删除全量分区表的最早历史分区,在进行数据分析时,无法满足“随时间变化的”、“信息本身相对稳定的”。
发明内容
本发明提供一种宽表拉链表数据处理方法及装置,用以解决全量分区表数据冗余存储问题,实现多源表数据组成的宽表拉链表,减轻拉链表加工的复杂过程,降低宽表拉链表的实现难度。
根据本发明的一个方面,提供了一种宽表拉链表数据处理方法,包括以下步骤:
从宽表拉链表的数据源表中抽取增量数据,并根据所述增量数据及宽表拉链表的历史数据,加工获取宽表拉链表增量数据;
将宽表拉链表增量数据与历史数据进行整合,将历史数据设置为失效状态,将增量数据设置为生效状态,在宽表拉链表中插入增量数据。
所述从宽表拉链表的数据源表中抽取增量数据,并根据所述增量数据及宽表拉链表的历史数据,加工获取宽表拉链表增量数据,包括:
从组成宽表拉链的数据表中选择一张表作为主表,其它表作为辅助表;
从主表中提取主表增量数据;获取一张辅助表全量数据,并与主表增量数据进行关联,获取主表变化与辅助表的拉平数据;
关联所有辅助表,获取由于主表发生变化产生的增量数据信息;
获取辅助表新增数据及从宽表拉链表中获取宽表最新切面数据;利用辅助表的数据更新宽表切面数据,并记录数据更新标识;
过滤宽表切面数据,保留被更新过的数据;
根据主表、辅助表的数据拉平结果表与宽表切面更新后的更新表,进行反向关联,去除两个结果集中重复的数据;
将主表、辅助表的数据拉平结果表数据与去除两个结果集中重复的结果数据进行合并处理,得到宽表拉链表增量数据。
所述方法还包括:
当存在多张辅助表时,依次获取辅助表的增量数据,从宽表拉链表中获取宽表最新切面数据;利用辅助表的数据更新宽表切面数据,并记录数据更新标识。
所述将宽表拉链表增量数据与历史数据进行整合,将历史数据设置为失效状态,将增量数据设置为生效状态,在宽表拉链表中插入增量数据,包括:
获取宽表拉链表增量数据,并进行数据去重处理;
获取拉链表数据切面,并利用拉链表切面数据和增量去重后数据进行关联,获取变更数据;
创建临时数据表;
从变更数据中过滤出无历史的新增数据,写入临时表中;
从变更数据中过滤出有历史的新增数据,将新增数据写入临时表中;
从变更数据中过滤出受影响的历史数据,更新历史数据的过期时间,将数据写入临时表中;
将临时表的数据写入拉链表中,覆盖历史分区。
所述方法还包括:
从变更数据中过滤出受影响的历史数据,并从历史数据中获取受影响的分区日期;根据受影响的数据分区日期,查询宽表拉链表中分区数据中的所有数据;
从变更数据中过滤出受影响的历史数据,并与受影响的分区数据进行反向关联,剔除重复数据;结果写入临时数据表中,并删除受影响的所有历史分区数据。
所述方法还包括宽表拉链表数据删除过程,具体如下:
获取宽表拉链表数据,过滤指定时间的切面数据;
创建临时表,将指定时间的切面数据写入临时表中;
删除宽表拉链表中失效日期大于指定时间的分区数据,将临时表中的切面数据写入拉链表中。
所述方法还包括宽表拉链表数据迁移过程,具体如下:
将宽表拉链表数据进行搬迁,将历史数据中的有效数据迁移至指定日期,记录迁移标识并将历史数据设置为失效。
根据本发明的另一个方面,提供了一种宽表拉链表数据处理装置,包括:
数据提取加工单元,用于从宽表拉链表的数据源表中抽取增量数据,并根据所述增量数据及宽表拉链表的历史数据,加工获取宽表拉链表增量数据;
数据处理单元,用于将宽表拉链表增量数据与历史数据进行整合,将历史数据设置为失效状态,将增量数据设置为生效状态,在宽表拉链表中插入增量数据。
数据删除单元,用于获取宽表拉链表数据,过滤指定时间的切面数据;
创建临时表,将指定时间的切面数据写入临时表中;删除宽表拉链表中失效日期大于指定时间的分区数据,将临时表中的切面数据写入拉链表中;
数据迁移单元,用于将宽表拉链表数据进行搬迁,将历史数据中的有效数据迁移至指定日期,记录迁移标识并将历史数据设置为失效。
所述数据提取加工单元,具体用于:
从组成宽表拉链的数据表中选择一张表作为主表,其它表作为辅助表;从主表中提取主表增量数据;获取一张辅助表全量数据,并与主表增量数据进行关联,获取主表变化与辅助表的拉平数据;关联所有辅助表,获取由于主表发生变化产生的增量数据信息;获取辅助表新增数据及从宽表拉链表中获取宽表最新切面数据;利用辅助表的数据更新宽表切面数据,并记录数据更新标识;过滤宽表切面数据,保留被更新过的数据;根据主表、辅助表的数据拉平结果表与宽表切面更新后的更新表,进行反向关联,去除两个结果集中重复的数据;将主表、辅助表的数据拉平结果表数据与去除两个结果集中重复的结果数据进行合并处理,得到宽表拉链表增量数据;
所述数据处理单元,具体用于:
获取宽表拉链表增量数据,并进行数据去重处理;获取拉链表数据切面,并利用拉链表切面数据和增量去重后数据进行关联,获取变更数据;创建临时数据表;从变更数据中过滤出无历史的新增数据,写入临时表中;从变更数据中过滤出有历史的新增数据,将新增数据写入临时表中;从变更数据中过滤出受影响的历史数据,更新历史数据的过期时间,将数据写入临时表中;将临时表的数据写入拉链表中,覆盖历史分区。
采用本发明的技术方案,提出了一种宽表拉链表数据处理方案,从宽表拉链表的数据源表中抽取增量数据,并根据所述增量数据及宽表拉链表的历史数据,加工获取宽表拉链表增量数据;将宽表拉链表增量数据与历史数据进行整合,将历史数据设置为失效状态,将增量数据设置为生效状态,在宽表拉链表中插入增量数据。
本发明方案包括了源表增量数据提取、宽表拉链表增量数据加工、宽表拉链表数据处理、宽表拉链表数据删除、宽表拉链表数据月迁处理等一整套宽表拉链解决方案,能够解决全量分区表数据冗余存储问题,实现多源表数据组成的宽表拉链表,减轻拉链表加工的复杂过程,降低宽表拉链表的实现难度。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中宽表拉链表数据处理方法原理流程图;
图2为本发明实施例中宽表拉链表数据处理解决方案示意图;
图3为本发明实施例中宽表拉链表数据提取加工示意图;
图4为本发明实施例中宽表拉链表数据处理过程示意图;
图5为本发明实施例中宽表拉链表数据删除过程示意图;
图6为本发明实施例中宽表拉链表数据处理装置结构示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
一般来说,宽表:从字面意义上讲就是字段比较多的数据库表。通常是指业务主题相关的指标、维度、属性关联在一起的一张数据库表。宽表已经不符合数据库三范式的模型设计规范,好处就是查询性能的提高。具体如表1~表3所示。
表1
表2
表3
在一般管理类系统中客户信息和账户信息会存储在两张数据表中,在查询时进行关联查询。在大数据中由于数据量比较大,会提前将两张表的数据进行关联存储在一张表中。如上面三个表格,客户信息中只记录了客户相关内容,账户信息记录了账户相关信息,账户宽表则将账户和客户信息进行了拉平,上层应用再进行数据查询时则不需要再进行关联统计。
拉链表:针对数据仓库设计表中数据存储的方式而定义的一种存储规范,所谓拉链表就是记录历史,记录一个事物从开始一直到当前状态的所有变化的信息。具体如表4~表6所示。
表4
表5
表6
在管理类系统中一般账户信息只会记录账户最新状态不会记录账户每次变化的时间信息。上面表1中记录的是2023年1月2日时账户余额情况,表2为2023年1月10日账户余额情况,会发现1月10日时帐号6010××××001的余额发生了变化,对于这种情况在拉链信息表中会将2023-01-02的数据设置为失效状态,同时增加一条新数据。
拉链表的优势在于减少了数据的重复存储,只有当数据发生变化时才会插入新的记录。同时拉链表中记录了每条数据的生效、失效时间,根据这两个时间可以查询任意时间的账户余额状态。
宽表拉链:
宽表拉链是将宽表采用拉链表的方式进行处理,只在数据发生变化时写入新的数据,优势在于降低了数据存储空间,减少数据关联查询。但是宽表拉链表加工相对复杂,需要检查每张数据源表的数据变化情况,并分析源表变化对宽表拉链表的影响。具体如表7~表9所示。
表7
表8
表9
从以上示例中我们可以看出账户拉链表宽表是由账户信息表和客户信息表两张数据表组成,任意一张表的记录发生变化,那么拉链宽表都需要发生变化:
客户1账户余额从1月2日的1000.00元变为300元
客户2手机号发生了变化从188××××1235变化为188××××1239
由于拉链表数据处理时需要将原数据设置为失效,新数据设置为生效状态,数据处理比较繁琐,我们需要将当日变化的数据找出,将当日数据当作新增数据插入表中,同时需要将历史数据中对应的数据找出设置为失效。表需要反复进行关联。宽表拉链更为复杂,任意一张表的数据发生变化都会影响宽表拉链的数据。而且要分多种情况进行数据比对,例如:
主表发生变化,辅助表数据未发生变化;
主表和辅助表数据同时发生变化;
辅助表发生变化但是主表数据没变;
只有主表存在数据,辅助表中没有数据;
只有辅助表中存在数据,主表中没有数据。
宽表拉链表在日常数据处理中存在大量应用场景,我们一般将状态类数据以宽表拉链表的形式进行存储,在减少存储数据量的同时方便对任意时点的数据进行追溯。为了减轻拉链表加工过程中的复杂过程,降低宽表拉链表的实现难度,我们设计了一套标准宽表拉链解决方案。
本发明实施例提出了一种宽表数据拉链数据处理的方法,包括了源表增量数据提取、拉链宽表增量数据加工、宽表拉链表数据处理、宽表拉链数据删除、宽表拉链数据月迁处理等一整套宽表拉链数据解决方案。
图1为本发明实施例中宽表拉链表数据处理方法流程图。如图1所示,该宽表拉链表数据处理方法流程包括以下步骤:
步骤101、从宽表拉链表的数据源表中抽取增量数据,并根据所述增量数据及宽表拉链表的历史数据,加工获取宽表拉链表增量数据。
本发明实施例中,从组成宽表拉链的数据表中选择一张表作为主表,其它表作为辅助表;
从主表中提取主表增量数据;获取一张辅助表全量数据,并与主表增量数据进行关联,获取主表变化与辅助表的拉平数据;
关联所有辅助表,获取由于主表发生变化造成的主表、辅助表的数据拉平结果,也即产生的增量数据信息;
获取辅助表新增数据及从宽表拉链表中获取宽表最新切面数据;利用辅助表的数据更新宽表切面数据,并记录数据更新标识;
过滤宽表切面数据,保留被更新过的数据;
根据主表、辅助表的数据拉平结果表与宽表切面更新后的更新表,进行反向关联,去除两个结果集中重复的数据;
将主表、辅助表的数据拉平结果表数据与去除两个结果集中重复的结果数据进行合并处理,得到宽表拉链表增量数据。
当存在多张辅助表时,依次获取辅助表的增量数据,从宽表拉链表中获取宽表最新切面数据;利用辅助表的数据更新宽表切面数据,并记录数据更新标识。
步骤102,将宽表拉链表增量数据与历史数据进行整合,将历史数据设置为失效状态,将增量数据设置为生效状态,在宽表拉链表中插入增量数据。
本发明实施例中,获取宽表拉链表增量数据,并进行数据去重处理;
获取拉链表数据切面,并利用拉链表切面数据和增量去重后数据进行关联,获取变更数据;
创建临时数据表;
从变更数据中过滤出无历史的新增数据,写入临时表中;
从变更数据中过滤出有历史的新增数据,将新增数据写入临时表中;
从变更数据中过滤出受影响的历史数据,更新历史数据的过期时间,将数据写入临时表中;
从变更数据中过滤出受影响的历史数据,并从历史数据中获取受影响的分区日期;根据受影响的数据分区日期,查询宽表拉链表中分区数据中的所有数据;
从变更数据中过滤出受影响的历史数据,并与受影响的分区数据进行反向关联,剔除重复数据;结果写入临时数据表中,并删除受影响的所有历史分区数据。
将临时表的数据写入拉链表中,覆盖历史分区。
本发明实施例中,如图2所示,提供了一个整体的宽表拉链表数据处理解决方案,包括了源表增量数据提取、宽表拉链表增量数据加工、宽表拉链表数据处理、宽表拉链删除、宽表拉链月迁处理等一整套宽表拉链解决方案。
源表增量数据提取:
数据源表指组成宽表拉链表的原始数据表,我们需要在原始数据表中抽取当日增量数据,使用增量数据加工出宽表拉链表当日增量数据。
宽表拉链表增量数据加工:
基于源表增量数据以及宽表拉链表历史数据加工出当日宽表拉链表增量数据。
宽表拉链表数据处理:
将宽表拉链表当日新增数据和拉链表中的历史数据进行整合,将历史数据设置为失效状态,并插入增量数据。
宽表拉链表数据删除:
删除宽表拉链表中的数据,并将数据回复到某个时间节点。主要用于数据跑批过程中发现历史数据存在问题,需要清理后重新跑批的情况。
宽表拉链表数据月迁移:
宽表拉链月迁移值月初时,系统会将宽表拉链进行搬迁,将历史数据中的有效数据迁移至月初,并将历史数据设置为失效。数据搬迁的目的是为了减少数据查询时,加载的分区数过多,导致数据查询过慢问题。数据迁移时会记录迁移标识,方便区分是迁移数据还是新增数据。
具体的,本发明实施例中,宽表拉链表增量数据加工过程如图3所示,其中,宽表拉链加工时,我们一般会从组成宽表拉链的数据表中选择一张表作为主表,其他表作为辅助表。使用三张表为例,详细介绍了多源表宽表拉链处理流程:
步骤1011、从主表A中提取主表当日增量数据
步骤1012、获取辅助表B全量数据,并与A表增量数据进行关联,获取主表A变化与B表的拉平数据。
步骤1013、使用步骤1012的结果数据,关联辅助表C,获取由于主表A发生变化,表A、B、C三张表的数据拉平结果。
步骤1014、获取辅助表B当日新增数据。
步骤1015、从宽表拉链表中获取宽表最新切面数据。
步骤1016、利用辅助表B的数据更新宽表切面数据,并记录数据更新标识。
步骤1017、获取辅助表C的当日增量数据。
步骤1018、利用辅助表C的当日增量数据更新宽表切面数据,并记录数据更新标识。
步骤1019、过滤宽表切面数据,只保留被更新过的数据。
步骤1020、利用步骤1013产生的A、B、C数据拉平结果表与步骤1019产生的宽表切面更新表,进行反向关联,去除两个结果集中重复的数据。
步骤1021、将步骤1013产生的结果数据与步骤1020产生的结果数据进行合并处理,产生当日宽表增量数据。
本发明实施例中,宽表拉链表数据处理指将当日增量数据写入宽表拉链表中。数据写入时需要将历史数据设置为失效,同时将增量数据设置为生效状态,在大数据中不存在update操作,所以只能将对应分区中的数据全部查询出来,进行重新写入。另外数据写入时会遇到两种情况,系统需要进行单独处理:无历史数据的新增数据及有历史数据并且当日有更新。具体如图4所示,其中,
步骤1031、获取当日增量数据,并对增量数据进行数据去重处理。
步骤1032、获取拉链表数据切面。
步骤1033、利用拉链表切面数据和增量去重后数据进行关联,获取当日变更数据。
步骤1034、创建临时数据表。
步骤1035、在步骤1033的结果上,过滤出无历史的新增数据,写入临时表中。
步骤1036、在步骤1033的结果上,过滤出有历史的新增数据,将新增数据写入临时表中。
步骤1037、在步骤1033的结果上,过滤出受影响的历史数据,更新历史数据的过期时间,将数据写入临时表中。
步骤1038、在步骤1033的结果上,过滤出受影响的历史数据,并从历史数据中获取出受影响的分区日期。
步骤1039根据受影响的数据分区日期,查询宽表拉链表中分区数据中的所有数据。
步骤1040、在步骤1033的结果上,过滤出受影响的历史数据,并与受影响的分区数据进行反向关联,剔除重复数据。
步骤1041、将步骤1040的结果写入临时数据表中。
步骤1042、删除受影响的所有历史分区数据。
步骤1043、将临时表的数据写入拉链表中,覆盖历史分区。
本发明实施例中,如图5所示,删除宽表拉链表中的数据,并将数据回复到某个时间节点。主要用于数据跑批过程中发现历史数据存在问题,需要清理后重新跑批的情况,其中,
获取拉链表数据;
过滤指定时间的切面数据;
创建临时表;
将指定时间的切面数据写入临时表中;
删除宽表拉链表中失效日期大于指定时间的分区数据;
将临时表中的切面数据写入拉链表中;
删除临时表。
本发明实施例中,包括了源表增量数据提取、宽表拉链表增量数据加工、宽表拉链表数据处理、宽表拉链表数据删除、宽表拉链表数据月迁处理等一整套宽表宽表拉链解决方案,能够解决全量分区表数据冗余存储问题,实现多源表数据组成的宽表拉链表,减轻拉链表加工的复杂过程,降低宽表拉链表的实现难度。
为了实现上述流程,本发明技术方案还提供宽表拉链表数据处理装置,如图6所示,该宽表拉链表数据处理装置包括:
数据提取加工单元21,用于从宽表拉链表的数据源表中抽取增量数据,并根据所述增量数据及宽表拉链表的历史数据,加工获取宽表拉链表增量数据;
数据处理单元22,用于将宽表拉链表增量数据与历史数据进行整合,将历史数据设置为失效状态,将增量数据设置为生效状态,在宽表拉链表中插入增量数据。
所述装置还包括:
数据删除单元23,用于获取宽表拉链表数据,过滤指定时间的切面数据;
创建临时表,将指定时间的切面数据写入临时表中;删除宽表拉链表中失效日期大于指定时间的分区数据,将临时表中的切面数据写入拉链表中;
数据迁移单元24,用于将宽表拉链表数据进行搬迁,将历史数据中的有效数据迁移至指定日期,记录迁移标识并将历史数据设置为失效。
所述数据提取加工单元21,具体用于:
从组成宽表拉链的数据表中选择一张表作为主表,其它表作为辅助表;从主表中提取主表增量数据;获取一张辅助表全量数据,并与主表增量数据进行关联,获取主表变化与辅助表的拉平数据;关联所有辅助表,获取由于主表发生变化产生的增量数据信息;获取辅助表新增数据及从宽表拉链表中获取宽表最新切面数据;利用辅助表的数据更新宽表切面数据,并记录数据更新标识;过滤宽表切面数据,保留被更新过的数据;根据主表、辅助表的数据拉平结果表与宽表切面更新后的更新表,进行反向关联,去除两个结果集中重复的数据;将主表、辅助表的数据拉平结果表数据与去除两个结果集中重复的结果数据进行合并处理,得到宽表拉链表增量数据;
所述数据处理单元22,具体用于:
获取宽表拉链表增量数据,并进行数据去重处理;获取拉链表数据切面,并利用拉链表切面数据和增量去重后数据进行关联,获取变更数据;创建临时数据表;从变更数据中过滤出无历史的新增数据,写入临时表中;从变更数据中过滤出有历史的新增数据,将新增数据写入临时表中;从变更数据中过滤出受影响的历史数据,更新历史数据的过期时间,将数据写入临时表中;将临时表的数据写入拉链表中,覆盖历史分区。
综上所述,本发明的技术方案,提出了一种宽表拉链表数据处理方案,从宽表拉链表的数据源表中抽取增量数据,并根据所述增量数据及宽表拉链表的历史数据,加工获取宽表拉链表增量数据;将宽表拉链表增量数据与历史数据进行整合,将历史数据设置为失效状态,将增量数据设置为生效状态,在宽表拉链表中插入增量数据。
本发明方案包括了源表增量数据提取、宽表拉链表增量数据加工、宽表拉链表数据处理、宽表拉链表数据删除、宽表拉链表数据月迁处理等一整套宽表拉链解决方案,能够解决全量分区表数据冗余存储问题,实现多源表数据组成的宽表拉链表,减轻拉链表加工的复杂过程,降低宽表拉链表的实现难度。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (6)
1.一种宽表拉链表数据处理方法,其特征在于,包括以下步骤:
从宽表拉链表的数据源表中抽取增量数据,并根据所述增量数据及宽表拉链表的历史数据,加工获取宽表拉链表增量数据;具体包括:
从组成宽表拉链的数据表中选择一张表作为主表,其它表作为辅助表;
从主表中提取主表增量数据;获取一张辅助表全量数据,并与主表增量数据进行关联,获取主表变化与辅助表的拉平数据;
关联所有辅助表,获取由于主表发生变化产生的增量数据信息;
获取辅助表新增数据及从宽表拉链表中获取宽表最新切面数据;利用辅助表的数据更新宽表切面数据,并记录数据更新标识;
过滤宽表切面数据,保留被更新过的数据;
根据主表、辅助表的数据拉平结果表与宽表切面更新后的更新表,进行反向关联,去除两个结果集中重复的数据;
将主表、辅助表的数据拉平结果表数据与去除两个结果集中重复的结果数据进行合并处理,得到宽表拉链表增量数据;
当存在多张辅助表时,依次获取辅助表的增量数据,从宽表拉链表中获取宽表最新切面数据;利用辅助表的数据更新宽表切面数据,并记录数据更新标识;
将宽表拉链表增量数据与历史数据进行整合,将历史数据设置为失效状态,将增量数据设置为生效状态,在宽表拉链表中插入增量数据;具体包括:
获取宽表拉链表增量数据,并进行数据去重处理;
获取拉链表数据切面,并利用拉链表切面数据和增量去重后数据进行关联,获取变更数据;
创建临时数据表;
从变更数据中过滤出无历史的新增数据,写入临时表中;
从变更数据中过滤出有历史的新增数据,将新增数据写入临时表中;
从变更数据中过滤出受影响的历史数据,更新历史数据的过期时间,将数据写入临时表中;
将临时表的数据写入拉链表中,覆盖历史分区。
2.根据权利要求1所述的一种宽表拉链表数据处理方法,其特征在于,所述方法还包括:
从变更数据中过滤出受影响的历史数据,并从历史数据中获取受影响的分区日期;根据受影响的数据分区日期,查询宽表拉链表中分区数据中的所有数据;
从变更数据中过滤出受影响的历史数据,并与受影响的分区数据进行反向关联,剔除重复数据;结果写入临时数据表中,并删除受影响的所有历史分区数据。
3.根据权利要求1所述的一种宽表拉链表数据处理方法,其特征在于,所述方法还包括宽表拉链表数据删除过程,具体如下:
获取宽表拉链表数据,过滤指定时间的切面数据;
创建临时表,将指定时间的切面数据写入临时表中;
删除宽表拉链表中失效日期大于指定时间的分区数据,将临时表中的切面数据写入拉链表中。
4.根据权利要求1所述的一种宽表拉链表数据处理方法,其特征在于,所述方法还包括宽表拉链表数据迁移过程,具体如下:
将宽表拉链表数据进行搬迁,将历史数据中的有效数据迁移至指定日期,记录迁移标识并将历史数据设置为失效。
5.一种宽表拉链表数据处理装置,其特征在于,包括:
数据提取加工单元,用于从宽表拉链表的数据源表中抽取增量数据,并根据所述增量数据及宽表拉链表的历史数据,加工获取宽表拉链表增量数据;具体用于:从组成宽表拉链的数据表中选择一张表作为主表,其它表作为辅助表;从主表中提取主表增量数据;获取一张辅助表全量数据,并与主表增量数据进行关联,获取主表变化与辅助表的拉平数据;关联所有辅助表,获取由于主表发生变化产生的增量数据信息;获取辅助表新增数据及从宽表拉链表中获取宽表最新切面数据;利用辅助表的数据更新宽表切面数据,并记录数据更新标识;过滤宽表切面数据,保留被更新过的数据;根据主表、辅助表的数据拉平结果表与宽表切面更新后的更新表,进行反向关联,去除两个结果集中重复的数据;将主表、辅助表的数据拉平结果表数据与去除两个结果集中重复的结果数据进行合并处理,得到宽表拉链表增量数据;当存在多张辅助表时,依次获取辅助表的增量数据,从宽表拉链表中获取宽表最新切面数据;利用辅助表的数据更新宽表切面数据,并记录数据更新标识;
数据处理单元,用于将宽表拉链表增量数据与历史数据进行整合,将历史数据设置为失效状态,将增量数据设置为生效状态,在宽表拉链表中插入增量数据;具体用于:获取宽表拉链表增量数据,并进行数据去重处理;获取拉链表数据切面,并利用拉链表切面数据和增量去重后数据进行关联,获取变更数据;创建临时数据表;从变更数据中过滤出无历史的新增数据,写入临时表中;从变更数据中过滤出有历史的新增数据,将新增数据写入临时表中;从变更数据中过滤出受影响的历史数据,更新历史数据的过期时间,将数据写入临时表中;将临时表的数据写入拉链表中,覆盖历史分区。
6.根据权利要求5所述的一种宽表拉链表数据处理装置,其特征在于,所述装置还包括:
数据删除单元,用于获取宽表拉链表数据,过滤指定时间的切面数据;
创建临时表,将指定时间的切面数据写入临时表中;删除宽表拉链表中失效日期大于指定时间的分区数据,将临时表中的切面数据写入拉链表中;
数据迁移单元,用于将宽表拉链表数据进行搬迁,将历史数据中的有效数据迁移至指定日期,记录迁移标识并将历史数据设置为失效。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311207103.0A CN117251448B (zh) | 2023-09-18 | 2023-09-18 | 一种宽表拉链表数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311207103.0A CN117251448B (zh) | 2023-09-18 | 2023-09-18 | 一种宽表拉链表数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117251448A CN117251448A (zh) | 2023-12-19 |
CN117251448B true CN117251448B (zh) | 2024-04-30 |
Family
ID=89128723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311207103.0A Active CN117251448B (zh) | 2023-09-18 | 2023-09-18 | 一种宽表拉链表数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117251448B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107193985A (zh) * | 2017-05-27 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种记录数据变化历史的拉链表设计方法 |
CN112559641A (zh) * | 2020-12-07 | 2021-03-26 | 泰康保险集团股份有限公司 | 拉链表的处理方法及装置、可读存储介质及电子设备 |
CN113010523A (zh) * | 2021-03-23 | 2021-06-22 | 华泰证券股份有限公司 | 数据仓库拉链表存储方法、刷新方法及可读存储介质 |
CN114168595A (zh) * | 2021-12-09 | 2022-03-11 | 中国建设银行股份有限公司 | 一种数据分析方法及装置 |
CN114218238A (zh) * | 2021-12-16 | 2022-03-22 | 城云科技(中国)有限公司 | 记录数据完整变化信息的数据存储方法、系统及应用 |
WO2022147908A1 (zh) * | 2021-01-05 | 2022-07-14 | 平安科技(深圳)有限公司 | 基于表关联的丢失数据回收方法、装置、设备及介质 |
CN115481132A (zh) * | 2022-10-28 | 2022-12-16 | 上海极豆科技有限公司 | 数据表更新方法、装置、设备及存储介质 |
CN116186039A (zh) * | 2023-02-13 | 2023-05-30 | 中国农业银行股份有限公司 | 基于数据集市的数据处理方法、装置、设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11983193B2 (en) * | 2020-12-25 | 2024-05-14 | Boe Technology Group Co., Ltd. | Data processing method, platform, computer-readable storage medium and electronic device |
-
2023
- 2023-09-18 CN CN202311207103.0A patent/CN117251448B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107193985A (zh) * | 2017-05-27 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种记录数据变化历史的拉链表设计方法 |
CN112559641A (zh) * | 2020-12-07 | 2021-03-26 | 泰康保险集团股份有限公司 | 拉链表的处理方法及装置、可读存储介质及电子设备 |
WO2022147908A1 (zh) * | 2021-01-05 | 2022-07-14 | 平安科技(深圳)有限公司 | 基于表关联的丢失数据回收方法、装置、设备及介质 |
CN113010523A (zh) * | 2021-03-23 | 2021-06-22 | 华泰证券股份有限公司 | 数据仓库拉链表存储方法、刷新方法及可读存储介质 |
CN114168595A (zh) * | 2021-12-09 | 2022-03-11 | 中国建设银行股份有限公司 | 一种数据分析方法及装置 |
CN114218238A (zh) * | 2021-12-16 | 2022-03-22 | 城云科技(中国)有限公司 | 记录数据完整变化信息的数据存储方法、系统及应用 |
CN115481132A (zh) * | 2022-10-28 | 2022-12-16 | 上海极豆科技有限公司 | 数据表更新方法、装置、设备及存储介质 |
CN116186039A (zh) * | 2023-02-13 | 2023-05-30 | 中国农业银行股份有限公司 | 基于数据集市的数据处理方法、装置、设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
使用JSON模型优化数据拉链表;王涛;;金融电子化;20160315(第03期);92-93 * |
基于Hadoop的大数据分析管理平台架构设计;张伟;;信息技术与网络安全;20181110(11);34-37+61 * |
Also Published As
Publication number | Publication date |
---|---|
CN117251448A (zh) | 2023-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107657049B (zh) | 一种基于数据仓库的数据处理方法 | |
US10180992B2 (en) | Atomic updating of graph database index structures | |
US9201738B2 (en) | Method, computer readable storage medium and computer system for obtaining snapshots of data | |
US9183268B2 (en) | Partition level backup and restore of a massively parallel processing database | |
US8626717B2 (en) | Database backup and restore with integrated index reorganization | |
EP2924594B1 (en) | Data encoding and corresponding data structure in a column-store database | |
US20170255708A1 (en) | Index structures for graph databases | |
US20130218837A1 (en) | Cloud data synchronization with local data | |
US20120158793A1 (en) | Automatic Elimination Of Functional Dependencies Between Columns | |
US20140188784A1 (en) | Systems and methods for data-warehousing to facilitate advanced business analytic assessment | |
CN110096509A (zh) | 大数据环境下实现历史数据拉链表存储建模处理的系统及方法 | |
US20140071135A1 (en) | Managing activities over time in an activity graph | |
CN105808653A (zh) | 一种基于用户标签系统的数据处理方法及装置 | |
US10108690B1 (en) | Rolling subpartition management | |
CN105630934A (zh) | 一种数据统计方法及系统 | |
Kvet et al. | Complex time management in databases | |
CN110866024B (zh) | 一种矢量数据库增量更新方法及系统 | |
CN110442585B (zh) | 数据更新方法、数据更新装置、计算机设备及存储介质 | |
CN105787058A (zh) | 一种用户标签系统及基于用户标签系统的数据推送系统 | |
CN109189798B (zh) | 一种基于spark同步更新数据的方法 | |
CN106933974B (zh) | 一种视频文件索引信息的构建和查询方法及装置 | |
CN117251448B (zh) | 一种宽表拉链表数据处理方法及装置 | |
US10747438B1 (en) | Reporting using archived data | |
KR20120082176A (ko) | 데이터베이스 관리 시스템의 데이터 처리 방법 및 시스템 | |
CN110879812A (zh) | 一种电商平台中基于spark的数据同步方法 |
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 |