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

文档序号:24123279发布日期:2021-03-02 12:23阅读:67来源:国知局
[0001]本发明属于olap类型的分布式数据库设计与应用领域,尤其涉及一种高效支持混合分布式交易和分析型查询的表存储结构构造方法。
背景技术
::[0002]目前银行数据仓库批量计算兼顾查询交易的应用场景,具体场景为通过三年的核心交易流水识别是否存在电信诈骗黑名单,黑名单库数据量约达到1t,因为批量计算的数据仓库不适合直连交易场景,为了减少数据在系统之间移动,外部机构可以通过应用接口直连数据接口进行指定时间端的黑名单交易记录,分布式olap数据库一般采用列存储表设计保证批量计算的计算效率,但不适合低延时实时交易查询。目前的应用场景一般通过数据仓库批量计算加工生成目标表,然后将目标表导入到支持oltp的数据库供应用交易查询,这样做的缺点主要有三点,一是增加了技术栈的维护复杂度,二是增加了数据导入导出的数据交换工作,三是降低了数据的时效性。技术实现要素:[0003]本发明的目的在于针对现有技术的不足,提出一种高效支持混合分布式交易和分析型查询的表存储结构构造方法。[0004]本发明的目的是通过以下技术方案来实现的:一种高效支持混合分布式交易和分析型查询的表存储结构构造方法,包括:[0005]创建基于行存的表存储结构,该结构包括键(key)和值(value)两个部分;[0006]构建表存储结构中键部分:键部分用于记录表与存入数据相关的数据基础信息,保存数据属性,包括:tid、rid、cfid、rowid、commandid、timestamp、deletemark,其中tid表示键所在表的地址;rid表示所要存储数据列地址;cfid(cfidcolumnfamilyid)表示列簇的id号;rowid表示所要存储数据行地址;commandid表示记录一个事务中产生写操作(例如ddl,dml)的sql行为;timestamp表示时间戳;deletemark表示数据删除的状态;这些信息在键结构上按顺序排列且占用空间大小固定;还包括自定义信息:keycolumns(fixedwidth)、keycolumn(varwidth),其中keycolumns(fixedwidth)表示键列(固定长度数据类型);keycolumn(varwidth)表示键列(变长数据类型);[0007]构建表存储结构中值部分:值部分则用于有序地记录和保存数据,主要由valuecolumns(fixedwidth)、isnulls、variablewidthoffsets、valuecolumns(variablewidth)四部分组成,其中valuecolumns(fixedwidth)按顺序排列其中数据,从valcol1到valcoln;isnulls表示数据是否为空;variablewidthoffsets表示可变宽度补偿,是valuecolumns(variablewidth)的初始标志;valuecolumns(variablewidth)接着valuecolumns(fixedwidth)继续按顺序排列数据,从valcoln+1到valcoln+m。[0008]所述表存储结构存储数据的规则如下:transactionid。[0023]从而对于状态为pending的transactionid,获取amtid(k)和tid,并将元组(k,tid,null),(k,tid,vi)按照如表3和表4规则插入:[0024]表3[0025][0026]表4[0027][0028]进一步地,对于delete操作,合法的删除操作通过如下规则完成:[0029]对于状态为pending的transactionid,获取amtid(k)和tid,并将元组(k,tid,deleted,null),(k,tid,deleted,vi)按照如表5和表6规则插入:[0030]表5[0031][0032][0033]表6columns(fixedwidth)按顺序排列其中数据,从valcol1到valcoln,每个valcoln如图2中“1”所示;如图2中“3”,isnulls使用8b字节表示数据是否为空;如图2中“4”,variablewidthoffsets使用4b字节表示可变宽度补偿,是valuecolumns(variablewidth)的初始标志;如图2中“5”,valuecolumns(variablewidth)接着valuecolumns(fixedwidth)继续按顺序排列数据,从valcoln+1到valcoln+m。[0043]上述表存储结构存储数据的操作如下:[0044]对于ddl中创建表(createtable)的操作:如果没有指定主键(primarykey),则采用一个隐藏的子增列作为其主键;如果用户指定了主键,则其必须满足最多有一个变长列且变长列为主键的最后一列。[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(validmaxtransactionidforkeykwithtransactionidtid),则有:[0047]vmtid(k,tid)=max{transactionidwith[0048]((s(transactionid)=committedandtransactionid<tid)[0049]or[0050](s(transactionid)=pendingandtransactionid=tid))[0051]forkeykinstore}[0052]vmtid(k,tid)是在存储中对于keyk,最大的transactionid选择为,当transactionid<tid时,状态为committed的transactionid或者transactionid=tid时,状态为pending的transactionid。[0053]从而有如果m(k,vmtid)=kept,则返回结果为vmtid;否则返回null。[0054]对于insert操作,合法的插入操作通过如下规则完成:定义dmtid(k)为最大的确定性事务id(deterministicmaxtransactionidforkeyk),则有:[0055]dmtid(k)=max{transactionidwith[0056](s(transactionid)=pendingors(transactionid)=committed)[0057]forkeykinstore}[0058]dmtid(k)是在存储中对于keyk,最大的transactionid选择为,选择状态为pending的transactionid或者状态为committed的transactionid。[0059]从而对于状态为pending的transactionid,将元组(k,tid,v1,v2,…,vn)分裂为元组序列(k,tid,null)和(k,tid,v1),(k,tid,v2),…,(k,tid,vn),对于元组(k,tid,vi),vi为第i个插入数据,插入规则如表1和表2:[0060]表1[0061][0062]表2[0063][0064]对于update操作,合法的更新操作通过如下规则完成:定义amtid(k)为最大可用事务id(availablemaxtransactionidforkeyk),则有:[0065]amtid(k)=max{transactionidwith[0066](s(transactionid)=pendingors(transactionid)=committed)[0067]forkeykinstore}[0068]amtid(k)是在存储中对于keyk,最大的transactionid选择为,选择状态为pending的transactionid或者状态为committed的transactionid。[0069]从而对于状态为pending的transactionid,获取amtid(k)和tid,并将元组(k,tid,null),(k,tid,vi)按照如表3和表4规则插入:[0070]表3[0071][0072]表4[0073][0074]对于delete操作,合法的删除操作通过如下规则完成:对于状态为pending的transactionid,获取amtid(k)和tid,并将元组(k,tid,deleted,null),(k,tid,deleted,vi)按照如表5和表6规则插入:[0075]表5[0076][0077]表6[0078][0079]本发明适用于金融行业olap类型分布式数据库作为数据仓库支持大数据量批量计算兼顾查询交易的应用场景。本发明保证了表查询快速准确,保证实时交易,而且减少了数据在系统之间移动,外部机构可以通过应用接口直连数据接口进行指定时间端的黑名单交易记录,建立了一种分布式olap数据库基于行存的表存储结构,它可以用来高效地支持混合分布式分析性查询和交易。[0080]以上所述仅是本发明的优选实施方式,虽然本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何的简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1