只读表的连接方法和只读表的连接系统技术方案

技术编号:10515534 阅读:109 留言:0更新日期:2014-10-08 15:06
本发明专利技术提供了一种只读表的连接方法和连接系统,包括:分割步骤,将具有多个属性的海量数据表纵向分割成多个数据表,其中每个属性对应所述数据表中的一列;存储步骤,将每个所述数据表中的元组数据按照指定格式的数据页进行存储;数据匹配步骤,当接收到对所述海量数据表进行读取的指令时,依次读取每个所述数据表对应的数据页,在读取当前数据页中的任一元组数据时,从与所述当前数据页相邻的下一个数据页中提取出与所述任一元组数据具有相同偏移量的目标元组数据,并将所述任一元组数据和所述目标元组数据进行匹配输出。通过本发明专利技术的技术方案,可以在节约只读表的列数的同时提高表装载数据的效率,减少内存和CPU资源占用,提高存储效率。

【技术实现步骤摘要】

本专利技术涉及数据
,具体而言,涉及一种只读表的连接方法和一种只读表的连接系统。
技术介绍
当今,关系数据库的主流应用已经慢慢从OLTP应用转向OLAP的应用,例如决策支持系统(Decision Support System,简称DSS)。读数据的地位在不断上升,以读为主的关系数据库的应用场景在不断地增多。另一方面,很多数据在经过ETL(Extraction Transformation Loading,提取、转换和加载)操作放在数据仓库(主要是关系数据库)之后,几乎不发生变化。在生物学领域,一个研究对象可以有很多的属性。例如一个物种的单核苷酸多态性(single nucleotide polymorphism)可以有成千上万个属性(对应数据库中的列),远远超出了传统数据库的一个表可以容纳的列的数目,这些属性常常会被分割成多个表,这些表的连接效率成为读取研究对象所有属性的关键。ANSI标准的SQL给出了五种JOIN方式:内连接(Inner),全外连接(Full Outer),左外连接(Left Outer),右外连接(Right Outer)和交叉连接(Cross)。这些连接都是基于两点:1、笛卡尔积连接;2、磁盘数据随机存取。传统的数据表连接方式主要是基于笛卡尔积连接,如图1所示,笛卡尔积连接是驱动表的每一条数据和匹配表中每一条数据依次匹配输出。不同的连接会对输出数据有不同的过滤。有过滤条件存在时候,可以采用了诸如索引机制提升性能的策略,使得驱动表的一条数据可以跳过多个匹配表数据来提升性能。但是当数据量大的时候,连接操作仍然是查询的一个比较大的性能瓶颈,传统数据库中表的数据是不能保证顺序的,一般情况下,被更改的数据或者插入的数据都会被放在最后。一个只读表的列数过多,超过传统关系型数据库所能容纳的列数的时候,我们只能使用多个表装载数据,在读取所有数据时候需要使用连接技术,因此,现有的关系数据库表连接技术的效率低下,已经无法满足使用需求。因此,如何在节约只读表的列数的同时提高表装载数据的效率,成为目前亟待解决的问题。
技术实现思路
本专利技术正是基于上述问题,提出了一种新的技术方案,可以在节约只读表的列数的同时提高表装载数据的效率。有鉴于此,本专利技术提出了一种只读表的连接方法,包括:分割步骤,将具有多个属性的海量数据表纵向分割成多个数据表,其中每个属性对应所述数据表中的一列;存储步骤,将每个所述数据表中的元组数据按照指定格式的数据页进行存储;数据匹配步骤,当接收到对所述海量数据表进行读取的指令时,依次读取每个所述数据表对应的数据页,在读取当前数据页中的任一元组数据时,从与所述当前数据页相邻的下一个数据页中提取出与所述任一元组数据具有相同偏移量的目标元组数据,并将所述任一元组数据和所述目标元组数据进行匹配输出。在该技术方案中,通过将具有多个属性的海量数据表纵向分割成多个数据表,并将每个所述数据表中的元组数据按照指定格式的数据页进行存储,形成了一种新的数据库连接技术——顺序连接。该连接技术可以不再基于笛卡尔连接技术,并且只面向于只读表。通过顺序连接,可以避免驱动表一条数据对匹配表所有数据的扫描匹配,而是对驱动表的指定位置进行数据顺序输出,从而提高数据提取速度。另外,对于一些针对少数列的聚合操作可以减少内存消耗,提高计算速度。在上述技术方案中,优选地,所述指定格式的数据页包括页头数据,数据项指针,元组数据和空闲空间。在上述技术方案中,优选地,所述数据项指针和所述元组数据一一对应,所述页头数据中包含所述空闲空间的起止位置,所述数据项指针的起止位置和所述空闲空间的大小,所述数据项指针中包含对应的元组数据的位置和大小,所述元组数据从所述数据页的页尾依次进行分配,所述元组数据对应的数据项指针从所述数据页的页头依次进行分配。在该技术方案中,顺序连接可以用于多种格式的数据页,拓宽了使用范围,且数据项指针和元组数据一一对应,提高了数据查询的效率。在上述技术方案中,优选地,所述数据匹配步骤具体包括:确定当前数据表,读取所述当前数据表对应的所述当前数据页,在读取所述当前数据页中任一元组数据时,获取所述任一元组数据的偏移量;根据所述任一元组数据的偏移量确定所述任一元组数据的初始地址和元组长度,以读取出所述任一元组数据;确定与所述当前数据页相邻的下一个数据页,并根据所述任一元组数据的偏移量确定所述下一个数据页的目标偏移量;根据所述下一个数据页的目标偏移量确定所述目标元组数据的初始地址和元组长度,以提取出所述目标元组数据。在该技术方案中,根据任一元组数据的偏移量确认其初始地址和元组长度,并根据相邻数据页确定相邻的元组数据的偏移量,将驱动表和匹配表中的元组顺序连接,顺序连接使得驱动表的每一条元组不用与匹配表的所有元组进行匹配连接,而与特定元组匹配,大大降低了连接的时间消耗,提高了数据查询的效率。在上述技术方案中,优选地,还包括:判断所述当前数据页的偏移量是否大于所述当前数据页的元组个数,在判断结果为是时,重新确定所述当前数据页。在该技术方案中,可以根据偏移量来重新确定当前页,以使偏移量与当前数据页的元组个数相匹配,这样,通过顺序连接技术将数据表的纵向分割,克服了单个表的列个数过多超出传统数据库表列个数限制的问题。根据本专利技术第二方面的实施例,提出了一种只读表的连接系统,包括:分割单元,用于将具有多个属性的海量数据表纵向分割成多个数据表,其中每个属性对应所述数据表中的一列;存储单元,用于将每个所述数据表中的元组数据按照指定格式的数据页进行存储;数据匹配单元,当接收到对所述海量数据表进行读取的指令时,依次读取每个所述数据表对应的数据页,在读取当前数据页中的任一元组数据时,从与所述当前数据页相邻的下一个数据页中提取出与所述任一元组数据具有相同偏移量的目标元组数据,并将所述任一元组数据和所述目标元组数据进行匹配输出。在该技术方案中,通过将具有多个属性的海量数据表纵向分割成多个数据表,并将每个所述数据表中的元组数据按照指定格式的数据页进行存储,形成了一种新的数据库连接技术——顺序连接。该连接技术可以不再基于笛卡尔连接技术,并且只面向于只读表。通过顺序连接,可以避免驱动表一条数据对匹配表所有数据的扫描匹配,而是对驱动表的指定位置进行数据顺序输出,从而提高数据提取速度。另外,对于一些针对少数列的聚本文档来自技高网
...

