高效支持混合分布式交易和分析型查询的表存储结构构造方法技术

技术编号:27530924 阅读:20 留言:0更新日期:2021-03-03 11:08
本发明专利技术公开了一种高效支持混合分布式交易和分析型查询的表存储结构构造方法。该方法首先创建基于行存的表存储结构,该结构包括键Key和值Value两个部分,其中键部分用于记录表与存入数据相关的数据基础信息,保存数据属性,包括TID、RID、CFID、Row ID、Command ID、Timestamp、Delete Mark等,这些信息在键结构上按顺序排列且占用空间大小固定,除此之外还包括自定义信息;值部分则用于有序地记录和保存数据。创建表时若不指定主键会自动生成隐藏主键,数据进行增删改查时,事务状态为Pending,接着确定事务合法性,按规则对数据进行不同操作。该表存储结构保证了查询快速准确,保证实时交易。保证实时交易。保证实时交易。

【技术实现步骤摘要】
高效支持混合分布式交易和分析型查询的表存储结构构造方法


[0001]本专利技术属于OLAP类型的分布式数据库设计与应用领域,尤其涉及一种高效支持混合分布式交易和分析型查询的表存储结构构造方法。

技术介绍

[0002]目前银行数据仓库批量计算兼顾查询交易的应用场景,具体场景为通过三年的核心交易流水识别是否存在电信诈骗黑名单,黑名单库数据量约达到1T,因为批量计算的数据仓库不适合直连交易场景,为了减少数据在系统之间移动,外部机构可以通过应用接口直连数据接口进行指定时间端的黑名单交易记录,分布式OLAP数据库一般采用列存储表设计保证批量计算的计算效率,但不适合低延时实时交易查询。目前的应用场景一般通过数据仓库批量计算加工生成目标表,然后将目标表导入到支持OLTP的数据库供应用交易查询,这样做的缺点主要有三点,一是增加了技术栈的维护复杂度,二是增加了数据导入导出的数据交换工作,三是降低了数据的时效性。

技术实现思路

