CN114860727A - 拉链表更新方法及装置 - Google Patents

拉链表更新方法及装置 Download PDF

Info

Publication number
CN114860727A
CN114860727A CN202210466729.2A CN202210466729A CN114860727A CN 114860727 A CN114860727 A CN 114860727A CN 202210466729 A CN202210466729 A CN 202210466729A CN 114860727 A CN114860727 A CN 114860727A
Authority
CN
China
Prior art keywords
zipper
increment
data
updating
target
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
CN202210466729.2A
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 Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili 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 Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202210466729.2A priority Critical patent/CN114860727A/zh
Publication of CN114860727A publication Critical patent/CN114860727A/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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (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

拉链表更新方法及装置
技术领域
本申请涉及数据处理技术领域,特别涉及一种拉链表更新方法。本申请同时涉及一种拉链表更新装置,一种计算设备,以及一种计算机可读存储介质。
背景技术
随着信息技术得到快速发展,数据呈爆发式的增长,对大量数据进行处理的场景变得越来越常见,在这种情况下,面向主题的、集成的、非易失的、反应历史变化的,用来支持管理人员决策的数据集合,即数据仓库应运而生;而拉链表是数据仓库创建过程中的重要环节,在现有技术中,面对不同使用场景,开发人员需要基于不同的使用方式对拉链表进行处理,增大了开发成本;此外在对拉链表进行处理的过程中,需要对数据进行多次的读取,使拉链表的加工方式复杂;而对数据进行多次的读取不仅仅增加了相关设备的读取消耗,还会降低拉链表的处理效率。
发明内容
有鉴于此,本申请实施例提供了一种拉链表更新方法。本申请同时涉及一种拉链表更新装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的使用拉链表的成本大,读取拉链表的消耗大,更新拉链表的效率低等问题。
根据本申请实施例的第一方面,提供了一种拉链表更新方法,包括:
根据关联待处理拉链表的增量表记录的增量主键,将所述增量表插入所述待处理拉链表,获得组合拉链表;
将所述组合拉链表更新为目标组合拉链表,并基于所述增量主键遍历所述目标组合拉链表;
根据遍历结果确定所述目标组合拉链表中包含的至少一组子数据对应的表结构;
按照所述表结构对应的表更新策略将所述目标组合拉链表更新为目标拉链表。
可选的,所述根据关联待处理拉链表的增量表记录的增量主键,将所述增量表插入所述待处理拉链表,获得组合拉链表包括:
获取目标业务对应的待处理拉链表,并确定所述待处理拉链表关联的所述增量表;
查询所述增量表中包含的增量主键,以及所述待处理拉链表中包含的拉链主键,并确定所述增量主键与所述拉链主键之间的匹配关系;
根据所述匹配关系,依次将所述增量表中包含的增量数据写入所述待处理拉链表,获得组合拉链表。
可选的,所述根据所述匹配关系,依次将所述增量表中包含的增量数据写入所述待处理拉链表,获得组合拉链表包括:
根据所述匹配关系,在所述待处理拉链表中确定对应待写入位置;
按照所述待写入位置,依次将所述增量表中包含的增量数据写入所述待处理拉链表,获得组合拉链表。
可选的,所述根据所述匹配关系,在所述待处理拉链表中确定对应待写入位置包括:
根据所述匹配关系确定所述增量主键与所述拉链主键相同的情况下,在所述待处理拉链表中确定所述拉链主键对应的拉链数据的拉链写入位置;
在所述待处理拉链表中添加所述拉链写入位置前相邻的关联行单元,将所述关联行单元在所述待处理拉链表中的位置,作为所述待写入位置。
可选的,所述根据所述匹配关系,在所述待处理拉链表中确定对应待写入位置包括:
根据所述匹配关系确定所述增量主键与所述拉链主键不相同的情况下,按照预设的行建立策略,在所述待处理拉链表中添加扩展行单元;
将所述扩展行单元在所述待处理拉链表中的位置,作为所述待写入位置。
可选的,所述将所述组合拉链表更新为目标组合拉链表包括:
查询所述增量表的更新时间;
将所述增量表的更新时间作为所述增量表的增量起始时间,并确定增量终止时间;
针对所述组合拉链表中关联所述增量表的增量数据,配置所述增量起始时间和所述增量终止时间,根据配置结果生成所述目标组合拉链表。
可选的,所述将所述增量表插入所述待处理拉链表,获得组合拉链表之前还包括:
针对所述组合拉链表中的子数据配置种类标识;
其中,在所述子数据为所述增量表中的增量数据的情况下,针对所述增量数据配置增量标识,在所述子数据为所述待处理拉链表中的拉链数据的情况下,针对所述拉链数据配置拉链标识。
可选的,所述根据遍历结果确定所述目标组合拉链表中包含的至少一组子数据对应的表结构包括:
根据遍历结果将所述目标组合拉链表中具有相同主键的子数据划分为同一组子数据;
查询每组子数据中子数据的种类标识,根据查询结果确定每组子数据对应的表结构。
可选的,任意一组子数据对应的表结构的确定包括:
在第一子数据组的种类标识为增量标识的情况下,确定所述第一子数据组对应的表结构为增量表结构;
相应的,所述按照所述表结构对应的表更新策略将所述目标组合拉链表更新为目标拉链表,包括:
确定所述增量表结构对应的增量更新策略,根据所述增量更新策略对所述第一子数据组中的子数据的种类标识进行更新,获得所述目标拉链表。
可选的,所述根据所述增量更新策略对所述第一子数据组中的子数据的种类标识进行更新,获得所述目标拉链表包括:
根据所述增量更新策略,将所述第一子数据组中的子数据的增量标识更新为拉链标识,根据更新结果获得所述目标拉链表。
可选的,任意一组子数据对应的表结构的确定包括:
在第二子数据组的种类标识为拉链标识的情况下,确定所述第二子数据组对应的表结构为拉链表结构;
相应的,所述按照所述表结构对应的表更新策略将所述目标组合拉链表更新为目标拉链表,包括:
确定所述拉链表结构对应的拉链更新策略,根据所述拉链更新策略将包含所述第二子数据组的目标组合拉链表作为所述目标拉链表。
可选的,任意一组子数据对应的表结构的确定包括:
在第三子数据组的种类标识为增量标识与拉链标识的情况下,确定所述第三子数据组对应的表结构为调整表结构;
相应的,所述按照所述表结构对应的表更新策略将所述目标组合拉链表更新为目标拉链表,包括:
确定所述调整表结构对应的调整更新策略,根据所述调整更新策略对所述第三子数据组中的子数据进行合并,获得所述目标拉链表。
相应的,所述根据所述调整更新策略对所述第三子数据组中的子数据进行合并,获得所述目标拉链表,包括:
根据所述调整更新策略,将所述第三子数据组中的增量数据的增量标识替换为所述拉链数据的拉链标识,并删除所述拉链数据,获得所述目标拉链表;或者
根据所述调整更新策略,将所述第三子数据组中的拉链数据的终止时间替换为所述增量数据的起始时间,并删除所述增量数据,获得所述目标拉链表。
根据本申请实施例的第二方面,提供了一种拉链表更新装置,包括:
插入模块,被配置为根据关联待处理拉链表的增量表记录的增量主键,将所述增量表插入所述待处理拉链表,获得组合拉链表;
遍历模块,被配置为将所述组合拉链表更新为目标组合拉链表,并基于所述增量主键遍历所述目标组合拉链表;
确定模块,别配置为根据遍历结果确定所述目标组合拉链表中包含的至少一组子数据对应的表结构;
更新模块,被配置为按照所述表结构对应的表更新策略将所述目标组合拉链表更新为目标拉链表。
根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述拉链表更新方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述拉链表更新方法的步骤。
本申请提供的拉链表更新方法,根据增量表的增量主键将增量表插入待处理拉链表,得到组合拉链表,之后对组合拉链表进行更新得到目标组合拉链表;再根据增量主键确定目标组合拉链表中包含的至少一组子数据对应的表结构,最后根据得到的表结构确定更新策略,将目标组合拉链表更新为目标拉链表。
本申请一实施例提供了一种拉链表更新方法,其中由于没有引入限制性特征,所以可以应广泛的应对各种场景,又因为使用了统一的拉链表更新方法,无需在每种场景都重新设计拉链表更新方法,节省开发成本,同时通过这种方法由于减少了拉链更新过程中出现的一次数据读取环节,节省相关设备的读取资源,提高了拉链表更新效率。
附图说明
图1是本申请一实施例提供的一种拉链表更新方法的流程图;
图2是本申请一实施例提供的一种拉链表更新方法的表格数据示意图;
图3是本申请一实施例提供的一种应用于人员统计的拉链表更新方法的处理流程图;
图4是本申请一实施例提供的一种应用于人员统计的拉链表更新方法的表格数据示意图;
图5是本申请一实施例提供的一种拉链表更新装置的结构示意图;
图6是本申请一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本申请一个或多个实施例涉及的名词术语进行解释。
数据仓库(Data Warehouse):数据仓库是信息的中央存储库。通常,数据定期从事务系统、关系数据库和其他来源通过提取、转换、加载(ETL)的数据清洗工序引入到数据仓库中,并按照主题域、分层结构将数据归档有序存储在数据模型中。业务分析师、数据工程师、数据科学家和决策者通过商业智能(BI)工具、SQL客户端和其他分析应用程序访问数据仓库中的数据模型进行查询、分析等工作。
表:数据库中用来存储数据的对象,是有结构的数据的集合。定义为列的集合。与电子表格相似,数据在表中式按行和列的格式组织排列的。表中的每一列都设计为存储某种类型的信息(例如日期、名称、货币金额或数字)。
字段:亦称作为列。包含某一专题的信息。就像“通讯录”数据库中,“姓名”、“联系电话”这些都是表中所有行共有的属性,所以把这些列称为“姓名”字段和“联系电话”字段。
主键:指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性。主键主要是用与其他表的外键关联,以及文本记录的修改与删除。
分区:物理的将数据切分开,以此达到sql操作时,减少io总量和响应时间。
全量分区表:以分区的形式组织数据,每一个分区都存储在操作数据时,当时的全量的数据。
增量表:只存储最新的数据,包括新增的,和指定时间内更新的数据。
SQL:结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。包括DQL、DML、TCL、DCL、CCL等五部分。
数据查询语言(DQL:Data Query Language):其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其它类型的SQL语句一起使用。
数据操作语言(DML:Data Manipulation Language):其语句包括动词INSERT、UPDATE和DELETE。它们分别用于添加、修改和删除。
事务控制语言(TCL):它的语句能确保被DML语句影响的表的所有行及时得以更新。包括COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。
数据控制语言(DCL):它的语句通过GRANT或REVOKE实现权限控制,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。
数据定义语言(DDL):其语句包括动词CREATE,ALTER和DROP。在数据库中创建新表或修改、删除表(CREATE TABLE或DROP TABLE);为表加入索引等。
指针控制语言(CCL):它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERECURRENT用于对一个或多个表单独行的操作。
Hadoop:一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
MapReduce:是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。
在本申请中,提供了一种拉链表更新方法,本申请同时涉及一种拉链表更新装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
实际应用中,数据仓库被用于数据的存储,拉链表是数据仓库创建过程中关键的一环,现有技术中对于拉链表的更新,首先是需要分析拉链表数据,之后再处理增量表的生命周期,其中分析拉链表数据的环节,需要读取拉链表以及增量表,之后创建拉链表分析任务,判断拉链表中是否存在与增量数据相关的部分数据,根据判断的结果对拉链表进行处理;处理增量表的生命周期的环节,需要再次读取增量表,并创建增量表处理任务,对增量表的时间信息进行处理,最后将两个环节得到的结果进行结合,产出最新的拉链表数据。在这两个环节中,读取了一次拉链表,读取了两次增量表,创建了两个相关的处理任务才实现最终产生最新拉链表数据的目的。
在本申请中,通过将增量表插入待处理拉链表进行处理,并根据主键进行分组处理的方式,则只需要进行一次增量表的读取,一次拉链表的读取,并创建一次拉链表的处理任务,虽然本申请的拉链表处理任务相较于现有技术中的拉链表分析任务与增量表处理任务的任务复杂度会稍高,但是由于减少了一次任务的创建过程,会大大增加拉链表更新的效率;此外,由于本申请对比现有技术的相关方案少了一次增量表的读取,那么就会大大节省相关设备的读取资源消耗。而且本申请的拉链表更新方法并没有引入限制性的特征,广泛的适用于各种拉链表更新场景。
图1示出了根据本申请一实施例提供的一种拉链表更新方法的流程图,具体包括以下步骤:
步骤S102:根据关联待处理拉链表的增量表记录的增量主键,将所述增量表插入所述待处理拉链表,获得组合拉链表。
其中,待处理拉链表可以理解为,需要进行更新的拉链表,应用于对数据仓库中数据的历史状态进行维护,并且拉链表也能实现数据仓库中最新状态的数据的更新;增量表可以理解为,存储的拉链表进行更新时,记录着最新出现的数据的表,需要说明的是,对于增量表来说,其必要的信息包括对应的增量主键,以及更新时间,更新时间可以存储在额外的数据库中也可以存储在增量表中,优选的,将更新时间存储在增量表中,以便于统一处理;此外,增量表还可以存储其他信息,如相关的业务信息和时间信息,具体存储的信息种类由实际使用场景确定,本实施例不进行限定;增量主键可以理解为,增量表中的数据对应的主键,而主键则可以理解为,表中的每一行的数据的标识,主键的值对应着表中的行,即主键不同的值对应表中不同的行;组合拉链表可以理解为,将增量表插入待处理拉链表之后得到的拉链表。
基于此,针对待处理拉链表,接收到关联的增量表之后,确定增量表中数据对应的唯一标识,即增量主键,根据增量主键的指示,将增量表中的数据插入待处理拉链表,得到组合拉链表;需要说明的是,在增量表中并不是仅能包含一个增量主键,在实际应用中需要基于各个增量主键,确定待处理拉链表中进行数据插入的各个位置,之后将增量表中对应的部分数据插入。通过这种方式,将增量表与待处理拉链表进行结合,之后相关的计算设备就可以对生成的组合拉链表进行处理,避免了拉链表更新过程中,出现对相关数据进行反复的读取与调用,节省了相关设备的读取资源;并且减少数据的读取,在计算设备的运行层面可以使其只执行计算任务,而不用计算任务与读取任务反复切换处理,有效的提高设备的处理效率。
而且,拉链表是一种维护历史状态,以及最新状态数据的表,支持开链、闭链与退链。又由于拉链表的特性,往往应用于数据量大,表中部分字段会被更新的场景,用以查看某个时间点或时间段的历史信息;拉链表在记录历史信息的场景中,尤其适合面对变化的比例和频率不是很大的情况,如统计国家人口信息的场景下,使用拉链表记录每天新生儿的情况;由于拉链表具备可以方便的还原出拉链时点历史记录的特点,可以广泛的应用在任意大数据的数据仓库维护中,如银行中的各个用户账户的资金情况,人口统计,物流信息记录,软件会员账户管理等等。
增量表,记录更新周期内新增的数据,即在原表中数据的基础上新增本周期内产生的新数据,与拉链表进行配合,增量表对周期内的新增数据进行记录,之后通过增量表对拉链表进行更新,实现了将这个周期内的数据变化记录至全局数据中,并通过拉链表将这一时间内的数据保存,使得未来可以通过时间点信息,使用拉链表就能查询此时间点内数据发生的变化情况,有助于用户对数据仓库内的历史数据的查询与维护。
进一步的,在将增量表插入待处理拉链表之后,得到组合拉链表,后续对组合拉链表中的数据进行处理,为了处理过程中区分插入的增量表数据,在本实施例中,具体实现方式如下:
针对所述组合拉链表中的子数据配置种类标识;其中,在所述子数据为所述增量表中的增量数据的情况下,针对所述增量数据配置增量标识,在所述子数据为所述待处理拉链表中的拉链数据的情况下,针对所述拉链数据配置拉链标识。
其中,组合拉链表中的子数据可以理解为,构成组合拉链表的待处理拉链表的数据以及插入待处理拉链表的增量表的数据,即拉链数据与增量数据;种类标识可以理解为,区分组合拉链表中包含的子数据的种类的标识,即区分增量数据与拉链数据的标识;增量数据可以理解为,增量表中的数据,由于增量表的呈现形式为表格,那么增量数据就是增量表中的某一行的数据,其中每一行的增量数据对应一个增量主键;拉链数据可以理解为,与增量数据类似,是待处理拉链表中某一行的数据,每一行的拉链数据对应待处理拉链表中的一个拉链主键;增量标识可以理解为,用于标记增量数据的标识;拉链数据可以理解为,用于标记拉链数据的标识。
基于此,为组合拉链表中的子数据配置对应的种类标识,用于区分增量数据和拉链数据,其中为增量数据配置增量标识,为拉链数据配置拉链标识;需要说明的是,在将增量表插入待处理拉链表之后,增量表中的增量数据与待处理拉链表中的拉链数据在组合拉链表中的存储形式是类似的,这种情况下需要对二者进行区分,而采用种类标识进行区分的方式中,可以设定一个特殊的标识,规定只有增量表中的数据拥有此标识,或是为组合增量表中的所有数据都设置一个值,根据值的不同进行增量数据与拉链数据的区分,如将增量数据设定为1,将拉链数据设定为2,为了保证增量数据与拉链数据在组合增量表中的数据存储形式的一致,优选的,采取为增量数据与拉链数据配置不同的值以区分二者。
举例说明,某物流公司采用拉链表的方式对商品转运情况进行记录,相关的系统使用了Hadoop与MapReduce,其中MapReduce模型是hadoop上面的一个具体算法,是核心组成部分,如电脑的操作系统一样,所有的程序和软件都是基于操作系统在电脑上运行,具体的使用SQL语言对数据进行数据的存取、查询、更新和管理;在1月1日,此时的待处理拉链表中存储着的待处理拉链表如图2的一种拉链表更新方法的表格数据示意图中的图(a)所示,其中ID对应主键,记录着货物A1与B1的相关数据,终止时间中的9999-12-31,表示此数据的生命周期的结束日期为永久,更新时间记录待处理拉链表中关于货物A1与B1的上次进行更新的时间,起始时间表示此数据的生命周期的开始日期。之后接收到的增量表如图2中的(b)所示增量表,其中增加了关于货物A1被替换的货物A2,与新增的货物C1的相关数据;然后将增量表插入待处理增量表,得到组合增量表,并为组合增量表中的子数据增加种类标识,其中增量数据对应的增量标识1,拉链数据对应的拉链标识为2,如图2中的(c)所示。
综上,通过以上方式,在将增量表插入待处理拉链表得到的组合增量表中,能够对增量表与待处理拉链表各自相关的数据进行区分。
进一步的,在将增量表插入待处理拉链表的过程中,若不进行位置的限定,则会使处理过程需要对待处理的数据进行不断的定位与查找,使处理效率变低,为了解决这个问题,在本实施例中,具体实现方式如下:
获取目标业务对应的待处理拉链表,并确定所述待处理拉链表关联的所述增量表;查询所述增量表中包含的增量主键,以及所述待处理拉链表中包含的拉链主键,并确定所述增量主键与所述拉链主键之间的匹配关系;根据所述匹配关系,依次将所述增量表中包含的增量数据写入所述待处理拉链表,获得组合拉链表。
其中,目标业务可以理解为,待处理拉链表对应的业务,如仓储系统的数据仓库的更新,物流统计的数据仓库的更新,学生档案的数据仓库的更新等需要进行存储数据的业务,都在目标业务的可选取范畴内;拉链主键可以理解为,与增量主键类似,不同点在于拉链主键对应的是拉链数据的主键,增量主键对应的是增量数据的主键。
基于此,获取目标业务对应的待处理拉链表,在确定了待处理拉链表对应的增量表后,查询增量表中的增量数据的增量主键,以及查询待处理拉链表中拉链数据的拉链主键;之后将增量主键与拉链主键进行对比,确定匹配关系,需要说明的是匹配关系分为匹配与不匹配两种,根据匹配关系的不同,采用不同的插入方式将增量表插入待处理拉链表,得到组合拉链表。
沿用上例,查询增量表的增量主键为1、3,并且查询待处理拉链表中拉链数据的拉链主键为1、2,将得到的增量主键与拉链主键进行比较,得到增量主键与拉链主键之间的匹配关系,之后根据匹配关系将增量表插入待处理拉链表,获得组合拉链表,组合拉链表如图2的一种拉链表更新方法的表格数据示意图中的图(c)所示。
综上,通过对增量表与待处理拉链表各自对应的主键之间的匹配关系,实现了将增量表插入待处理拉链表。
进一步的,根据匹配关系将增量表插入待处理拉链表的过程,在本实施例中,具体实现方式如下:
根据所述匹配关系,在所述待处理拉链表中确定对应待写入位置;按照所述待写入位置,依次将所述增量表中包含的增量数据写入所述待处理拉链表,获得组合拉链表。
其中,待写入位置可以理解为,增量表中的增量数据插入待处理拉链表的位置。
基于此,根据增量表的增量数据对应的增量主键与待处理拉链表的拉链数据对应的拉链主键之间的匹配关系,在待处理拉链表中确定增量数据的插入位置,之后根据得到的插入位置,将增量数据写入待处理拉链表,写入完成后就得到了组合拉链表。
综上,通过匹配关系确定增量表插入待处理拉链表的具体位置,使增量表可以实现预期形式的插入,并有效的控制插入的位置,便于后续处理。
进一步的,在将增量表中的增量数据插入待处理拉链表的过程中,需要为插入的位置留出插入空间,使增量数据能够实现插入,在本实施例中,具体实现方式如下:
根据所述匹配关系确定所述增量主键与所述拉链主键相同的情况下,在所述待处理拉链表中确定所述拉链主键对应的拉链数据的拉链写入位置;在所述待处理拉链表中添加所述拉链写入位置前相邻的关联行单元,将所述关联行单元在所述待处理拉链表中的位置,作为所述待写入位置。
其中,关联行单元可以理解为,在增量主键与拉链主键相同的情况下,在待处理拉链表中,与相同的拉链主键对应的拉链数据所在的行单元的相邻,且处于上方的行单元,用于存储此情景下插入的增量数据;由于待处理拉链表的呈现方式是表,此时表中存储一行数据的空间为行单元。
基于此,在匹配关系指示增量主键与拉链主键相同的情况下,在待处理拉链表中确定相同的拉链主键对应的拉链数据的位置,之后在这个位置之前创建一个新的关联行单元,将新建的行单元的位置作为待写入位置。
综上,通过以上方法,在匹配关系指示增量主键与拉链主键相同的情况下,确定增量数据插入的位置。
进一步的,匹配关系除了指示增量主键与拉链主键相同的情况,还存在指示增量主键与拉链主键不相同的情况,这种情况下确定增量数据的插入位置,在本实施例中,具体实现方式如下:
根据所述匹配关系确定所述增量主键与所述拉链主键不相同的情况下,按照预设的行建立策略,在所述待处理拉链表中添加扩展行单元;将所述扩展行单元在所述待处理拉链表中的位置,作为所述待写入位置。
其中,扩展行单元可以理解为,在增量主键与拉链主键不相同的情况下,在待处理拉链表中,根据预设的行建立策略建立的,用于存储此情景下插入的增量数据的存储空间。
基于此,在匹配关系指示增量主键与拉链主键不相同的情况下,根据预设的行建立策略,在待处理拉链表中添加此情况下用于存储增量数据的扩展行单元,并将扩展行单元在待处理拉链表中的位置作为待写入位置;需要说明的是,行建立策略可以是规定扩展行单元的具体创建位置,也可以是根据增量数据的更新时间在待处理行单元中与拉链数据的更新时间进行排序,根据排序结果得到的位置,其具体采用的位置选择方式由实际应用场景决定,本实施例不进行限定。
沿用上例,根据增量表中增量数据的增量主键1,与待处理拉链表中拉链数据的拉链主键1相同,这种情况下,在待处理拉链表中的拉链主键为1的拉链数据之前创建一个行单元,将这个行单元的位置作为增量主键1对应的增量数据的写入位置,根据这个位置将对应的增量数据写入待处理拉链表,如图2的一种拉链表更新方法的表格数据示意图中的图(c)中子数据的第一行所示。根据增量表中增量数据的增量主键3,与待处理拉链表中拉链数据的拉链主键都不相同,这种情况下,将待处理拉链表中选择末尾位置作为增量主键3对应的增量数据的写入位置,根据这个位置将对应的增量数据写入待处理拉链表,如图2的一种拉链表更新方法的表格数据示意图中的图(c)中子数据的第四行所示。
综上,通过以上方法,在匹配关系指示增量主键与拉链主键不相同的情况下,确定增量数据插入的位置。
步骤S104:将所述组合拉链表更新为目标组合拉链表,并基于所述增量主键遍历所述目标组合拉链表。
具体的,在获得组合拉链表之后,还需要对其进行进一步的处理,得到目标组合拉链表。
其中,插入待处理拉链表的增量数据,其形式与拉链数据并不相同,拉链数据中的起始时间与终止时间都没有被增量数据体现,所以需要对增量数据进行更新,使其也具有起始时间与终止时间的数据,保证组合拉链表中的子数据的一致性,目标组合拉链表可以理解为,组合拉链表对其中的增量数据进行更新的结果。
基于此,将组合拉链表中插入的增量数据进行更新,更新之后得到目标组合拉链表,通过这种更新,使目标组合拉链表中的数据的形式统一,便于后续处理;得到了目标组合拉链表之后,需要基于其中的主键对各个子数据进行分组处理,于是基于增量主键遍历目标组合拉链表。
进一步的,对组合拉链表中的增量数据进行更新,在本实施例中,具体实现方式如下:
查询所述增量表的更新时间;将所述增量表的更新时间作为所述增量表的增量起始时间,并确定增量终止时间;针对所述组合拉链表中关联所述增量表的增量数据,配置所述增量起始时间和所述增量终止时间,根据配置结果生成所述目标组合拉链表。
其中,增量起始时间可以理解为,增量数据对应的起始时间;增量终止时间可以理解为,增量数据对应的终止时间。
基于此,查询增量表的更新时间,根据增量时间确定增量数据对应的起始时间,由于增量数据是最新出现的数据,在这种情况下,若未来没有新的增量数据对其进行更新,则其生命周期可以视为永久,那么就可以按照预设的表示生命周期为永久的数据去设置增量数据对应的终止时间,根据确定的增量起始时间与增量终止时间,对组合数据中对应的增量数据进行更新,更新完成就得到了目标组合数据。
沿用上例,通过增量表的更新时间,确定两个增量数据的更新时间都是2022-1-1,这时候将2022-1-1作为组合拉链表中插入的两个增量数据的起始时间,之后将代表生命周期为永久的9999-12-31作为两个增量数据的终止时间,根据起始时间与终止时间对组合拉链表中的两个增量数据进行更新,获得目标组合拉链表,如图2的一种拉链表更新方法的表格数据示意图中的图(d)所示。
综上,通过增量表的更新时间对组合拉链表中的增量数据进行更新,实现了得到的目标组合拉链表中数据的统一,便于对数据进行处理。
步骤S106:根据遍历结果确定所述目标组合拉链表中包含的至少一组子数据对应的表结构。
具体的,根据增量主键遍历目标组合拉链表之后,需要将其中的数据进行分组处理。
其中,表结构可以理解为,在目标组合拉链表的具备同一种主键的数据中,增量数据与拉链数据之间的存在关系,如一种主键中只包括拉链数据,一种主键中只包括增量数据,或是一种主键中包括拉链数据与增量数据。
基于此,根据增量主键遍历目标组合拉链表的遍历结果,确定具备同一种主键的子数据所构成的子数据组的表结构,之后根据不同的表结构类型,确定不同的处理策略,实现对拉链表的更新。
进一步的,确定表结构的过程中,需要基于主键的类型进行确定,在本实施例中,具体实现方式如下:
根据遍历结果将所述目标组合拉链表中具有相同主键的子数据划分为同一组子数据;查询每组子数据中子数据的种类标识,根据查询结果确定每组子数据对应的表结构。
其中,根据增量主键遍历目标组合拉链表,之后再根据得到的遍历结果,可以确定目标组合拉链表中具备相同主键的子数据组,最后基于子数据组中的子数据的类型就能确定对应的表结构。
综上,通过对目标组合拉链表中同一主键的子数据进行表结构确定,实现不同的表结构对应不同的处理方式,增加拉链表更新的效率。
进一步的,在相同主键的子数据组成的数据组中,存在着多种情况,需要对其进行区分,在本实施例中,具体有以下几种方式实现:
(1)在第一子数据组的种类标识为增量标识的情况下,确定所述第一子数据组对应的表结构为增量表结构;
(2)在第二子数据组的种类标识为拉链标识的情况下,确定所述第二子数据组对应的表结构为拉链表结构;
(3)在第三子数据组的种类标识为增量标识与拉链标识的情况下,确定所述第三子数据组对应的表结构为调整表结构;
其中,第一子数据组、第二子数据组、第三子数据组都是由相同主键的子数据构成的数据组,三者之间的区别为其中的子数据的种类不同,需要说明的是,在同一个目标组合拉链表中可以存在任意数量的这三种子数据组,并且这三种子数据组可以同时存在于同一目标组合拉链表,也可以不是同时存在于同一目标组合拉链表;增量表结构可以理解为第一子数据组对应的表结构;拉链表结构可以理解为第二子数据组对应的表结构;调整表结构可以理解为第三子数据组对应的表结构。
基于此,在相同主键的子数据组中,若其中的子数据全部都是增量数据,那么这个子数据组为第一子数据组,对应的表结构为增量表结构;类似的若其中的子数据全部都是拉链数据,那么这个子数据组为第二子数据组,对应的表结构为拉链表结构;类似的若其中的子数据既有拉链数据又有增量数据,那么这个子数据组为第三子数据组,对应的表结构为调整表结构。
沿用上例,遍历目标组合拉链表,之后根据主键的不同对其分组,在相同主键的子数据组中,若其中存在都为增量数据,可以确定对应的表结构为增量表结构,如图2的一种拉链表更新方法的表格数据示意图中的图(d)中子数据的第四行所示;在相同主键的子数据组中,若其中存在都为拉链数据,可以确定对应的表结构为拉链表结构,如图2的一种拉链表更新方法的表格数据示意图中的图(d)中子数据的第三行所示;在相同主键的子数据组中,若其中即存在增量数据又存在拉链数据,可以确定对应的表结构为调整表结构,如图2的一种拉链表更新方法的表格数据示意图中的图(d)中子数据的第一、二行所示。
综上,根据相同主键的子数据组中的数据类型进行表结构的区分,在增量表结构的情况下,只有新增数据,那么此时说明增量数据是对待处理拉链表中的数据的添加;在拉链表结构的情况下,只有原有的拉链数据,那么此时说明待处理拉链表中的数据没有变化;在调整表结构的情况下,既有新增数据又有原有的拉链数据,说明增量数据对原数据进行了调整。
步骤S108:按照所述表结构对应的表更新策略将所述目标组合拉链表更新为目标拉链表。
其中,目标拉链表可以理解为,经过更新的拉链表。
基于此,按照表结构的不同,选择不同的表更新策略,目标组合拉链表更新,需要说明的是,更新得到的目标拉链表,其中可以包含旧有数据,实现全量分区表的存储形式,也可以是只存储经过更新的表,目标拉链表中具体包含的内容由实际应用场景决定,本实施例不进行限定。
进一步的,对于不同的表结构选择不同的表更新策略,在本实施例中,具体有以下几种方式实现:
(1)在所述第一子数据组为增量表结构的情况下,确定所述增量表结构对应的增量更新策略,根据所述增量更新策略对所述第一子数据组中的子数据的种类标识进行更新,获得所述目标拉链表;
(2)在所述第二子数据组为拉链表结构的情况下,确定所述拉链表结构对应的拉链更新策略,根据所述拉链更新策略将包含所述第二子数据组的目标组合拉链表作为所述目标拉链表;
(3)在所述第三子数据组为调整表结构的情况下,确定所述调整表结构对应的调整更新策略,根据所述调整更新策略对所述第三子数据组中的子数据进行合并,获得所述目标拉链表。
其中,增量更新策略可以理解为,增量表结构情况下对目标组合拉链表采取的更新策略;拉链更新策略可以理解为,拉链表结构情况下对目标组合拉链表采取的更新策略;调整更新策略可以理解为,调整表结构情况下对目标组合拉链表采取的更新策略。
基于此,在表结构为增量表结构的情况下,根据对应的增量更新策略对第一子数据组中的子数据的种类标识进行更新,更新得到目标拉链表;在表结构为拉链表结构的情况下,根据对应的拉链更新策略将第二子数据组作为目标拉链表,即无须进行修改;在表结构为调整表结构的情况下,根据对应的调整更新策略对第三子数据组中的子数据进行合并,获得所述目标拉链表。
沿用上例,根据如图2的一种拉链表更新方法的表格数据示意图中的图(d)中子数据的第一、二行所示,此一、二行为调整表结构,将第二行的种类标识作为第一行的种类标识,之后移除第二行,需要说明的是,若想保留历史数据,可以将第一行的起始时间作为第二行的终止时间,第二行即为历史数据;第三行为拉链表结构,不进行修改;第四行为增量表结构,将第四行的种类标识进行改变,最终不包含历史数据的目标拉链表如图2的一种拉链表更新方法的表格数据示意图中的图(e)所示。
综上,通过以上方式实现了对待处理拉链表的更新,无须多次读取,节省了读取资源,加快了更新效率。
进一步的,在子数据组中的子数据都是增量数据的情况下,说明该子数据组中的数据是新增的数据,需要保证该子数据组中的数据在目标拉链表中得到体现,在本实施例中,具体实现形式如下:
根据所述增量更新策略,将所述第一子数据组中的子数据的增量标识更新为拉链标识,根据更新结果获得所述目标拉链表。
其中,在子数据组中的子数据只为增量数据的情况下,此时需要使用增量更新策略,而在这种情况下,说明该子数据组为第一子数据组,并且说明其中的数据都是新增的数据,需要全部保留在目标拉链表中。
基于此,根据增量更新策略,将第一子数据组中的增量数据的增量标识更新为拉链标识,使得第一子数据组中的增量数据变为拉链数据,符合最终的目标拉链表形式,根据种类标识已经更新完的第一子数据组,得到目标拉链表。
沿用上例,如图2的一种拉链表更新方法的表格数据示意图中的图(d)中子数据的第四行,第四行的数据构成了一个主键为3的第一子数据组,将其中的种类标识从1更改为2,得到目标拉链表,如图2的一种拉链表更新方法的表格数据示意图中的图(e)中子数据的第三行。
综上,通过将第一子数据组中的增量数据的增量标识更新为拉链标识,使新添加至拉链表中的数据得到体现,实现了新数据的插入,保证拉链表对于新增数据的记录。
进一步的,在子数据组中的子数据即存在增量数据又存在拉链数据的情况下,说明该子数据组中的数据是新增的数据替换旧的数据,需要保证该子数据组中的数据更新在目标拉链表中得到体现,在本实施例中,具体实现形式如下:
根据所述调整更新策略,将所述第三子数据组中的增量数据的增量标识替换为所述拉链数据的拉链标识,并删除所述拉链数据,获得所述目标拉链表;或者根据所述调整更新策略,将所述第三子数据组中的拉链数据的终止时间替换为所述增量数据的起始时间,并删除所述增量数据,获得所述目标拉链表。
其中,在子数据组中的子数据即存在增量数据,又存在拉链数据的情况下,此时需要使用调整更新策略,而在这种情况下,说明该子数据组为第三子数据组,并且说明其中的数据需要将旧有的拉链数据进行更新,需要说明的是,对第三子数据组进行更新分为两种情况,第一种情况是基于增量数据,将更新得到的最新数据在目标拉链表中体现,第二种情况是基于拉链数据,将更新之后的历史数据在目标拉链表中体现,而这两种处理方式的选择由实际使用场景决定,本实施例不进行限定。
基于此,在第一种情况下,根据调整更新策略,将第三子数据组中的增量数据的增量标识替换为拉链数据的拉链标识,并且将拉链数据进行删除,最终得到的目标拉链表包含增量标识被替换为拉链标识的子数据;在第二种情况下,根据调整更新策略,将第三子数据组中的拉链数据的终止时间替换为增量数据的起始时间,并且将增量数据进行删除,最终得到的目标拉链表中包含终止时间被更新为增量数据的起始时间的拉链数据。
沿用上例,如图2的一种拉链表更新方法的表格数据示意图中的图(d)中子数据的第一、二行,构成了一个主键为1的第三子数据组,在需要获取最新数据的情况下,将第一行中数据种类标识从1更新为2,之后删除第二行,得到目标拉链表,如图2的一种拉链表更新方法的表格数据示意图中的图(e)中子数据的第一行;在需要获取历史数据的情况下,将第二行中数据的终止时间9999-12-31更新为第一行的起始时间2022-1-1,之后删除第一行,得到目标拉链表。
综上,通过两种不同的更新方式,使目标拉链表可以在不同的场景下实现不同的功能,即展示最新更新的数据,或是展示历史数据。
本申请提供的拉链表更新方法,根据增量表的增量主键将增量表插入待处理拉链表,得到组合拉链表,之后对组合拉链表进行更新得到目标组合拉链表;再根据增量主键确定目标组合拉链表中包含的至少一组子数据对应的表结构,最后根据得到的表结构却能够更新策略,将目标组合拉链表更新为目标拉链表,提供了一种可以应对各种场景的,统一的拉链表更新方法,节省开发成本,同时通过这种方法减少了拉链更新过程中出现的数据读取,节省相关设备的读取资源,提高了拉链表更新效率。
下述结合附图3,以本申请提供的拉链表更新方法在人员统计的应用为例,对所述拉链表更新方法进行进一步说明。其中,图3示出了本申请一实施例提供的一种应用于拉链表更新的人员统计方法的处理流程图,具体包括以下步骤:
步骤S302:获取目标业务对应的待处理拉链表,并确定所述待处理拉链表关联的所述增量表。
具体的,在学校的学生档案系统中,获取待处理拉链表,并获取针对原有的待处理拉链表发出的增量表;其中,待处理拉链表中存储着学生的姓名,后来此学生修改了姓名,这种情况下需要将修改的学生姓名同步至学生档案系统;待处理拉链表如图4的本申请一实施例提供的一种应用于人员统计的拉链表更新方法的表格数据示意图中的图(a)所示,增量表如图4的本申请一实施例提供的一种应用于人员统计的拉链表更新方法的表格数据示意图中的图(b)所示。
步骤S304:查询所述增量表中包含的增量主键,以及所述待处理拉链表中包含的拉链主键,并确定所述增量主键与所述拉链主键之间的匹配关系。
具体的,增量表与待处理拉链表对应的主键相同,即id都为1。
步骤S306:根据所述匹配关系,在所述待处理拉链表中确定对应待写入位置。
具体的,由于增量主键与拉链主键相同,在待处理拉链表中的前一行创建关联行单元,将关联行单元在待处理拉链表中的位置,作为待写入位置。
步骤S308:按照所述待写入位置,依次将所述增量表中包含的增量数据写入所述待处理拉链表,获得组合拉链表。
具体的,根据待写入位置将增量表中包含的增量数据写入待处理拉链表,获得组合拉链表,其中组合拉链表如图4的本申请一实施例提供的一种应用于人员统计的拉链表更新方法的表格数据示意图中的图(c)所示。
步骤S310:针对所述组合拉链表中的子数据配置种类标识。
具体的,配置种类标识,设定增量表中的增量数据的种类标识为增量标识,在组合拉链表中用数字1表示,设定拉链数据的种类标识为拉链标识,在组合拉链表中用数字2表示。
步骤S312:查询所述增量表的更新时间。
具体的,确定增量表的更新时间为2022-02-11。
步骤S314:将所述增量表的更新时间作为所述增量表的增量起始时间,并确定增量终止时间。
具体的,配置增量起始时间为2022-02-11,增量终止时间为9999-12-31。
步骤S316:针对所述组合拉链表中关联所述增量表的增量数据,配置所述增量起始时间和所述增量终止时间,根据配置结果生成所述目标组合拉链表。
具体的根据增量起始时间与增量终止时间对组合拉链表进行更新,得到目标组合拉链表,如图4的本申请一实施例提供的一种应用于人员统计的拉链表更新方法的表格数据示意图中的图(d)所示。
步骤S318:遍历所述目标组合拉链表,根据遍历结果将所述目标组合拉链表中具有相同主键的子数据划分为同一组子数据。
步骤S320:查询每组子数据中子数据的种类标识,根据查询结果确定每组子数据对应的表结构。
具体的,确定划分出的子数据组为第三子数据组,确定表结构为调整表结构。
步骤S322:按照所述表结构对应的表更新策略将所述目标组合拉链表更新为目标拉链表。
具体的,根据调整表结构,将拉链数据的终止时间改为增量数据的起始时间,得到目标拉链表,这个目标拉链表用于记录学生曾用名的使用时间范围。
本申请提供的拉链表更新方法,根据增量表的增量主键将增量表插入待处理拉链表,得到组合拉链表,之后对组合拉链表进行更新得到目标组合拉链表;再根据增量主键确定目标组合拉链表中包含的至少一组子数据对应的表结构,最后根据得到的表结构确定更新策略,将目标组合拉链表更新为目标拉链表,提供了一种可以应对各种场景的,统一的拉链表更新方法,节省开发成本,同时通过这种方法减少了拉链更新过程中出现的数据读取,节省相关设备的读取资源,提高了拉链表更新效率。
与上述方法实施例相对应,本申请还提供了拉链表更新装置实施例,图5示出了本申请一实施例提供的一种拉链表更新装置的结构示意图。如图5所示,该装置包括:
插入模块502,被配置为根据关联待处理拉链表的增量表记录的增量主键,将所述增量表插入所述待处理拉链表,获得组合拉链表;
遍历模块504,被配置为将所述组合拉链表更新为目标组合拉链表,并基于所述增量主键遍历所述目标组合拉链表;
确定模块506,别配置为根据遍历结果确定所述目标组合拉链表中包含的至少一组子数据对应的表结构;
更新模块508,被配置为按照所述表结构对应的表更新策略将所述目标组合拉链表更新为目标拉链表。
在一种可选的实施例中,所述插入模块502还被配置为:
获取目标业务对应的待处理拉链表,并确定所述待处理拉链表关联的所述增量表;查询所述增量表中包含的增量主键,以及所述待处理拉链表中包含的拉链主键,并确定所述增量主键与所述拉链主键之间的匹配关系;根据所述匹配关系,依次将所述增量表中包含的增量数据写入所述待处理拉链表,获得组合拉链表。
在一种可选的实施例中,所述插入模块502还被配置为:
根据所述匹配关系,在所述待处理拉链表中确定对应待写入位置;按照所述待写入位置,依次将所述增量表中包含的增量数据写入所述待处理拉链表,获得组合拉链表。
在一种可选的实施例中,所述插入模块502还被配置为:
根据所述匹配关系确定所述增量主键与所述拉链主键相同的情况下,在所述待处理拉链表中确定所述拉链主键对应的拉链数据的拉链写入位置;在所述待处理拉链表中添加所述拉链写入位置前相邻的关联行单元,将所述关联行单元在所述待处理拉链表中的位置,作为所述待写入位置。
在一种可选的实施例中,所述插入模块502还被配置为:
根据所述匹配关系确定所述增量主键与所述拉链主键不相同的情况下,按照预设的行建立策略,在所述待处理拉链表中添加扩展行单元;将所述扩展行单元在所述待处理拉链表中的位置,作为所述待写入位置。
在一种可选的实施例中,所述遍历模块504还被配置为:
查询所述增量表的更新时间;将所述增量表的更新时间作为所述增量表的增量起始时间,并确定增量终止时间;针对所述组合拉链表中关联所述增量表的增量数据,配置所述增量起始时间和所述增量终止时间,根据配置结果生成所述目标组合拉链表。
在一种可选的实施例中,所述拉链表更新设备还包括:
配置模块,被配置为针对所述组合拉链表中的子数据配置种类标识;其中,在所述子数据为所述增量表中的增量数据的情况下,针对所述增量数据配置增量标识,在所述子数据为所述待处理拉链表中的拉链数据的情况下,针对所述拉链数据配置拉链标识。
在一种可选的实施例中,所述确定模块506还被配置为:
根据遍历结果将所述目标组合拉链表中具有相同主键的子数据划分为同一组子数据;查询每组子数据中子数据的种类标识,根据查询结果确定每组子数据对应的表结构。
在一种可选的实施例中,所述确定模块508还被配置为:
在第一子数据组的种类标识为增量标识的情况下,确定所述第一子数据组对应的表结构为增量表结构;相应的,所述按照所述表结构对应的表更新策略将所述目标组合拉链表更新为目标拉链表,包括:确定所述增量表结构对应的增量更新策略,根据所述增量更新策略对所述第一子数据组中的子数据的种类标识进行更新,获得所述目标拉链表。
在一种可选的实施例中,所述确定模块506还被配置为:
根据所述增量更新策略,将所述第一子数据组中的子数据的增量标识更新为拉链标识,根据更新结果获得所述目标拉链表。
在一种可选的实施例中,所述更新模块508还被配置为:
在第二子数据组的种类标识为拉链标识的情况下,确定所述第二子数据组对应的表结构为拉链表结构;相应的,所述按照所述表结构对应的表更新策略将所述目标组合拉链表更新为目标拉链表,包括:确定所述拉链表结构对应的拉链更新策略,根据所述拉链更新策略将包含所述第二子数据组的目标组合拉链表作为所述目标拉链表。
在一种可选的实施例中,所述更新模块508还被配置为:
在第三子数据组的种类标识为增量标识与拉链标识的情况下,确定所述第三子数据组对应的表结构为调整表结构;相应的,所述按照所述表结构对应的表更新策略将所述目标组合拉链表更新为目标拉链表,包括:确定所述调整表结构对应的调整更新策略,根据所述调整更新策略对所述第三子数据组中的子数据进行合并,获得所述目标拉链表。
在一种可选的实施例中,所述更新模块508被配置为:
根据所述调整更新策略,将所述第三子数据组中的增量数据的增量标识替换为所述拉链数据的拉链标识,并删除所述拉链数据,获得所述目标拉链表;或者根据所述调整更新策略,将所述第三子数据组中的拉链数据的终止时间替换为所述增量数据的起始时间,并删除所述增量数据,获得所述目标拉链表。
本申请提供的拉链表更新装置,可以实现一种可以应对各种场景的,统一的拉链表更新方法,节省开发成本,同时通过这种方法减少了拉链更新过程中出现的数据读取,节省相关设备的读取资源,提高了拉链表更新效率。
上述为本实施例的一种拉链表更新装置的示意性方案。需要说明的是,该拉链表更新装置的技术方案与上述的拉链表更新方法的技术方案属于同一构思,拉链表更新装置的技术方案未详细描述的细节内容,均可以参见上述拉链表更新方法的技术方案的描述。
图6示出了根据本申请一实施例提供的一种计算设备600的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。
计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本申请的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备600还可以是移动式或静止式的服务器。
其中,处理器620执行所述指令时实现所述的拉链表更新方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的拉链表更新方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述拉链表更新方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述拉链表更新方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的拉链表更新方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述拉链表更新方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

Claims (16)

1.一种拉链表更新方法,其特征在于,包括:
根据关联待处理拉链表的增量表记录的增量主键,将所述增量表插入所述待处理拉链表,获得组合拉链表;
将所述组合拉链表更新为目标组合拉链表,并基于所述增量主键遍历所述目标组合拉链表;
根据遍历结果确定所述目标组合拉链表中包含的至少一组子数据对应的表结构;
按照所述表结构对应的表更新策略将所述目标组合拉链表更新为目标拉链表。
2.根据权利要求1所述的方法,其特征在于,所述根据关联待处理拉链表的增量表记录的增量主键,将所述增量表插入所述待处理拉链表,获得组合拉链表,包括:
获取目标业务对应的待处理拉链表,并确定所述待处理拉链表关联的所述增量表;
查询所述增量表中包含的增量主键,以及所述待处理拉链表中包含的拉链主键,并确定所述增量主键与所述拉链主键之间的匹配关系;
根据所述匹配关系,依次将所述增量表中包含的增量数据写入所述待处理拉链表,获得组合拉链表。
3.根据权利要求2所述的方法,其特征在于,所述根据所述匹配关系,依次将所述增量表中包含的增量数据写入所述待处理拉链表,获得组合拉链表,包括:
根据所述匹配关系,在所述待处理拉链表中确定对应待写入位置;
按照所述待写入位置,依次将所述增量表中包含的增量数据写入所述待处理拉链表,获得组合拉链表。
4.根据权利要求3所述的方法,其特征在于,所述根据所述匹配关系,在所述待处理拉链表中确定对应待写入位置,包括:
根据所述匹配关系确定所述增量主键与所述拉链主键相同的情况下,在所述待处理拉链表中确定所述拉链主键对应的拉链数据的拉链写入位置;
在所述待处理拉链表中添加所述拉链写入位置前相邻的关联行单元,将所述关联行单元在所述待处理拉链表中的位置,作为所述待写入位置。
5.根据权利要求3所述的方法,其特征在于,所述根据所述匹配关系,在所述待处理拉链表中确定对应待写入位置,包括:
根据所述匹配关系确定所述增量主键与所述拉链主键不相同的情况下,按照预设的行建立策略,在所述待处理拉链表中添加扩展行单元;
将所述扩展行单元在所述待处理拉链表中的位置,作为所述待写入位置。
6.根据权利要求1所述的方法,其特征在于,所述将所述组合拉链表更新为目标组合拉链表,包括:
查询所述增量表的更新时间;
将所述增量表的更新时间作为所述增量表的增量起始时间,并确定增量终止时间;
针对所述组合拉链表中关联所述增量表的增量数据,配置所述增量起始时间和所述增量终止时间,根据配置结果生成所述目标组合拉链表。
7.根据权利要求1所述的方法,其特征在于,所述将所述增量表插入所述待处理拉链表,获得组合拉链表之前,还包括:
针对所述组合拉链表中的子数据配置种类标识;
其中,在所述子数据为所述增量表中的增量数据的情况下,针对所述增量数据配置增量标识,在所述子数据为所述待处理拉链表中的拉链数据的情况下,针对所述拉链数据配置拉链标识。
8.根据权利要求7所述的方法,其特征在于,所述根据遍历结果确定所述目标组合拉链表中包含的至少一组子数据对应的表结构,包括:
根据遍历结果将所述目标组合拉链表中具有相同主键的子数据划分为同一组子数据;
查询每组子数据中子数据的种类标识,根据查询结果确定每组子数据对应的表结构。
9.根据权利要求8所述的方法,其特征在于,任意一组子数据对应的表结构的确定,包括:
在第一子数据组的种类标识为增量标识的情况下,确定所述第一子数据组对应的表结构为增量表结构;
相应的,所述按照所述表结构对应的表更新策略将所述目标组合拉链表更新为目标拉链表,包括:
确定所述增量表结构对应的增量更新策略,根据所述增量更新策略对所述第一子数据组中的子数据的种类标识进行更新,获得所述目标拉链表。
10.根据权利要求9所述的方法,其特征在于,所述根据所述增量更新策略对所述第一子数据组中的子数据的种类标识进行更新,获得所述目标拉链表,包括:
根据所述增量更新策略,将所述第一子数据组中的子数据的增量标识更新为拉链标识,根据更新结果获得所述目标拉链表。
11.根据权利要求8所述的方法,其特征在于,任意一组子数据对应的表结构的确定,包括:
在第二子数据组的种类标识为拉链标识的情况下,确定所述第二子数据组对应的表结构为拉链表结构;
相应的,所述按照所述表结构对应的表更新策略将所述目标组合拉链表更新为目标拉链表,包括:
确定所述拉链表结构对应的拉链更新策略,根据所述拉链更新策略将包含所述第二子数据组的目标组合拉链表作为所述目标拉链表。
12.根据权利要求8所述的方法,其特征在于,任意一组子数据对应的表结构的确定,包括:
在第三子数据组的种类标识为增量标识与拉链标识的情况下,确定所述第三子数据组对应的表结构为调整表结构;
相应的,所述按照所述表结构对应的表更新策略将所述目标组合拉链表更新为目标拉链表,包括:
确定所述调整表结构对应的调整更新策略,根据所述调整更新策略对所述第三子数据组中的子数据进行合并,获得所述目标拉链表。
13.根据权利要求12所述的方法,其特征在于,所述根据所述调整更新策略对所述第三子数据组中的子数据进行合并,获得所述目标拉链表,包括:
根据所述调整更新策略,将所述第三子数据组中的增量数据的增量标识替换为所述拉链数据的拉链标识,并删除所述拉链数据,获得所述目标拉链表;或者
根据所述调整更新策略,将所述第三子数据组中的拉链数据的终止时间替换为所述增量数据的起始时间,并删除所述增量数据,获得所述目标拉链表。
14.一种拉链表更新装置,其特征在于,包括:
插入模块,被配置为根据关联待处理拉链表的增量表记录的增量主键,将所述增量表插入所述待处理拉链表,获得组合拉链表;
遍历模块,被配置为将所述组合拉链表更新为目标组合拉链表,并基于所述增量主键遍历所述目标组合拉链表;
确定模块,别配置为根据遍历结果确定所述目标组合拉链表中包含的至少一组子数据对应的表结构;
更新模块,被配置为按照所述表结构对应的表更新策略将所述目标组合拉链表更新为目标拉链表。
15.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述指令时实现权利要求1-13任意一项所述方法的步骤。
16.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1-13任意一项所述方法的步骤。
CN202210466729.2A 2022-04-29 2022-04-29 拉链表更新方法及装置 Pending CN114860727A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210466729.2A CN114860727A (zh) 2022-04-29 2022-04-29 拉链表更新方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210466729.2A CN114860727A (zh) 2022-04-29 2022-04-29 拉链表更新方法及装置

Publications (1)

Publication Number Publication Date
CN114860727A true CN114860727A (zh) 2022-08-05

Family

ID=82635794

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210466729.2A Pending CN114860727A (zh) 2022-04-29 2022-04-29 拉链表更新方法及装置

Country Status (1)

Country Link
CN (1) CN114860727A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115422198A (zh) * 2022-09-15 2022-12-02 中国建设银行股份有限公司 大数据拉链表处理方法、装置、设备及存储介质
CN116719971A (zh) * 2023-05-08 2023-09-08 中银金融科技有限公司 拉链表数据加载方法、装置和电子设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115422198A (zh) * 2022-09-15 2022-12-02 中国建设银行股份有限公司 大数据拉链表处理方法、装置、设备及存储介质
CN116719971A (zh) * 2023-05-08 2023-09-08 中银金融科技有限公司 拉链表数据加载方法、装置和电子设备
CN116719971B (zh) * 2023-05-08 2024-04-09 中银金融科技有限公司 拉链表数据加载方法、装置和电子设备

Similar Documents

Publication Publication Date Title
Karnitis et al. Migration of relational database to document-oriented database: structure denormalization and data transformation
CN110291517B (zh) 图数据库中的查询语言互操作性
US7933932B2 (en) Statistics based database population
US6557012B1 (en) System and method of refreshing and posting data between versions of a database table
US9218409B2 (en) Method for generating and using a reusable custom-defined nestable compound data type as database qualifiers
US9870382B2 (en) Data encoding and corresponding data structure
Vajk et al. Denormalizing data into schema-free databases
CN111241185A (zh) 数据处理方法以及装置
Chavan et al. Survey paper on big data
CN114860727A (zh) 拉链表更新方法及装置
CN113297320A (zh) 分布式数据库系统及数据处理方法
CN103678519A (zh) 一种支持Hive DML增强的混合存储系统及其方法
CN114461603A (zh) 多源异构数据融合方法及装置
EP4071626A1 (en) Improved approximate unique count
US20220253419A1 (en) Multi-record index structure for key-value stores
CN104794567B (zh) 一种基于HBase的传染病数据管理方法
CN113918573A (zh) 数据处理方法及装置
US20160103863A1 (en) Method of managing relational data in a single matrix representation
CN117493333A (zh) 数据归档方法、装置、电子设备及存储介质
CN116049193A (zh) 数据存储方法及装置
CN104166739B (zh) 分析数据库的指标文件处理方法及装置
Li et al. SP-phoenix: a massive spatial point data management system based on phoenix
Kashyap et al. A review of leading databases: Relational & non-relational database
Singh NoSQL: A new horizon in big data
Batra et al. An Introduction to SQL

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