【技术保护点】
一种只读表的连接方法,其特征在于,包括:分割步骤,将具有多个属性的海量数据表纵向分割成多个数据表,其中每个属性对应所述数据表中的一列;存储步骤,将每个所述数据表中的元组数据按照指定格式的数据页进行存储;数据匹配步骤,当接收到对所述海量数据表进行读取的指令时,依次读取每个所述数据表对应的数据页,在读取当前数据页中的任一元组数据时,从与所述当前数据页相邻的下一个数据页中提取出与所述任一元组数据具有相同偏移量的目标元组数据,并将所述任一元组数据和所述目标元组数据进行匹配输出。

【技术特征摘要】
1.一种只读表的连接方法,其特征在于,包括:
分割步骤,将具有多个属性的海量数据表纵向分割成多个数据表,其
中每个属性对应所述数据表中的一列;
存储步骤,将每个所述数据表中的元组数据按照指定格式的数据页进
行存储;
数据匹配步骤,当接收到对所述海量数据表进行读取的指令时,依次
读取每个所述数据表对应的数据页,在读取当前数据页中的任一元组数据
时,从与所述当前数据页相邻的下一个数据页中提取出与所述任一元组数
据具有相同偏移量的目标元组数据,并将所述任一元组数据和所述目标元
组数据进行匹配输出。
2.根据权利要求1所述的只读表的连接方法,其特征在于,所述指
定格式的数据页包括页头数据,数据项指针,元组数据和空闲空间。
3.根据权利要求2所述的只读表的连接方法,其特征在于,所述数
据项指针和所述元组数据一一对应,所述页头数据中包含所述空闲空间的
起止位置,所述数据项指针的起止位置和所述空闲空间的大小,所述数据
项指针中包含对应的元组数据的位置和大小,所述元组数据从所述数据页
的页尾依次进行分配,所述元组数据对应的数据项指针从所述数据页的页
头依次进行分配。
4.根据权利要求1至3中任一项所述的只读表的连接方法,其特征
在于,所述数据匹配步骤具体包括:
确定当前数据表,读取所述当前数据表对应的所述当前数据页,在读
取所述当前数据页中任一元组数据时,获取所述任一元组数据的偏移量;
根据所述任一元组数据的偏移量确定所述任一元组数据的初始地址和
元组长度,以读取出所述任一元组数据;
确定与所述当前数据页相邻的下一个数据页,并根据所述任一元组数
据的偏移量确定所述下一个数据页的目标偏移量;
根据所述下一个数据页的目标偏移量确定所述目标元组数据的初始地

\t址和元组长度,以提取出所述目标元组数据。
5.根据权利要求4所述的只读表的连接方法,其特征在于,还包
括:
判断所述当前数据页的偏移量是否大于所述当前数据页的元组个数,
在判断结果为是时,重新确定所述当前数据页。

【专利技术属性】
技术研发人员:宋晓眉刘永伟
申请(专利权)人:用友软件股份有限公司
类型:发明
国别省市:北京;11

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

1