[0003]本专利技术的目的在于针对现有技术的不足,提出一种高效支持混合分布式交易和分析型查询的表存储结构构造方法。
[0004]本专利技术的目的是通过以下技术方案来实现的:一种高效支持混合分布式交易和分析型查询的表存储结构构造方法,包括:
[0005]创建基于行存的表存储结构,该结构包括键(Key)和值(Value)两个部分;
[0006]构建表存储结构中键部分:键部分用于记录表与存入数据相关的数据基础信息,保存数据属性,包括:TID、RID、CFID、Row ID、Command ID、Timestamp、Delete Mark,其中 TID表示键所在表的地址;RID表示所要存储数据列地址;CFID(cfid column family id)表示列簇的id号;Row ID表示所要存储数据行地址;Command ID表示记录一个事务中产生写操作 (例如DDL,DML)的SQL行为;Timestamp表示时间戳;Delete Mark表示数据删除的状态;这些信息在键结构上按顺序排列且占用空间大小固定;还包括自定义信息:Key Columns(Fixed Width)、Key Column(Var Width),其中Key Columns(Fixed Width)表示键列(固定长度数据类型);Key Column(Var Width)表示键列(变长数据类型);
[0007]构建表存储结构中值部分:值部分则用于有序地记录和保存数据,主要由Value Columns(Fixed Width)、IsNulls、Variable Width Offsets、Value Columns(Variable Width)四部分组成,其中Value Columns(Fixed Width)按顺序排列其中数据,从Val Col 1到Val Col N;IsNulls 表示数据是否为空;Variable Width Offsets表示可变宽度补偿,是Value Columns(Variable Width) 的初始标志;Value Columns(Variable Width)接着Value Columns(Fixed Width)继续按顺序排列数据,从Val Col N+1到Val Col N+M。
[0008]所述表存储结构存储数据的规则如下:
Transaction ID。
[0023]从而对于状态为Pending的Transaction ID,获取AMTID(K)和TID,并将元组(K,TID, NULL),(K,TID,Vi)按照如表3和表4规则插入:
[0024]表3
[0025][0026]表4
[0027][0028]进一步地,对于DELETE操作,合法的删除操作通过如下规则完成:
[0029]对于状态为Pending的Transaction ID,获取AMTID(K)和TID,并将元组(K,TID,Deleted, NULL),(K,TID,Deleted,Vi)按照如表5和表6规则插入:
[0030]表5
[0031][0032][0033]表6
Columns(Fixed Width) 按顺序排列其中数据,从Val Col 1到Val Col N,每个Val Col N如图2中“1”所示;如图2 中“3”,IsNulls使用8B字节表示数据是否为空;如图2中“4”,Variable Width Offsets使用 4B字节表示可变宽度补偿,是Value Columns(Variable Width)的初始标志;如图2中“5”,ValueColumns(Variable Width)接着Value Columns(Fixed Width)继续按顺序排列数据,从Val Col N+1 到Val Col N+M。
[0043]上述表存储结构存储数据的操作如下:
[0044]对于DDL中创建表(CREATE TABLE)的操作:如果没有指定主键(Primary Key),则采用一个隐藏的子增列作为其主键;如果用户指定了主键,则其必须满足最多有一个变长列且变长列为主键的最后一列。
[0045]对于DML(插入更新删除)和DQL(查询)的操作:假设TID为事务的ID,S(TID)= {Pending,Committed,Aborted}为该事务的状态,M(K,TID)={Kept,Deleted}是键值为K的元组(Tuple)在事务TID上的标志位;当数据进行增删改查时,事务状态为Pending,接着确定事务合法性,按规则对数据进行不同操作。
[0046]对于SELECT操作,合法的元组通过如下规则读取:定义VMTID(K,TID)为最大的合法事务ID(Valid Max Transaction ID for Key K with Transaction ID TID),则有:
[0047]VMTID(K,TID)=max{Transaction ID with
[0048]((S(Transaction ID)=Committed AND Transaction ID<TID)
[0049]OR
[0050](S(Transaction ID)=Pending AND Transaction ID=TID))
[0051]for Key K in Store}
[0052]VMTID(K,TID)是在存储中对于Key K,最大的Transaction ID选择为,当Transaction ID <TID时,状态为Committed的Transaction ID或者Transaction ID=TID时,状态为Pending 的Transaction ID。
[0053]从而有如果M(K,VMTID)=Kept,则返回结果为VMTID;否则返回NULL。
[0054]对于INSERT操作,合法的插入操作通过如下规则完成本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种高效支持混合分布式交易和分析型查询的表存储结构构造方法,其特征在于:创建基于行存的表存储结构,该结构包括键Key和值Value两个部分;构建表存储结构中键部分:键部分用于记录表与存入数据相关的数据基础信息,保存数据属性,包括:TID、RID、CFID、Row ID、Command ID、Timestamp、Delete Mark,其中TID表示键所在表的地址;RID表示所要存储数据列地址;CFID表示列簇的id号;Row ID表示所要存储数据行地址;Command ID表示记录一个事务中产生写操作的SQL行为;Timestamp表示时间戳;Delete Mark表示数据删除的状态;这些信息在键结构上按顺序排列且占用空间大小固定;还包括自定义信息:Key Columns(Fixed Width)、Key Column(Var Width),其中Key Columns(Fixed Width)表示键列(固定长度数据类型);Key Column(Var Width)表示键列(变长数据类型);构建表存储结构中值部分:值部分则用于有序地记录和保存数据,主要由Value Columns(Fixed Width)、IsNulls、Variable Width Offsets、Value Columns(Variable Width)四部分组成,其中Value Columns(Fixed Width)按顺序排列其中数据,从Val Col 1到Val Col N;IsNulls表示数据是否为空;Variable Width Offsets表示可变宽度补偿,是Value Columns(Variable Width)的初始标志;Value Columns(Variable Width)接着Value Columns(Fixed Width)继续按顺序排列数据,从Val Col N+1到Val Col N+M。所述表存储结构存储数据的规则如下:对于DDL中创建表的操作:如果没有指定主键,则采用一个隐藏的子增列作为其主键;如果用户指定了主键,则其必须满足最多有一个变长列且变长列为主键的最后一列;对于DML和DQL操作:假设TID为事务的ID,S(TID)={Pending,Committed,Aborted}为该事务的状态,M(K,TID)={Kept,Deleted}是键值为K的元组在事务TID上的标志位;当数据进行增删改查时,事务状态为Pending,接着确定事务合法性,按规则对数据进行不同操作。2.根据权利要求1所述的一种高效支持混合分布式交易和分析型查询的表存储结构构造方法,其特征在...

【专利技术属性】
技术研发人员:陈伟富浩臧铖胡宏雀张云粮
申请(专利权)人:浙商银行股份有限公司
类型:发明
国别省市:

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

1