[发明专利]一种事实数据集和维数据集全在内存中的指针计算多对一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中的主键。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京润乾信息系统技术有限公司,未经北京润乾信息系统技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710777222.8/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top