一种基于雪花模型的多个HBase表关联方法技术

技术编号:11094390 阅读:572 留言:0更新日期:2015-02-27 05:07
本发明专利技术公开了一种基于雪花模型的多个HBase表关联方法,属于大数据技术领域,HBase表包括查询入口表、主事实表、补充事实表和维表;以主事实表作为雪花模型的中心表和关联的起点,在主事实表的主键中包含查询入口表条件作为组成部分;查询入口表按输入条件和对象对应关系设计组合主键;针对主事实表的补充事实表,设计与主事实表相同的组合主键;针对各个维表主键,基于主事实表、补充事实表外键设计;多表关联的执行过程为在主事实表中根据input扫描到所有符合条件对象及条目object|item;在查询入口表中根据input|object查询相关信息;在补充事实表中根据input|object|item查询主事实表条目的补充信息;根据主事实表条目中的fk,在维表中根据pk查询维表中相关信息。本发明专利技术提高了执行效率。

【技术实现步骤摘要】

本专利技术涉及大数据
,具体地说是。
技术介绍
针对行业大数据业务需求,面向数据密集型应用的计算框架和系统不断出现,如MapReduce编程模型,NoSQL高并发实时数据库,内存计算引擎和流式处理框架等。在这些系统中,面向海量数据的高并发实时数据库由于能够解决传统Web应用扩展性能瓶颈,应用最为广泛。 HBase就是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase是Google Bigtable的开源实现,HBase 按照 rowkey(行主键),column key (columnFamily+qualifier), timestamp (时间戳)三部分组成的三维有序存储,该三维结构加上value值组成HBase的KeyValue数据结构,支持对针对rowkey的增删改查及扫描操作。 HBase由于建立了面向rowkey全局索引,因此提高了面向大数据的检索效率,但由于HBase是通过简化数据模型来换取高性能,因此不支持SQL,二级索引、多行事务等传统关系数据库必备的功能。除此之外,由于HBase中的表是独立的,无法支持两表及多表的关联操作。然而,当前很多业务场景是按照ER概念模型和BCNF范式设计的,数据模型中存在大量的关联关系,因此多表关联操作对于很多业务场景来说至关重要。在大数据场景下,为了使HBase能充分满足业务需求,需要建立基于HBase基本操作的多表关联方法。
技术实现思路
本专利技术的技术任务是提供一种通过合理的设计多个HBase表的主键,减少表的扫描次数和执行逻辑的循环层次,实现面向海量数据的高并发、低延迟HBase的多表关联操作的。 本专利技术的技术任务是按以下方式实现的:,HBase表包括查询入口表、主事实表、补充事实表和维表;查询入口表包括输入条件(input)与主事实表中对象(object)的一对多映射信息;主事实表包括各个对象每个条目(item)的明细信息,其中包括维表的外键(fk);补充事实表包括对主事实表中每个条目(item)的补充信息,其中包括维表的外键(fk);维表包括对主事实表、补充事实表的外键关联信息;由于HBase的主键是按字典序组织的,基于范围的扫描(scan)开销要远大于直接基于关键字的查询(get)开销,并且每个scan的会引起一层循环,应该尽量减少扫描操作次数,因此基于雪花模型设计各个表的主键;以主事实表作为雪花模型的中心表和关联的起点,在主事实表的主键中包含查询入口表条件作为组成部分,即pk=input I object | item ; 查询入口表按输入条件和对象对应关系设计组合主键,即pk=input I object设计;针对主事实表的补充事实表,设计与主事实表相同的组合主键Pk=input I object|item ;针对各个维表主键,基于主事实表、补充事实表外键设计,即pk=fk ;多表关联的执行过程为在主事实表中根据input扫描到所有符合条件对象及条目object I item ;在查询入口表中根据input !object查询相关信息;在补充事实表中根据input I object | item查询主事实表条目的补充信息;根据主事实表条目中的fk,在维表中根据Pk查询维表中相关信息。 银行的明细查询业务涉及五张HBase表,包括查询入口表、主事实表、补充事实表和2张维表;查询入口表为账号表(b)包含身份证号(cust_no)和账号(acct_no)的对应关系及注册信息;主事实表(a)包含账号(acct_no)及每一笔操作的主明细信息(acct_seq),主明细信息包括操作员代码(opr_no)、涉及金额、时间;补充事实表为转账明细表(c)包含每一笔转账操作的接收方机构(op_bank_no)详细信息,是对主事实表的补充;另外还有两个维表:操作员表和机构表,操作员表(d)包含每个操作员(opr_no)的详细信息,机构表Cf)包括各个分支机构(bank_cod)的详细信息。 银行的明细查询业务涉及五张HBase表,b表示查询入口表,a表示主事实表,c表不补充事实表,2张维表中d表操作员表,f表机构表;实现上述五张HBase表的关联操作,sql关联逻辑用sql表示为: SELECT * FROM b, d, f, a LEFT OUTER JOIN c ON a.acct_no = c.acct_no AND a.acct_seq = c.acct_seq WHERE a.acct_no = b.acct_no AND b.cust_no LIKE ’ $cust_no%’ 一客户号作为参数 AND a.0pr_no = d.0pr_no AND c.0p_bank_no = f.bank_cod MIT 50 ;上述sql语句的功能就是根据身份证号查询其账号的明细信息,包括主明细信息、操作员信息、转账明细信息,返回前50条数据;按照雪花模型设计各个HBase表的主键,主事实表(a)的主键为cust_no | acct_no Iacct_seq;关联过程如下步骤:(1)、在主事实表(a)中根据cust_no扫描到所有符合条件的明细cust_no| acct_no Iacct_seq ;(2)、针对每条明细,在账号表(b)中根据CUSt_n0|aCCt_n0查询所有的注册信息;(3)、根据主事实表(a)中的操作员代码(opr_no)查询操作员表(d),获得操作员详细信息;(4)、在转账明细表(C)中查询账号的某条明细(aCCt_no|aCCt_Seq)是否为转账条目;(5)、如果是转账条目,则通过机构表(f)查询转账接收方机构(op_bank_no)详细信肩、O 本专利技术的具有以下优点:减少了HBase表的扫描次数和执行逻辑的循环层次,提高了执行效率,能在保证各个HBase表的独立性的前提下,支持面向大规模数据的高并发、低延迟的HBase多表关联操作。 【具体实施方式】 参照具体实施例对本专利技术的作以下详细地说明。 实施例1:本专利技术的,HBase表包括查询入口表、主事实表、补充事实表和维表;查询入口表包括输入条件(input)与主事实表中对象(object)的一对多映射信息;主事实表包括各个对象每个条目(item)的明细信息,其中包括维表的外键(fk);补充事实表包括对主事实表中每个条目(item)的补充信息,其中包括维表的外键(fk);维表包括对主事实表、补充事实表的外键关联信息;由于HBase的主键是按字典序组织的,基于范围的扫描(scan)开销要远大于直接基于关键字的查询(get)开销,并且每个scan的会引起一层循环,应该尽量减少扫描操作次数,因此基于雪花模型设计各个表的主键;以主事实表作为雪花模型的中心表和关联的起点,在主事实表的主键中包含查询入口表条件作为组成部分,即pk=input I object | item ;查询入口表按输入条件和对象对应关系设计组合主键,即pk=input I object设计;针对主事实表的补充事实表,设计与主事实表相同的组合主键Pk=本文档来自技高网...

