CN104090954B - 只读表的连接方法和只读表的连接*** - Google Patents

只读表的连接方法和只读表的连接*** Download PDF

Info

Publication number
CN104090954B
CN104090954B CN201410318952.8A CN201410318952A CN104090954B CN 104090954 B CN104090954 B CN 104090954B CN 201410318952 A CN201410318952 A CN 201410318952A CN 104090954 B CN104090954 B CN 104090954B
Authority
CN
China
Prior art keywords
data
tuple
page
current
offset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410318952.8A
Other languages
English (en)
Other versions
CN104090954A (zh
Inventor
宋晓眉
刘永伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yonyou Network Technology Co Ltd
Original Assignee
Yonyou Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yonyou Network Technology Co Ltd filed Critical Yonyou Network Technology Co Ltd
Priority to CN201410318952.8A priority Critical patent/CN104090954B/zh
Publication of CN104090954A publication Critical patent/CN104090954A/zh
Application granted granted Critical
Publication of CN104090954B publication Critical patent/CN104090954B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

只读表的连接方法和只读表的连接***
技术领域
本发明涉及数据技术领域,具体而言,涉及一种只读表的连接方法和一种只读表的连接***。
背景技术
当今,关系数据库的主流应用已经慢慢从OLTP应用转向OLAP的应用,例如决策支持***(Decision Support System,简称DSS)。读数据的地位在不断上升,以读为主的关系数据库的应用场景在不断地增多。另一方面,很多数据在经过ETL(ExtractionTransformation Loading,提取、转换和加载)操作放在数据仓库(主要是关系数据库)之后,几乎不发生变化。
在生物学领域,一个研究对象可以有很多的属性。例如一个物种的单核苷酸多态性(single nucleotide polymorphism)可以有成千上万个属性(对应数据库中的列),远远超出了传统数据库的一个表可以容纳的列的数目,这些属性常常会被分割成多个表,这些表的连接效率成为读取研究对象所有属性的关键。
ANSI标准的SQL给出了五种JOIN方式:内连接(Inner),全外连接(Full Outer),左外连接(Left Outer),右外连接(Right Outer)和交叉连接(Cross)。这些连接都是基于两点:1、笛卡尔积连接;2、磁盘数据随机存取。
传统的数据表连接方式主要是基于笛卡尔积连接,如图1所示,笛卡尔积连接是驱动表的每一条数据和匹配表中每一条数据依次匹配输出。不同的连接会对输出数据有不同的过滤。有过滤条件存在时候,可以采用了诸如索引机制提升性能的策略,使得驱动表的一条数据可以跳过多个匹配表数据来提升性能。但是当数据量大的时候,连接操作仍然是查询的一个比较大的性能瓶颈,传统数据库中表的数据是不能保证顺序的,一般情况下,被更改的数据或者***的数据都会被放在最后。
一个只读表的列数过多,超过传统关系型数据库所能容纳的列数的时候,我们只能使用多个表装载数据,在读取所有数据时候需要使用连接技术,因此,现有的关系数据库表连接技术的效率低下,已经无法满足使用需求。
因此,如何在节约只读表的列数的同时提高表装载数据的效率,成为目前亟待解决的问题。
发明内容
本发明正是基于上述问题,提出了一种新的技术方案,可以在节约只读表的列数的同时提高表装载数据的效率。
有鉴于此,本发明提出了一种只读表的连接方法,包括:分割步骤,将具有多个属性的海量数据表纵向分割成多个数据表,其中每个属性对应所述数据表中的一列;存储步骤,将每个所述数据表中的元组数据按照指定格式的数据页进行存储;数据匹配步骤,当接收到对所述海量数据表进行读取的指令时,依次读取每个所述数据表对应的数据页,在读取当前数据页中的任一元组数据时,从与所述当前数据页相邻的下一个数据页中提取出与所述任一元组数据具有相同偏移量的目标元组数据,并将所述任一元组数据和所述目标元组数据进行匹配输出。
在该技术方案中,通过将具有多个属性的海量数据表纵向分割成多个数据表,并将每个所述数据表中的元组数据按照指定格式的数据页进行存储,形成了一种新的数据库连接技术——顺序连接。该连接技术可以不再基于笛卡尔连接技术,并且只面向于只读表。通过顺序连接,可以避免驱动表一条数据对匹配表所有数据的扫描匹配,而是对驱动表的指定位置进行数据顺序输出,从而提高数据提取速度。另外,对于一些针对少数列的聚合操作可以减少内存消耗,提高计算速度。
在上述技术方案中,优选地,所述指定格式的数据页包括页头数据,数据项指针,元组数据和空闲空间。
在上述技术方案中,优选地,所述数据项指针和所述元组数据一一对应,所述页头数据中包含所述空闲空间的起止位置,所述数据项指针的起止位置和所述空闲空间的大小,所述数据项指针中包含对应的元组数据的位置和大小,所述元组数据从所述数据页的页尾依次进行分配,所述元组数据对应的数据项指针从所述数据页的页头依次进行分配。
在该技术方案中,顺序连接可以用于多种格式的数据页,拓宽了使用范围,且数据项指针和元组数据一一对应,提高了数据查询的效率。
在上述技术方案中,优选地,所述数据匹配步骤具体包括:确定当前数据表,读取所述当前数据表对应的所述当前数据页,在读取所述当前数据页中任一元组数据时,获取所述任一元组数据的偏移量;根据所述任一元组数据的偏移量确定所述任一元组数据的初始地址和元组长度,以读取出所述任一元组数据;确定与所述当前数据页相邻的下一个数据页,并根据所述任一元组数据的偏移量确定所述下一个数据页的目标偏移量;根据所述下一个数据页的目标偏移量确定所述目标元组数据的初始地址和元组长度,以提取出所述目标元组数据。
在该技术方案中,根据任一元组数据的偏移量确认其初始地址和元组长度,并根据相邻数据页确定相邻的元组数据的偏移量,将驱动表和匹配表中的元组顺序连接,顺序连接使得驱动表的每一条元组不用与匹配表的所有元组进行匹配连接,而与特定元组匹配,大大降低了连接的时间消耗,提高了数据查询的效率。
在上述技术方案中,优选地,还包括:判断所述当前数据页的偏移量是否大于所述当前数据页的元组个数,在判断结果为是时,重新确定所述当前数据页。
在该技术方案中,可以根据偏移量来重新确定当前页,以使偏移量与当前数据页的元组个数相匹配,这样,通过顺序连接技术将数据表的纵向分割,克服了单个表的列个数过多超出传统数据库表列个数限制的问题。
根据本发明第二方面的实施例,提出了一种只读表的连接***,包括:分割单元,用于将具有多个属性的海量数据表纵向分割成多个数据表,其中每个属性对应所述数据表中的一列;存储单元,用于将每个所述数据表中的元组数据按照指定格式的数据页进行存储;数据匹配单元,当接收到对所述海量数据表进行读取的指令时,依次读取每个所述数据表对应的数据页,在读取当前数据页中的任一元组数据时,从与所述当前数据页相邻的下一个数据页中提取出与所述任一元组数据具有相同偏移量的目标元组数据,并将所述任一元组数据和所述目标元组数据进行匹配输出。
在该技术方案中,通过将具有多个属性的海量数据表纵向分割成多个数据表,并将每个所述数据表中的元组数据按照指定格式的数据页进行存储,形成了一种新的数据库连接技术——顺序连接。该连接技术可以不再基于笛卡尔连接技术,并且只面向于只读表。通过顺序连接,可以避免驱动表一条数据对匹配表所有数据的扫描匹配,而是对驱动表的指定位置进行数据顺序输出,从而提高数据提取速度。另外,对于一些针对少数列的聚合操作可以减少内存消耗,提高计算速度。
在上述技术方案中,优选地,所述指定格式的数据页包括页头数据,数据项指针,元组数据和空闲空间。
在上述技术方案中,优选地,所述数据项指针和所述元组数据一一对应,所述页头数据中包含所述空闲空间的起止位置,所述数据项指针的起止位置和所述空闲空间的大小,所述数据项指针中包含对应的元组数据的位置和大小,所述元组数据从所述数据页的页尾依次进行分配,所述元组数据对应的数据项指针从所述数据页的页头依次进行分配。
在该技术方案中,顺序连接可以用于多种格式的数据页,拓宽了使用范围,且数据项指针和元组数据一一对应,提高了数据查询的效率。
在上述技术方案中,优选地,所述数据匹配单元具体包括:确定当前数据表,读取所述当前数据表对应的所述当前数据页,在读取所述当前数据页中任一元组数据时,获取所述任一元组数据的偏移量;根据所述任一元组数据的偏移量确定所述任一元组数据的初始地址和元组长度,以读取出所述任一元组数据;确定与所述当前数据页相邻的下一个数据页,并根据所述任一元组数据的偏移量确定所述下一个数据页的目标偏移量;根据所述下一个数据页的目标偏移量确定所述目标元组数据的初始地址和元组长度,以提取出所述目标元组数据。
在该技术方案中,根据任一元组数据的偏移量确认其初始地址和元组长度,并根据相邻数据页确定相邻的元组数据的偏移量,将驱动表和匹配表中的元组顺序连接,顺序连接使得驱动表的每一条元组不用与匹配表的所有元组进行匹配连接,而与特定元组匹配,大大降低了连接的时间消耗,提高了数据查询的效率。
在上述技术方案中,优选地,还包括:判断所述当前数据页的偏移量是否大于所述当前数据页的元组个数,在判断结果为是时,重新确定所述当前数据页。
在该技术方案中,可以根据偏移量来重新确定当前页,以使偏移量与当前数据页的元组个数相匹配,这样,通过顺序连接技术将数据表的纵向分割,克服了单个表的列个数过多超出传统数据库表列个数限制的问题。
通过以上技术方案,可以在数据只读的前提下,将驱动表和匹配表中的元组顺序连接。首先,顺序连接技术使得驱动表的每一条元组不用与匹配表的所有元组进行匹配连接,而与特定元组匹配,大大降低了连接的时间消耗,提高了数据查询的效率。其次,顺序连接技术支持数据表的纵向分割,克服了单个表的列个数过多超出传统数据库表列个数限制的问题。最后顺序连接技术可以保证常用的字段单独成表,在使用诸如聚合运算等复杂计算时候,只将部分数据提取到内存参与计算,可以将减少内存和cpu资源的使用。
附图说明
图1示出了现有技术中笛卡尔连接的示意图;
图2示出了根据本发明的实施例的只读表的连接方法的流程图;
图3示出了根据本发明的实施例的只读表的连接***的框图;
图4示出了根据本发明的实施例的只读表的连接方法的顺序连接的示意图;
图5示出了根据本发明的实施例的只读表的连接方法的逻辑页结构示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图2示出了根据本发明的实施例的只读表的连接方法的流程图。
如图2所示,根据本发明的实施例的只读表的连接方法,包括以下步骤:
步骤202,将具有多个属性的海量数据表纵向分割成多个数据表,其中每个属性对应数据表中的一列。
步骤204,将每个数据表中的元组数据按照指定格式的数据页进行存储。
步骤206,当接收到对海量数据表进行读取的指令时,依次读取每个数据表对应的数据页,在读取当前数据页中的任一元组数据时,从与当前数据页相邻的下一个数据页中提取出与任一元组数据具有相同偏移量的目标元组数据,并将任一元组数据和目标元组数据进行匹配输出。
在该技术方案中,通过将具有多个属性的海量数据表纵向分割成多个数据表,并将每个数据表中的元组数据按照指定格式的数据页进行存储,形成了一种新的数据库连接技术——顺序连接。该连接技术可以不再基于笛卡尔连接技术,并且只面向于只读表。通过顺序连接,可以避免驱动表一条数据对匹配表所有数据的扫描匹配,而是对驱动表的指定位置进行数据顺序输出,从而提高数据提取速度。另外,对于一些针对少数列的聚合操作可以减少内存消耗,提高计算速度。
在上述技术方案中,优选地,指定格式的数据页包括页头数据,数据项指针,元组数据和空闲空间。
在上述技术方案中,优选地,数据项指针和元组数据一一对应,页头数据中包含空闲空间的起止位置,数据项指针的起止位置和空闲空间的大小,数据项指针中包含对应的元组数据的位置和大小,元组数据从数据页的页尾依次进行分配,元组数据对应的数据项指针从数据页的页头依次进行分配。
在该技术方案中,顺序连接可以用于多种格式的数据页,拓宽了使用范围,且数据项指针和元组数据一一对应,提高了数据查询的效率。
在上述技术方案中,优选地,数据匹配步骤具体包括:确定当前数据表,读取当前数据表对应的当前数据页,在读取当前数据页中任一元组数据时,获取任一元组数据的偏移量;根据任一元组数据的偏移量确定任一元组数据的初始地址和元组长度,以读取出任一元组数据;确定与当前数据页相邻的下一个数据页,并根据任一元组数据的偏移量确定下一个数据页的目标偏移量;根据下一个数据页的目标偏移量确定目标元组数据的初始地址和元组长度,以提取出目标元组数据。
在该技术方案中,根据任一元组数据的偏移量确认其初始地址和元组长度,并根据相邻数据页确定相邻的元组数据的偏移量,将驱动表和匹配表中的元组顺序连接,顺序连接使得驱动表的每一条元组不用与匹配表的所有元组进行匹配连接,而与特定元组匹配,大大降低了连接的时间消耗,提高了数据查询的效率。
在上述技术方案中,优选地,还包括:判断当前数据页的偏移量是否大于当前数据页的元组个数,在判断结果为是时,重新确定当前数据页。
在该技术方案中,可以根据偏移量来重新确定当前页,以使偏移量与当前数据页的元组个数相匹配,这样,通过顺序连接技术将数据表的纵向分割,克服了单个表的列个数过多超出传统数据库表列个数限制的问题。
图3示出了根据本发明的实施例的只读表的连接***的框图。
如图3所示,根据本发明的实施例的只读表的连接***300,包括:分割单元202,用于将具有多个属性的海量数据表纵向分割成多个数据表,其中每个属性对应数据表中的一列;存储单元204,用于将每个数据表中的元组数据按照指定格式的数据页进行存储;数据匹配单元206,当接收到对海量数据表进行读取的指令时,依次读取每个数据表对应的数据页,在读取当前数据页中的任一元组数据时,从与当前数据页相邻的下一个数据页中提取出与任一元组数据具有相同偏移量的目标元组数据,并将任一元组数据和目标元组数据进行匹配输出。
在该技术方案中,通过将具有多个属性的海量数据表纵向分割成多个数据表,并将每个数据表中的元组数据按照指定格式的数据页进行存储,形成了一种新的数据库连接技术——顺序连接。该连接技术可以不再基于笛卡尔连接技术,并且只面向于只读表。通过顺序连接,可以避免驱动表一条数据对匹配表所有数据的扫描匹配,而是对驱动表的指定位置进行数据顺序输出,从而提高数据提取速度。另外,对于一些针对少数列的聚合操作可以减少内存消耗,提高计算速度。
在上述技术方案中,优选地,指定格式的数据页包括页头数据,数据项指针,元组数据和空闲空间。
在上述技术方案中,优选地,数据项指针和元组数据一一对应,页头数据中包含空闲空间的起止位置,数据项指针的起止位置和空闲空间的大小,数据项指针中包含对应的元组数据的位置和大小,元组数据从数据页的页尾依次进行分配,元组数据对应的数据项指针从数据页的页头依次进行分配。
在该技术方案中,顺序连接可以用于多种格式的数据页,拓宽了使用范围,且数据项指针和元组数据一一对应,提高了数据查询的效率。
在上述技术方案中,优选地,数据匹配单元具体包括:确定当前数据表,读取当前数据表对应的当前数据页,在读取当前数据页中任一元组数据时,获取任一元组数据的偏移量;根据任一元组数据的偏移量确定任一元组数据的初始地址和元组长度,以读取出任一元组数据;确定与当前数据页相邻的下一个数据页,并根据任一元组数据的偏移量确定下一个数据页的目标偏移量;根据下一个数据页的目标偏移量确定目标元组数据的初始地址和元组长度,以提取出目标元组数据。
在该技术方案中,根据任一元组数据的偏移量确认其初始地址和元组长度,并根据相邻数据页确定相邻的元组数据的偏移量,将驱动表和匹配表中的元组顺序连接,顺序连接使得驱动表的每一条元组不用与匹配表的所有元组进行匹配连接,而与特定元组匹配,大大降低了连接的时间消耗,提高了数据查询的效率。
在上述技术方案中,优选地,还包括:判断当前数据页的偏移量是否大于当前数据页的元组个数,在判断结果为是时,重新确定当前数据页。
在该技术方案中,可以根据偏移量来重新确定当前页,以使偏移量与当前数据页的元组个数相匹配,这样,通过顺序连接技术将数据表的纵向分割,克服了单个表的列个数过多超出传统数据库表列个数限制的问题。
图4示出了根据本发明的实施例的只读表的连接方法的顺序连接的示意图。
如图4所示,驱动表outer table中的元组数据tuple1、tuple2、tuple3与匹配表inner table中的元组数据相同偏移量的元组数据tuple1、tuple2、tuple3一一对应。
本发明提出顺序连接方式,不再以笛卡尔连接为基础。在保证元组数据没有删除和修改并且增加的元组数据是逐条***的情况下,以驱动表的一条元组,与匹配表的相同偏移量的元组进行匹配。
图5示出了根据本发明的实施例的只读表的连接方法的逻辑页结构示意图。
如图5所示,PageHeaderData是页头数据,包含该文件块的一般信息,例如空闲空间的起止位置、项指针的起止位置、剩余空间大小等;Linp是描述Tuple的项,主要包括元组的位置、大小等;Freespace是指未分配的空间(空闲空间),新***的元组从队尾部开始顺序分配空间;而对应的Linp项是从队首开始分配。Tuple是具体的元组数据。
数据表的数据在磁盘中的物理存储是随机的,但是其逻辑结构却是可以控制的,在上述技术方案中,使用逻辑页来组织磁盘数据。在保证逻辑页***数据之后不再进行删除和修改操作前提下,对驱动表的元组提取顺序在头文件之后的某个元组数据,更新偏移量参数(初始为0),提取匹配表的相同偏移量的元组数据并匹配和输出。具体的操作过程如下:
步骤一:定义且初始化全局变量OuterOffset和InnerOffset值分别为0,分别用来标志驱动表和匹配表的当前逻辑文件块中元组的id偏移量;定义且初始化全局变量OuterTupNum和InnerTupNum值为0,分别用来标志驱动表和匹配表当前页含有Tuple的个数;如果驱动表是首次读取逻辑文件块,转向步骤二;否则转向步骤三。
步骤二:通过驱动表的数据元信息获取第一个逻辑文件块作为驱动表的当前数据页,将OuterOffset值初始化为0,用OuterTupNum从PageHeaderData结构中获取元组个数,进入步骤四。
步骤三:顺序扫描驱动表的逻辑文件块,获取驱动表的当前页;通过上一个表逻辑文件块的PageHeaderData信息获取下一个逻辑文件块作为驱动表的当前数据页;将OuterOffset值初始化为0,OuterTupNum从PageHeaderData结构中获取元组个数,进入步骤四。
步骤四:判断OuterOffset是否大于OuterTupNum,当判断结果为是时,返回步骤三,否则,通过驱动表当前数据页的PageHeaderData结构获取ID偏移量为OuterOffset的Linp结构OuterLinp;如果获取结果为空,则标志查询结束,结束进程;如果获取成功,OuterOffset自加1,进入步骤五。
步骤五:驱动表根据OuterLinp结构获取Tuple的初始地址和元组长度,读取Tuple的数据,如果是首次读取匹配表的逻辑文件块,进入步骤六,否则进入步骤七。
步骤六:通过匹配表的元数据信息获取第一个逻辑文件块作为驱动表的当前数据页,将IuterOffset值初始化为0,InnerTupNum从PageHeaderData结构中获取元组个数,进入步骤八。
步骤七:顺序扫描匹配表逻辑文件块,获取匹配表当前页,并通过上一个匹配表逻辑文件块的PageHeaderData信息获取下一个逻辑文件块作为驱动表的当前数据页,将InnerOffset值初始化为0,InnerTupNum从PageHeaderData结构中获取元组个数,进入步骤八。
步骤八:判断InnerOffset是否大于InnerTupNum,当判断结果为是时,返回步骤七,否则,通过当前数据页的PageHeaderData获取ID偏移量为InnerOffset的Linp结构InnerLinp。InnerOffset自加1。
步骤九:匹配表根据InnerLinp获取Tuple的初始地址和元组长度。读取Tuple的数据,连接驱动表提取的Tuple数据输出后,返回步骤三。
以上结合附图详细说明了本发明的技术方案。通过以上技术方案,可以在数据只读的前提下,将驱动表和匹配表中的元组顺序连接。首先,顺序连接技术使得驱动表的每一条元组不用与匹配表的所有元组进行匹配连接,而与特定元组匹配,大大降低了连接的时间消耗,提高了数据查询的效率。其次,顺序连接技术支持数据表的纵向分割,克服了单个表的列个数过多超出传统数据库表列个数限制的问题。最后顺序连接技术可以保证常用的字段单独成表,在使用诸如聚合运算等复杂计算时候,只将部分数据提取到内存参与计算,可以将减少内存和cpu资源的使用。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种只读表的连接方法,其特征在于,包括:
分割步骤,将具有多个属性的海量数据表纵向分割成多个数据表,其中每个属性对应所述数据表中的一列;
存储步骤,将每个所述数据表中的元组数据按照指定格式的数据页进行存储;
数据匹配步骤,当接收到对所述海量数据表进行读取的指令时,依次读取每个所述数据表对应的数据页,在读取当前数据页中的任一元组数据时,从与所述当前数据页相邻的下一个数据页中提取出与所述任一元组数据具有相同偏移量的目标元组数据,并将所述任一元组数据和所述目标元组数据进行匹配输出。
2.根据权利要求1所述的只读表的连接方法,其特征在于,所述指定格式的数据页包括页头数据,数据项指针,元组数据和空闲空间。
3.根据权利要求2所述的只读表的连接方法,其特征在于,所述数据项指针和所述元组数据一一对应,所述页头数据中包含所述空闲空间的起止位置,所述数据项指针的起止位置和所述空闲空间的大小,所述数据项指针中包含对应的元组数据的位置和大小,所述元组数据从所述数据页的页尾依次进行分配,所述元组数据对应的数据项指针从所述数据页的页头依次进行分配。
4.根据权利要求1至3中任一项所述的只读表的连接方法,其特征在于,所述数据匹配步骤具体包括:
确定当前数据表,读取所述当前数据表对应的所述当前数据页,在读取所述当前数据页中任一元组数据时,获取所述任一元组数据的偏移量;
根据所述任一元组数据的偏移量确定所述任一元组数据的初始地址和元组长度,以读取出所述任一元组数据;
确定与所述当前数据页相邻的下一个数据页,并根据所述任一元组数据的偏移量确定所述下一个数据页的目标偏移量;
根据所述下一个数据页的目标偏移量确定所述目标元组数据的初始地址和元组长度,以提取出所述目标元组数据。
5.根据权利要求4所述的只读表的连接方法,其特征在于,还包括:
判断所述当前数据页的偏移量是否大于所述当前数据页的元组个数,在判断结果为是时,重新确定所述当前数据页。
6.一种只读表的连接***,其特征在于,包括:
分割单元,用于将具有多个属性的海量数据表纵向分割成多个数据表,其中每个属性对应所述数据表中的一列;
存储单元,用于将每个所述数据表中的元组数据按照指定格式的数据页进行存储;
数据匹配单元,当接收到对所述海量数据表进行读取的指令时,依次读取每个所述数据表对应的数据页,在读取当前数据页中的任一元组数据时,从与所述当前数据页相邻的下一个数据页中提取出与所述任一元组数据具有相同偏移量的目标元组数据,并将所述任一元组数据和所述目标元组数据进行匹配输出。
7.根据权利要求6所述的只读表的连接***,其特征在于,所述指定格式的数据页包括页头数据,数据项指针,元组数据和空闲空间。
8.根据权利要求7所述的只读表的连接***,其特征在于,所述数据项指针和所述元组数据一一对应,所述页头数据中包含所述空闲空间的起止位置,所述数据项指针的起止位置和所述空闲空间的大小,所述数据项指针中包含对应的元组数据的位置和大小,所述元组数据从所述数据页的页尾依次进行分配,所述元组数据对应的数据项指针从所述数据页的页头依次进行分配。
9.根据权利要求6至8中任一项所述的只读表的连接***,其特征在于,所述数据匹配单元具体用于:
确定当前数据表,读取所述当前数据表对应的所述当前数据页,在读取所述当前数据页中任一元组数据时,获取所述任一元组数据的偏移量;
根据所述任一元组数据的偏移量确定所述任一元组数据的初始地址和元组长度,以读取出所述任一元组数据;
确定与所述当前数据页相邻的下一个数据页,并根据所述任一元组数据的偏移量确定所述下一个数据页的目标偏移量;
根据所述下一个数据页的目标偏移量确定所述目标元组数据的初始地址和元组长度,以提取出所述目标元组数据。
10.根据权利要求9所述的只读表的连接***,其特征在于,所述数据匹配单元还用于:
判断所述当前数据页的偏移量是否大于所述当前数据页的元组个数,在判断结果为是时,重新确定所述当前数据页。
CN201410318952.8A 2014-07-04 2014-07-04 只读表的连接方法和只读表的连接*** Active CN104090954B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410318952.8A CN104090954B (zh) 2014-07-04 2014-07-04 只读表的连接方法和只读表的连接***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410318952.8A CN104090954B (zh) 2014-07-04 2014-07-04 只读表的连接方法和只读表的连接***

Publications (2)

Publication Number Publication Date
CN104090954A CN104090954A (zh) 2014-10-08
CN104090954B true CN104090954B (zh) 2019-02-05

Family

ID=51638670

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410318952.8A Active CN104090954B (zh) 2014-07-04 2014-07-04 只读表的连接方法和只读表的连接***

Country Status (1)

Country Link
CN (1) CN104090954B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105069084B (zh) * 2015-07-31 2018-07-31 南威软件股份有限公司 一种面向海量数据高效取差集的方法
CN106933933B (zh) * 2015-12-31 2019-12-10 北京国双科技有限公司 数据表信息的处理方法及装置
CN106933929B (zh) * 2015-12-31 2020-02-07 北京国双科技有限公司 调整数据表连接的方法和装置
CN108268586B (zh) * 2017-09-22 2020-06-16 阿里巴巴(中国)有限公司 跨多数据表的数据处理方法、装置、介质和计算设备
CN111309985B (zh) * 2020-03-10 2023-08-25 支付宝(杭州)信息技术有限公司 基于PostgreSQL数据库的高维向量存储方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2009204319A1 (en) * 2008-01-07 2009-07-16 Ori Herrnstadt Multiple dimensioned database architecture
CN101751406A (zh) * 2008-12-18 2010-06-23 赵伟 一种实现基于列存储的关系型数据库的方法及装置
CN101996250A (zh) * 2010-11-15 2011-03-30 中国科学院计算技术研究所 一种基于Hadoop的海量流数据存储和查询方法及***
CN102495834A (zh) * 2011-10-18 2012-06-13 成都康赛电子科大信息技术有限责任公司 基于内存映像的增量数据清洗方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521303B (zh) * 2011-11-30 2016-08-10 北京人大金仓信息技术股份有限公司 一种用于列数据库的单表多列序存储方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2009204319A1 (en) * 2008-01-07 2009-07-16 Ori Herrnstadt Multiple dimensioned database architecture
CN101751406A (zh) * 2008-12-18 2010-06-23 赵伟 一种实现基于列存储的关系型数据库的方法及装置
CN101996250A (zh) * 2010-11-15 2011-03-30 中国科学院计算技术研究所 一种基于Hadoop的海量流数据存储和查询方法及***
CN102495834A (zh) * 2011-10-18 2012-06-13 成都康赛电子科大信息技术有限责任公司 基于内存映像的增量数据清洗方法

Also Published As

Publication number Publication date
CN104090954A (zh) 2014-10-08

Similar Documents

Publication Publication Date Title
CN104090954B (zh) 只读表的连接方法和只读表的连接***
CN100465967C (zh) 一种查询方法与装置
CN103617232A (zh) 一种针对HBase表的分页查询方法
US9047330B2 (en) Index compression in databases
US9569134B2 (en) Sequential access storage and data de-duplication
US20120166402A1 (en) Techniques for extending horizontal partitioning to column partitioning
CN104090962B (zh) 面向海量分布式数据库的嵌套查询方法
CN111190904B (zh) 一种图-关系数据库混合存储的方法和装置
CN104598625B (zh) 基于自动识别标识符的数据表存储方法
CN103049473A (zh) 一种数据查询方法及装置
CN103229164B (zh) 数据访问方法和装置
CN102682108A (zh) 一种行列混合的数据库存储方法
CN107526733A (zh) 一种拉链表数据存储方法和装置
CN107577436A (zh) 一种数据存储方法及装置
CN102930027A (zh) 云计算多租户架构中数据处理***及处理方法
CN103164490A (zh) 一种不固定长度数据的高效存储实现方法和装置
CN102622434A (zh) 数据存储方法、查找方法及装置
CN116450656B (zh) 数据处理方法、装置、设备及存储介质
CN103488727A (zh) 基于周期对数的二维时序数据存储和查询方法
CN104408128B (zh) 一种基于b+树异步更新索引的读优化方法
CN105159950A (zh) 海量数据实时排序查询方法及***
CN104765754A (zh) 数据存储方法及装置
CN107544964A (zh) 一种用于时序数据库的数据块存储方法
CN103312627A (zh) 基于两级存储的正则表达式匹配方法
KR20170065374A (ko) 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 100094 Haidian District North Road, Beijing, No. 68

Applicant after: Yonyou Network Technology Co., Ltd.

Address before: 100094 Beijing city Haidian District North Road No. 68, UFIDA Software Park

Applicant before: UFIDA Software Co., Ltd.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant