[发明专利]一种事实数据集和维数据集全在内存中的指针计算多对一join的方法在审
申请号: | 201710777222.8 | 申请日: | 2017-09-01 |
公开(公告)号: | CN107562876A | 公开(公告)日: | 2018-01-09 |
发明(设计)人: | 蒋步星 | 申请(专利权)人: | 北京润乾信息系统技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 事实 数据 内存 中的 指针 计算 join 方法 | ||
技术领域
本发明涉及计算多对一join,更具体地来说,特别涉及一种事实数据集和维数据集全在内存中的指针计算多对一join的方法。
背景技术
有时为了得到完整的结果,我们需要从两个或更多的数据集中获取结果。我们就需要执行join计算。
多对一join的关系是两个数据集之间的一种关系,该关系中第一个数据集中的一个或多个行可以与第二个数据集中的单个行相关,但第一个数据集中的一个行只可以与第二个数据集中的一个行相关。
数据集可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的键值都是唯一的。在数据集中,每个主键的键值都是唯一的。这样做的目的是在不重复每个数据集中的所有数据的情况下,把数据集间的数据交叉捆绑在一起。如果关联键在一个数据集中是主键,那么这个关联键被称为另一个数据集中的外键。由此可见,外键表示了两个数据集之间的相关联系。比如多对一join关系,多的那边在数据集中是外键,一的那边在数据集中是主键。
hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的键值(又叫做预映射,pre-image),通过散列算法,变换成固定长度的hash值。这种转换是一种压缩映射,也就是,hash值的空间通常远小于键值的空间,不同的键值可能会散列成相同的hash值,所以不可能从hash值来唯一的确定键值。简单的说就是一种将任意长度的键值压缩到某一固定长度的hash值的函数。
目前现有的多对一join计算技术有以下两种:一种是在两个相关数据集上根据关键字进行硬遍历,计算复杂度为n(多对应的键值)*m(一对应的键值),缺点是性能太差;另一种是为了减少硬遍历的时间,发明了hash方法,计算复杂度为n(1)*m(1)+n(2)*m(2)+……+n(k)*m(k)(n、m为记录数,1、2……k是hash值,n(i)是数据集n中hash值等于i的记录个数,m(i)是数据集m中hash值等于i的记录个数,在hash值相同的范围内进行遍历。),不管运气好坏绝大多数情况下远远小于硬遍历的复杂度m*n。但是hash函数也有一些缺点,这个缺点是hash表不可避免的,即冲突现象:对不同的关键字可能得到同一hash地址。
针对上述方法的问题本发明提供了一种事实数据集和维数据集全在内存中的指针计算多对一join的方法。
发明内容
为了克服前述问题,本发明的目的在于提供一种事实数据集和维数据集全在内存中的指针计算多对一join的方法。
一种事实数据集和维数据集全在内存中的指针计算多对一join的方法,使用步骤为:
1.在机器内存足够大的情况下(此发明的必要条件),往内存中加载两个数据集,事实数据集A和维数据集B,内存必须比事实数据集A和维数据集B的数据量所占的空间大;
2.他们是多对一join的映射关系,事实数据集A中的外键对应维数据集B中的主键;
3.然后进行准备工作,把事实数据集A中的外键键值替换成所对应维数据集B中主键键值所在记录的内存地址,替换所需要的时间可以用hash方法算出;(这是一次性准备工作,以后再计算这多对一join时就不需要做这步准备了。此步骤所需要的成本和以前解决多对一join用hash方法解决的成本一样。)
4.以后再从事实数据集A中外键键值找对应维数据集B中主键键值所在的记录,就可以根据内存地址直接找到维数据集B中对应的记录了,就直接可以引用这条记录了。(此发明优点是省略了比较动作,原来技术的比较动作是根据事实数据集A中的外键键值关键字找维数据集B中对应的主键键值关键字,从而确定关键字所在的记录位置。现在只需要做一次准备工作就可以满足以后需要计算多对一join的情况了,原来技术是每次计算多对一join都要做一次hash计算。)
如上所述的一种事实数据集和维数据集全在内存中的指针计算多对一join的方法,其特征在于,在机器内存足够大的情况下才能实施本发明,这是必要条件。
如上所述的一种事实数据集和维数据集全在内存中的指针计算多对一join的方法,其特征在于,内存必须比事实数据集和维数据集的数据量所占的空间大。
如上所述的一种事实数据集和维数据集全在内存中的指针计算多对一join的方法,其特征在于,两个数据集必须是多对一join的映射关系。
如上所述的一种事实数据集和维数据集全在内存中的指针计算多对一join的方法,其特征在于,事实数据集A中的外键对应维数据集B中的主键。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京润乾信息系统技术有限公司,未经北京润乾信息系统技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710777222.8/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置