【技术保护点】
一种基于雪花模型的多个HBase表关联方法,其特征在于HBase表包括查询入口表、主事实表、补充事实表和维表;查询入口表包括输入条件与主事实表中对象的一对多映射信息;主事实表包括各个对象每个条目的明细信息,其中包括维表的外键;补充事实表包括对主事实表中每个条目的补充信息,其中包括维表的外键;维表包括对主事实表、补充事实表的外键关联信息;以主事实表作为雪花模型的中心表和关联的起点,在主事实表的主键中包含查询入口表条件作为组成部分,即pk=input|object|item;查询入口表按输入条件和对象对应关系设计组合主键,即pk=input|object设计;针对主事实表的补充事实表,设计与主事实表相同的组合主键pk= input|object|item;针对各个维表主键,基于主事实表、补充事实表外键设计,即pk=fk;多表关联的执行过程为在主事实表中根据input扫描到所有符合条件对象及条目object|item;在查询入口表中根据input|object查询相关信息;在补充事实表中根据input|object|item查询主事实表条目的补充信息;根据主事实表条目中的fk,在维表中根据pk查询维表中相关信息。...

【技术特征摘要】
1.一种基于雪花模型的多个HBase表关联方法,其特征在于HBase表包括查询入口表、主事实表、补充事实表和维表;查询入口表包括输入条件与主事实表中对象的一对多映射信息;主事实表包括各个对象每个条目的明细信息,其中包括维表的外键;补充事实表包括对主事实表中每个条目的补充信息,其中包括维表的外键;维表包括对主事实表、补充事实表的外键关联信息; 以主事实表作为雪花模型的中心表和关联的起点,在主事实表的主键中包含查询入口表条件作为组成部分,即pk=input | object | item ; 查询入口表按输入条件和对象对应关系设计组合主键,即pk=input | object设计;针对主事实表的补充事实表,设计与主事实表相同的组合主键pk=input I object|item ; 针对各个维表主键,基于主事实表、补充事实表外键设计,即pk=fk ; 多表关联的执行过程为在主事实表中根据input扫描到所有符合条件对象及条目object | item ;在查询入口表中根据input | object查询相关信息;在补充事实表中根据input | object | item查询主事实表条目的补充信息;根据主事实表条目中的fk,在维表中根据pk查询维表中相关信息。2.根据权利要求1所述的一种基于雪花模型的多个HBase表关联方法,其特征在于银行的明细查询业...

【专利技术属性】
技术研发人员:亓开元辛国茂赵仁明房体盈
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:山东;37

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

1