CN103177056B - 存储为行存储和列存储二者的混合数据库表 - Google Patents

存储为行存储和列存储二者的混合数据库表 Download PDF

Info

Publication number
CN103177056B
CN103177056B CN201210401219.3A CN201210401219A CN103177056B CN 103177056 B CN103177056 B CN 103177056B CN 201210401219 A CN201210401219 A CN 201210401219A CN 103177056 B CN103177056 B CN 103177056B
Authority
CN
China
Prior art keywords
storage
row
search
subregion
row subregion
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
CN201210401219.3A
Other languages
English (en)
Other versions
CN103177056A (zh
Inventor
Y.永
C.程
J.李
C.B.宋
Y.S.孔
S.Y.且
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.)
SAP SE
Original Assignee
SAP SE
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 SAP SE filed Critical SAP SE
Publication of CN103177056A publication Critical patent/CN103177056A/zh
Application granted granted Critical
Publication of CN103177056B publication Critical patent/CN103177056B/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/23Updating
    • 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
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F16/24544Join order optimisation
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results

Landscapes

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

Abstract

混合数据库表被存储为行存储和列存储二者。一个或多个技术可以单独使用或组合使用,以便通过调节对处理密集型列存储数据的访问和/或调节处理密集型列存储数据的大小来提高混合表的性能。例如,在插入操作过程中,只有在已经考虑了某些过滤和/或边界条件之后才可以针对列存储数据搜索唯一性违背情况。在另一种技术中,混合表管理器可以基于诸如访问频率或者潜在的业务逻辑来控制将数据移动到列存储。在又一种技术中,混合表的查询可以仅在行存储数据的初始搜索没有返回结果之后才导致搜索列存储数据。

Description

存储为行存储和列存储二者的混合数据库表
技术领域
本发明涉及数据库中数据的存储,而且更具体地,涉及以混合表格式的数据库信息的存储。
背景技术
除非另有说明,本节中所描述的方法不是本申请中的权利要求的现有技术,并且不承认由并入本节即表示现有技术。
数据库是以结构化的方式存储数据的电子编档系统。数据库中的主存储结构是表。数据库可以包含多个表,而且每个表可以容纳特定类型的信息。数据库表以水平行和垂直列来存储和组织数据。行通常对应于真实世界的实体或关系,其代表表中的单个记录。列可以指示这些实体或关系的特定属性,诸如“名称”、“地址”或“电话号码”。例如,X公司可以具有包含“客户”表的数据库,“客户”表列出了它的客户的名称、地址和电话号码。每一行可以代表单一的客户,而且列可以代表每个客户的名称、地址和电话号码。
数据库通常存储在一维的计算机存储器中。因此,二维的数据库表必须被映射为一维的数据结构以便存储在数据库中。一种映射方法涉及按行将表存储在数据库中(即,面向行的存储模型)。这种方法可以使关于单一的实体的信息保持在一起。例如,按行存储可以首先存储关于第一客户的所有信息,然后存储关于第二客户的所有信息,等等。可替换地,表可以被按行存储在数据库中(即,面向列的存储模型)。这种方法可以使不同实体的相同属性保持在一起。例如,按列存储可以首先存储所有客户的名称,然后存储所有客户的地址,等等。
数据通常必须以与它被存储的方式相同的方式从表中访问。也就是说,传统的计算机存储技术需要专用查询操作符(operator),其能够访问特定类型的存储模型。例如,行查询操作符用于处理以行格式的存储模型(row-formatted storage models)存储在数据库中的数据,而且列查询操作符用于处理以列格式的存储模型(column-formattedstorage models)存储在数据库中的数据。
因而,选择使用哪种存储模型往往取决于数据将被如何使用。面向行的存储模型通常非常适用于事务查询。行存储格式将数据库行强调为可操作的元素,并且通常用于联机事务处理(On-Line Transaction Processing,OLTP),OLTP涉及相对较大数量的联机事务(行),而且每个事务的特征在于相对更多的数据类型(列)。
相比之下,面向列的存储模型一般适用于分析查询。列存储格式将数据库列强调为可操作的元素,并且通常用于关于可以包括基本数据类型的聚合的更少数量的数据类型(列)来对事务(行)总数的子集进行联机分析处理(On-Line Analytical Processing,OLAP)。以列存储格式的数据库表通常用于为了解决问题而对原始数据进行询问(interrogation)和分析,并用于规划形成业务智能(Business Intelligence,BI)效果的一部分。
总之,行存储可以用于检索单个记录,该记录包括许多具有主键条件(primarykey condition)的列。列存储可以用于执行更复杂的功能,诸如对相对较小数量的列进行聚合/结合。
因此,传统的查询处理方案被绑定到正被查询的数据库的底层存储模型。然而,在现实中,具有以列格式的存储模型存储的某些数据的数据库可以被要求处理与该数据有关的事务查询,或者具有以行格式的存储模型存储的某些数据的数据库可以被要求处理与该数据有关的分析查询。例如,具有以行格式的存储模型存储的数据的数据库可以接收请求对该数据进行事务处理和分析处理的一组混合的查询。
行存储数据库表格式和列存储数据库表格式二者都提供各种好处。例如,行存储格式为数据提供现成的可扩展性,因为它预期越来越多的事务将需要存储在附加行中。然而,行存储表格式对于分析查询(例如,聚合、结合)而言是相对内存密集型(memoryintensive)的,因为它垂直扫描表,这导致在水平存储数据时发生缓存未命中(cachemiss)。
相反,列存储格式在允许涉及表结合和聚合的复杂的数据操作方面提供灵活性,以及通过允许利用字典编码对跨多个条目的数据类型内的压缩来提供相对较低的内存消耗。然而,列存储数据库格式通常不允许与行存储表一样容易地操作大量数据。
因此,行存储表用作逐行记录访问(诸如利用主键查找的单个记录选择)是更有效的。列存储表用作逐列记录访问(诸如单列聚合)是更好的。对于逐行记录访问,列存储表变为内存密集型,因为数据格式是以列存储的形式垂直组织的,从而在水平访问记录值时发生缓存未命中。对于逐行记录访问,行存储表变为内存密集型,因为数据格式是以行存储的形式水平组织的,从而当读取特定列值时发生缓存未命中。
尽管各种数据库表类型具有各种优点,但是传统上表在业务生命周期的任意时间点通常只能够以行存储或列存储。因此,本公开利用实现存储为行存储和列存储二者的混合数据库表的系统和方法来解决这个和其他问题。
发明内容
混合数据库表被存储为行存储和列存储二者。一个或多个技术可以单独使用或组合使用,以便通过调节对处理密集型列存储数据的访问和/或调节处理密集型列存储数据的大小来提高混合表的性能。例如,在插入操作过程中,只有在已经考虑了某些过滤和/或边界条件之后才可以针对列存储数据搜索唯一性违背情况。在另一种技术中,混合表管理器可以基于诸如访问频率或者潜在的业务逻辑的考虑来控制将数据移动到列存储。根据又一种技术,混合表的查询可以导致仅在行存储数据的初始搜索没有返回结果之后才搜索列存储数据。
计算机实现的方法的实施例包括,在非临时性计算机可读存储介质中提供数据库,该数据库以应用层语言创建并且包括行分区的存储和列分区的存储。从用户接收查询。基于查询搜索行分区的存储。基于对行分区的存储的搜索,执行优化。只有在优化担保的情况下,才基于查询搜索列分区的存储。向用户返回基于查询的搜索结果。
计算机系统的实施例包括:一个或多个处理器;以及软件程序,其能够在计算机系统上运行。该软件程序被配置以从用户接收查询,并且基于查询搜索数据库的行分区的存储,数据库以应用层语言创建并且在非临时性计算机可读存储介质中提供,数据库还包括列分区的存储。基于对行分区的存储的搜索,执行优化。只有在优化担保的情况下,才基于查询搜索列分区的存储。向用户返回基于查询的搜索结果。
一种非临时性计算机可读存储介质的实施例具体实施用于执行方法的计算机程序,该方法包括从用户接收查询并基于查询搜索数据库的行分区的存储,数据库以应用层语言创建并且在非临时性计算机可读存储介质中提供,数据库还包括列分区的存储。基于对行分区的存储的搜索,执行优化。只有在优化担保的情况下,才基于查询搜索列分区的存储。向用户返回基于查询的搜索结果。
在实施例中,搜索行分区的存储包括执行唯一键搜索。
根据一些实施例,优化包括确定行分区的存储的唯一键搜索是否没有返回搜索结果。
在具体实施例中,搜索结果是通过合并行分区的存储的搜索结果和列分区的存储的搜索结果形成的。
一些实施例还可以包括提供行分区的存储的值的范围。
在某些实施例值,优化可以包括确定行分区的存储的搜索是否满足过滤条件,过滤条件包括值的范围。
以下详细描述和附图提供了对本发明的性质和优点的更好理解。
附图说明
图1示出了根据实施例的混合表的结构和操作的简化示意图;
图2示出了将新的记录插入混合表的实施例的简化示意图;
图2A示出了用于将新的记录插入混合表的实施例的处理流程的简化视图;
图3A将布隆过滤器的性能标绘为位/元素(bit/element)对散列函数的数量;
图3B针对可缩放的布隆过滤器标绘了内存大小对记录的数量;
图4是显示在利用不同数量线程的插入处理过程中、以每秒事务处理量(transactions per second,TPS)为单位的吞吐量的条形图;
图5示出了根据实施例的控制混合表中数据移动的简化视图;
图5A示出了在混合表的实施例中用于在行分区存储与列分区存储之间移动记录的处理流程的简化视图;
图6示出了根据页面级(page-level)访问统计管理来实施基于访问的数据移动策略的简化示意图;
图7示出了根据实施例的业务感知的(business-aware)数据移动策略的简化实施例;
图8示出了根据实施例的对混合数据库进行搜索操作的简化示意图;
图8A示出了用于搜索混合表的实施例的处理流程的简化视图;
图9示出了在单一混合表上进行简单搜索的简化示意图;
图10是简化的流程图,其示出如果有必要则采取列搜索,随后是行搜索结果和列搜索结果的合并;
图11示出了基于转换的连接操作的简化示意图;
图12示出了原生混合连接操作的简化示意图;
图13示出了原生混合连接操作的另一个视图;
图14示出可以被配置为实施混合数据库表的专用计算机器的硬件;
图15示出了计算机系统的示例;以及
图16针对传统的行和列存储表以及相应混合表的搜索性能标绘了吞吐量对连接的数量。
具体实施方式
这里描述的是提供存储为行存储和列存储二者的混合数据库表的技术。单独使用或组合使用的某些技术通过限制对处理密集型(processing-intensive)列存储数据的访问和/或限制处理密集型列存储数据的大小来提高混合表的性能。
在下面的描述中,为了解释,阐述了实施例和具体细节以提供对各种实施例的透彻理解。然而,对本领域技术人员将显而易见的是,由权利要求限定的本发明可以单独包括这些实施例中的一些或所有特征,或者与下面描述的其它特征组合使用,并且可以进一步包括这里所描述的特征和构思的修改和等同物。
图1示出了根据实施例的混合表的简化示意图。混合表100包括第一数据存储102,其包括根据内存行分(in-memory row partition)存储的数据。混合表还包括第二数据存储106,其包括根据内存列分区(in-memory column partition)存储的数据。如上面提到的,与以行存储方向访问数据相比,以列存储方向访问数据是更加处理密集型的。
查询处理器108与混合表通信以分别利用行引擎107和列引擎109来执行行搜索和列搜索。行搜索结果110和列搜索结果112被返回到查询处理器,而且合并的查询搜索结果114被返回给用户。
图1中的箭头122示出将新的记录插入到混合表的功能。如下面详细描述的,这个插入功能能够被优化以提高混合表的性能。
图1还示出了,混合表中的数据可以从相对更新密集型(update-intensive)行分区方向被移动到相对读取密集型(read-intensive)列分区方向。数据管理器120负责这种数据移动,在某些情况下这可以采取到列表(column table)的异步事务批量数据移动的形式。
异步数据移动被设计成利用行分区和列分区二者的有利属性。从性能的角度来看,可能期望将刚插入的记录、经常更新的记录、和/或利用主键条件搜索的记录放置在行分区。期望将不经常更新的但有时聚合的记录放置在列分区。
从内存(memory)消耗的角度来看,可能期望将行分区维持为尽可能的小,因为行分区不被压缩。因此,相同记录量所消耗的内容通常大于列分区。
因此,混合表的实施例可以寻求避免牺牲OLTP性能(在行存储中保持相关数据),并且提高聚合性能(在列存储中保持稳定的(stable)、旧的(aged)用于聚合的数据),同时保持合理的内存消耗(例如,通过行/列边界管理)。
根据本发明的实施例的混合表可以提供某些潜在好处。特别是,存储在行存储方向中的数据的存在提供快速访问。存储在行存储方向中的数据适合利用搜索条件(例如,精确匹配(match)/范围(range))的单个表选择。因此,快速的“简单选择”查询可以用于访问行分区的数据存储。行分区的数据存储还提供可扩展的更新和搜索性能。
此外,行分区的数据存储的存在允许利用精益栈(lean stack)处理并发工作负载。以相对低的系统资源的消耗执行诸如插入、更新和删除、以及简单的搜索(精确匹配/范围)的功能的执行是可能的。而且,行引擎中的运行可以流水线化。
关于列存储数据,通过对列表进行字典编码可以减少内存消耗。列表还通过列引擎提供快速的OLAP处理。
本发明的实施例可以寻求通过限制对处理密集型列存储数据的访问和/或限制处理密集型列存储数据的大小来保持混合表的性能。这方面的一个示例能够在插入操作过程中发生,如图2所示。
特别地,图2示出了将新的记录插入混合表200的简化示意图。首先,新的记录202被插入与内存行分区数据存储206相关联的唯一(unique)行存储(RS)索引204。
根据具体实施例,在采取在列分区的数据存储208(处理密集型方面)中搜索每个值之前,为了检查唯一性违背情况(uniqueness violation),混合表首先基于附加信息执行优化209。
图2A示出了用于将新的记录插入混合表的实施例的处理流程250的简化视图。第一步骤252包括在非临时性计算机可读存储介质中提供数据库,该数据库以应用层语言创建并且包括行分区的存储和列分区的存储。第二步骤252包括接收将被插入到数据库中的新的记录。第三步骤256包括使行引擎根据行存储索引将新的记录插入到行分区的存储。第四步骤258包括基于附加信息执行优化以检查唯一性违背情况。第五步骤260包括,只有在优化担保(warrant)的情况下,才在列分区的存储中检查唯一性违背情况。第六步骤262包括显示对包括新的记录的数据库的查询进行处理的结果。
第一优化方法是利用闩锁释放结构(latch-free structure)保持列分区的唯一列(unique column)的最小/最大(min/max)值,以最小化争用。这种方法可能导致对于多列的唯一键的许多误命中(false hit)。
第二优化方法是保持用于唯一列的过滤器(诸如布隆(Bloom)过滤器)。这种过滤方法210是有益的,因为只有在数据从行存储方向移动到数据存储方向的时候,过滤器才需要更新或刷新。
特别是,布隆过滤器是有效地过滤掉不属于一组的任何元素的一种数据结构。布隆过滤器包括位向量和一组散列函数。如果布隆过滤器返回假(FALSE),则该元素绝对不是集合的成员。如果布隆过滤器返回真(TRUE),则该元素有可能在集合中。
图3A将布隆过滤器的性能标绘为位/元素对散列函数的数量,具有0.1的误报率(False Positive Rate,FPR)。FPR取决于散列函数的数量和元素的数量/(位向量的大小)。
在某些实施例中,通过使用布隆过滤器可以提高在插入处理过程中的混合表的性能。特别是,只有布隆过滤器返回TRUE时,才需要搜索列分区的数据存储中的值。
为了这个任务使用标准布隆过滤器可以消耗大量的内存。例如,标准布隆过滤器需要大约60MB以便为100万条记录保持FPR≤0.1。
因此,某些实施例可以采用可扩展的布隆过滤器(SBF),以便对混合表的插入处理执行优化。SBF是布隆过滤器的变体,其使用与已存储的元素的数量成比例的空间。SBF的查询时间遵从下列关系式:
查询时间=O(k log n),其中,
k=散列函数的数量;以及
n=记录的数量。
图3B针对FPR=0.1和k=3的SBF,标绘了内存大小对记录的数量。
利用SBF的优化插入处理能够导致混合表增强的性能。这将结合下面的示例进行讨论。
示例
80万条记录的数据总量被配置在六(6)个不同的表类型中:面向行(行,A);面向列(列,B);未过滤且80万条记录以行存储的混合(C);未过滤且80万条记录以列存储的混合(D);利用SBF且80万条记录以行存储的混合(E)以及利用SBF且80万条记录以列存储的混合(F)。
图4是显示在利用不同数量线程的插入处理过程中、以每秒事务处理量(TPS)为单位的吞吐量的条形图。混合表的性能能够通过与具有以行方向(最低处理密集型格式)存储的数据的表的比较来衡量。
图4表明,没有过滤(C,D)的情况下,混合表的插入处理性能只有行表(A)的插入处理性能的约1/3。相比之下,在使用SBF的(E,F)情况下,混合表显示了与行表(A)类似的插入处理性能,尽管事实上混合表的全部数据位于列分区的数据存储中。这代表显著的增强,使混合数据库表的性能类似于传统的行存储方式的性能。
虽然上述讨论集中在使用可扩展的布隆过滤器来优化混合表的性能,但是本发明并不限于这个特定的过滤器类型。可以采用用于快值存在检查(fast value existencechecking)的不同类型的索引变体。实施例包括但不限于散列索引、B+树索引、csb+树索引、以及其他。
可以采用以提高混合表的性能的另一种技术是选择性地向/从列分区的数据存储移动记录,以控制它的大小。图5示出了根据实施例的控制混合表中数据移动的简化视图。
特别是,混合表管理器500负责根据数据移动策略来控制数据从内存行分区存储502到内存列分区存储504的移动。通过对数据的智能分区,选择性的数据移动可以允许快速OLTP处理,避免列分区访问。
图5A示出了在混合表的实施例中用于在行分区存储与列分区存储之间移动记录的处理流程550的简化视图。第一步骤552包括在非临时性计算机可读存储介质中提供数据库,该数据库以应用层语言创建并且包括行分区的存储和列分区的存储。第二步骤554包括提供数据移动管理器,其被配置为根据数据移动策略来执行数据从行分区的存储到列分区的存储的移动。第三步骤556包括当满足数据移动策略的条件时,使数据移动管理器自动地将记录从行分区的存储移动到列分区的存储。在可选的第四步骤558中,行分区的存储的搜索结果被返回给用户。
数据移动策略的一个示例是基于访问的。因为这样的数据移动策略不依赖于对业务规则(见下文)的知识,所以其可以用作默认的。
根据基于访问的数据移动策略,当行分区上的记录的数量超过定义的阈值时,混合表管理器将行分区上的一些部分的记录移动到列分区。这种基于访问的数据移动可以基于对已访问的记录保持的统计,从而当移动被触发时,具有较低的访问频率的记录被移动。每当数据移动完成时,访问统计可以被重置。
图6示出了根据页面级(page-level)访问统计管理来实施基于访问的数据移动策略600的简化示意图。行分区存储604中的多个页面602中的每一个都包括持续访问计数606。根据这种访问计数的相对较低数量,具有最少访问频率的页面可以被移到列分区数据存储。
在一些实施例中,由于粗粒度的访问统计管理,频繁访问的记录有可能被移出到列分区的存储。例如,一些特定的实施例可以执行页面级移动,而不是记录级管理,其中页面包括多个记录,多个记录中的一些被频繁访问而另一些未被频繁访问。这种方法是有可能的,虽然针对经常访问的记录可能发生不期望的数据移动。
可替换的数据移动策略可以基于业务概念,而不是访问频率。当业务语义(business semantic)已知时,这样的数据移动策略可以提供最佳的结果。
根据某些实施例,业务感知的数据移动可以采取基于条件的移动形式。在这种方法中,满足一定业务条件的记录可以被移出到列分区的存储。
在其它实施例中,业务感知的数据移动可以采取基于参考的移动形式。在这种方法中,当(参考表中的)相关记录被移出时,记录被移出到列分区的存储。
图7示出了业务感知的数据移动策略700的简化实施例。在这个示例中,关闭的销售文档被移动到列分区的数据存储。
在图7的示例中,对于销售文档表VBAK,如果GBSTK列的值是“C”,则它意味着闭合的文档。因此,移出条件可以被指定为GBSTK=“C”,以便只移出关闭的文档。通过将表之间的关系指定为移出条件,SD项目(VBAP)表和文档首标(VBUK)表中的关闭文档相关记录(Closed-document-related records)可以被相应地移出。在这里,MANDT和VBELN列被用于指定这种关系。
通过优化搜索功能也可以增强混合表的性能。图9示出了在单一混合表上进行简单搜索的简化示意图。具体而言,作为项目的一部分,对混合表902提出查询900。行存储(RS)906和列存储(CS)908的搜索结果的联合(union)904被返回给用户。
根据本发明的特定实施例,诸如边界条件的信息可以被引用以控制对列存储的数据的访问,从而最小化简单查询的列存储访问。图8示出了根据实施例的对混合数据库800进行搜索操作的简化示意图。
如在下面进一步详细描述的,搜索802最初可以在内存行分区的数据存储804上执行。只有在已经返回最初搜索802的结果时才做出是否执行对存储在内存列分区808中的值进行进一步搜索806的决定。
图8A示出了用于搜索混合表的实施例的处理流程850的简化视图。第一步骤852包括在非临时性计算机可读存储介质中提供数据库,该数据库以应用层语言创建并且包括行分区的存储和列分区的存储。第二步骤854包括接收来自用户的查询。第三步骤856包括基于所述查询来搜索行分区的存储。第四步骤858包括基于对行分区的存储的搜索来执行优化。第五步骤860包括只有在优化担保的情况下,才基于所述查询搜索列分区的存储。在第六步骤862中,基于所述查询的搜索结果被返回给用户。
如果优化担保,则对列存储数据的搜索可以出现在背景中,对用户是透明的。例如,涉及主键(PK)或唯一键(unique-key)的搜索可以最初只在较少的处理密集型行存储数据上运行。如果从这个最初搜索返回结果,那么就不需要采取还搜索列存储数据的处理密集型任务。图10的简化的流程图示出了混合数据库表搜索1000的实施例,其示出如果有必要则采取列搜索1002,随后是行搜索结果1006和列搜索结果的合并1004。
根据边界条件的过滤还可以用作混合表搜索中的优化技术。例如,为了控制对列存储数据的访问,列字典可以保持每个列分区的最小和最大值。然后,实际列存储数据的搜索可以被限制于仅满足过滤条件(例如,搜索条件)的分区。如果给定的过滤条件不需要列分区访问,则列分区的边界可以被保持以允许搜索优化(限制列分区访问)。
图16标绘了吞吐量(线程每秒,TPS)对连接的数量,以评估在传统的行和列存储表上执行的以及在根据实施例的相应混合表上执行的PK精确匹配搜索的性能。图16示出,利用PK剪枝优化(pruning optimization)搜索混合表导致混合表的吞吐量高于常规列存储表的吞吐量。
更复杂的搜索可以适于多个混合数据库表。特别是,这种复杂的搜索可以涉及表的连接(join)操作。
可以用于多个混合表的复杂搜索的一种技术是基于转换的连接。这种基于转换的连接在2010年12月30日提交的、题为“Processing Database Queries Using FormatConversion(使用格式转换处理数据库查询)”的第12/982,673号美国专利申请中详细公开,并且出于所有目的,其整体通过引用合并于此。
图11示出了基于转换的连接操作1100的简化示意图。特别是,这种方法对于分割表(split table)借用(leverage)列连接1102。行表作为分区。这种方法使用即时(on-the-fly)字典生成和字典缓存。
可以用于多个混合表的复杂搜索的可替换的技术是混合的连接操作,其访问以其原生(native)行存储方向或列存储方向存储的数据。这种原生混合连接方法在2011年12月12日提交的、题为“Mixed Join of Row and Column Database Tables in NativeOrientation(原生方向的行和列数据库表的混合连接)”的第13/323,530号美国专利申请中详细公开,并且出于所有目的,其整体通过引用合并于此。
图12示出了原生混合连接操作1200的简化示意图。这种方法利用列字典作为索引。连接操作的修剪基于使用列字典索引作为数据边界进行过滤来实现。
图13示出了原生混合连接操作1300的另一个视图,其使用列字典作为索引。首先,记录在行表中被迭代。下一步涉及针对每个连接条件的列字典查找。在第三步中,匹配的记录被返回。
根据原生混合连接方法,通过在迭代行表时使用列字典查找,实现了没有结果具体化(result materialization)。这还允许使用行标识符的流水线运行。
对于多列连接处理,如果存在连接属性(concatenated attribute)或外部键,则可以实现完全键匹配。逐列匹配是可能的。
图14示出可以被配置为执行根据某些实施例的混合数据库表的专用计算机器的硬件。
特别是,计算机系统1401包括处理器1402,其与非临时性计算机可读存储介质1403电通信。这种计算机可读存储介质具有存储在其上的代码1405,代码1405对应于内存行分区。代码1404对应于内存列分区,内存行分区和内存列分区两者都可以作为根据上面已经描述的实施例的混合表的一部分进行访问。系统还可以包括对应于如上已经示出和描述的数据移动管理器的代码。
这里描述的装置、方法和技术可以被实现为在一个或多个计算机上运行的计算机程序(软件)。计算机程序还可以被存储在非临时性计算机可读介质上。非临时性计算机可读介质可以包括用于执行所述处理的指令。
计算机系统可以包括软件服务器。许多软件服务器一起可以形成利用软件程序编程的计算机系统的集群或逻辑网络,所述软件程序相互通信并且一起工作以处理请求。
示例性计算机系统1510在图15中示出。计算机系统1510包括总线1505或其他用于对信息进行通信的通信机制,以及与总线1505耦接的用于处理信息的处理器1501。
计算机系统1510还包括与总线1505耦接的存储器1502,用于存储将被处理器1501执行的信息和指令,例如,包括用于执行如上所述的技术的信息和指令。这个存储器还可以用于在将被处理器1501运行的指令的运行过程中,存储变量或其它中间信息。这个存储器的可能的实现可以是,但不限于,随机存取存储器(RAM)、只读存储器(ROM)、或两者。
存储设备1503还被提供以用于存储信息和指令。存储设备的常见形式包括,例如,硬盘驱动器、磁盘、光盘、CD-ROM、DVD、闪存、USB存储卡、或者计算机可以读取的任何其它介质。
例如,存储设备1503可以包括用于执行上述技术的源代码、二进制代码或软件文件。存储设备和存储器是计算机可读介质的两个示例。
计算机系统1510可以经由总线1505耦接到诸如阴极射线管(CRT)或液晶显示器(LCD)的显示器1512,以用于向计算机用户显示信息。诸如键盘和/或鼠标的输入设备1511耦接到总线1505,以用于将信息和命令选择从用户通信给处理器1501。这些组件的组合允许用户与系统通信。在一些系统中,总线1505可以被划分为多个专用总线。
计算机系统1510还包括与总线1505耦接的网络接口1504。网络接口1504可以在计算机系统1510和本地网络1520之间提供双向数据通信。例如,网络接口1504可以是数字用户线(DSL)或调制解调器,以便通过电话线提供数据通信连接。网络接口的另一个示例是局域网(LAN)卡,以便提供到可兼容LAN的数据通信连接。无线链接是另一个示例。在任何这样的实现中,网络接口1404发送和接收携带代表各种类型信息的数字数据流的电、电磁或光信号。
计算机系统1510可以通过网络接口1504在本地网络1520、内联网或互联网1530上发送和接收信息,包括消息或其他接口动作。对于本地网络,计算机系统1510可以与诸如服务器1515的多个其他计算机机器通信。因此,计算机系统1510以及由服务器1515代表的服务器计算机系统可以形成云计算网络,其可以利用这里所描述的过程进行编程。
在涉及互联网的示例中,软件组件或服务可以跨网络驻留在多个不同的计算机系统1510或服务器1531至1535上。例如,上面描述的过程可以在一个或多个服务器上实现。服务器1531可以通过互联网1530、本地网络1520和网络接口1504将来自一个组件的动作或消息传输给计算机系统1510上的组件。例如,上述软件组件和过程可以在任何计算机系统上实现,并且可以跨网络发送和/或接收信息。
以上描述示出了本发明的各种实施例以及如何可以实现本发明的各个方面的示例。以上示例和实施例不应被视为唯一的实施例,而且被呈现以用于说明由以下权利要求所限定的本发明的灵活性和优点。基于以上公开和以下权利要求,其他安排、实施例、实现和等同物将对本领域技术人员是显而易见的,而且可以使用而不脱离由权利要求限定的本发明的精神和范围。

Claims (18)

1.一种计算机实现的方法,包括:
在非临时性计算机可读存储介质中提供数据库,该数据库以应用层语言创建并且包括行分区的存储和列分区的存储;
根据数据移动策略,将部分数据从行分区的存储移动到列分区的存储;
从用户接收查询;
基于所述查询搜索行分区的存储;
基于对行分区的存储的搜索,执行优化;
只有在优化担保的情况下,才基于所述查询搜索包含所述部分数据的列分区的存储;以及
向用户返回基于所述查询的搜索结果。
2.如权利要求1所述的计算机实现的方法,其中,搜索行分区的存储包括执行唯一键搜索。
3.如权利要求2所述的计算机实现的方法,其中,所述优化包括确定行分区的存储的唯一键搜索是否没有返回搜索结果。
4.如权利要求1所述的计算机实现的方法,其中,所述搜索结果是通过合并行分区的存储的搜索结果和列分区的存储的搜索结果形成的。
5.如权利要求1所述的计算机实现的方法,还包括,提供行分区的存储的值的范围。
6.如权利要求5所述的计算机实现的方法,其中,所述优化包括确定行分区的存储的搜索是否满足过滤条件,所述过滤条件包括所述值的范围。
7.一种具体实施计算机程序的非临时性计算机可读存储介质,该计算机程序用于执行方法,该方法包括:
从用户接收查询;
提供数据库的行分区的存储,所述数据库以应用层语言创建并且在非临时性计算机可读存储介质中提供,所述数据库还包括列分区的存储;
根据数据移动策略,将部分数据从行分区的存储移动到列分区的存储;
基于所述查询,基于对行分区的存储的搜索,执行优化;
只有在优化担保的情况下,才基于所述查询搜索包括所述部分数据的列分区的存储;以及
向用户返回基于所述查询的搜索结果。
8.如权利要求7所述的非临时性计算机可读存储介质,其中,搜索行分区的存储包括执行唯一键搜索。
9.如权利要求8所述的非临时性计算机可读存储介质,其中,所述优化包括确定行分区的存储的唯一键搜索是否没有返回搜索结果。
10.如权利要求7所述的非临时性计算机可读存储介质,其中,所述搜索结果是通过合并行分区的存储的搜索结果和列分区的存储的搜索结果形成的。
11.如权利要求7所述的非临时性计算机可读存储介质,还包括,提供行分区的存储的值的范围。
12.如权利要求11所述的非临时性计算机可读存储介质,其中,所述优化包括确定行分区的存储的搜索是否满足过滤条件,所述过滤条件包括所述值的范围。
13.一种计算机系统,包括:
一个或多个处理器;
软件程序,其能够在所述计算机系统上运行,该软件程序被配置以:
从用户接收查询;
提供数据库的行分区的存储,所述数据库以应用层语言创建并且在非临时性计算机可读存储介质中提供,所述数据库还包括列分区的存储;
根据数据移动策略,将部分数据从行分区的存储移动到列分区的存储;
基于所述查询,基于对行分区的存储的搜索,执行优化;
只有在优化担保的情况下,才基于所述查询搜索包括所述部分数据的列分区的存储;以及
向用户返回基于所述查询的搜索结果。
14.如权利要求13所述的计算机系统,其中,搜索行分区的存储包括唯一键搜索。
15.如权利要求14所述的计算机系统,其中,所述优化包括确定行分区的存储的唯一键搜索是否没有返回搜索结果。
16.如权利要求13所述的计算机系统,其中,所述搜索结果是通过合并行分区的存储的搜索结果和列分区的存储的搜索结果形成的。
17.如权利要求13所述的计算机系统,其中,提供行分区的存储的值的范围。
18.如权利要求17所述的计算机系统,其中,所述优化包括确定行分区的存储的搜索是否满足过滤条件,所述过滤条件包括所述值的范围。
CN201210401219.3A 2011-12-22 2012-10-19 存储为行存储和列存储二者的混合数据库表 Active CN103177056B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/334,711 US8918436B2 (en) 2011-12-22 2011-12-22 Hybrid database table stored as both row and column store
US13/334,711 2011-12-22

Publications (2)

Publication Number Publication Date
CN103177056A CN103177056A (zh) 2013-06-26
CN103177056B true CN103177056B (zh) 2017-10-31

Family

ID=47178441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210401219.3A Active CN103177056B (zh) 2011-12-22 2012-10-19 存储为行存储和列存储二者的混合数据库表

Country Status (3)

Country Link
US (4) US8918436B2 (zh)
EP (1) EP2608070A1 (zh)
CN (1) CN103177056B (zh)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8892990B2 (en) * 2012-03-07 2014-11-18 Ricoh Co., Ltd. Automatic creation of a table and query tools
US9251181B2 (en) * 2012-06-18 2016-02-02 International Business Machines Corporation Dynamic map template discovery and map creation
US9251133B2 (en) * 2012-12-12 2016-02-02 International Business Machines Corporation Approximate named-entity extraction
US10152500B2 (en) 2013-03-14 2018-12-11 Oracle International Corporation Read mostly instances
US10642837B2 (en) 2013-03-15 2020-05-05 Oracle International Corporation Relocating derived cache during data rebalance to maintain application performance
US10909113B2 (en) * 2013-07-31 2021-02-02 Sap Se Global dictionary for database management systems
CN104424287B (zh) * 2013-08-30 2019-06-07 深圳市腾讯计算机系统有限公司 数据查询方法和装置
US10311154B2 (en) * 2013-09-21 2019-06-04 Oracle International Corporation Combined row and columnar storage for in-memory databases for OLTP and analytics workloads
US9606921B2 (en) 2013-09-21 2017-03-28 Oracle International Corporation Granular creation and refresh of columnar data
US10303682B2 (en) 2013-09-21 2019-05-28 Oracle International Corporation Automatic verification and triage of query results
US9323799B2 (en) 2013-09-21 2016-04-26 Oracle International Corporation Mechanism to run OLTP workload on in-memory database under memory pressure
US9128972B2 (en) 2013-09-21 2015-09-08 Oracle International Corporation Multi-version concurrency control on in-memory snapshot store of oracle in-memory database
US9292564B2 (en) 2013-09-21 2016-03-22 Oracle International Corporation Mirroring, in memory, data from disk to improve query performance
US9767178B2 (en) 2013-10-30 2017-09-19 Oracle International Corporation Multi-instance redo apply
US20150169619A1 (en) * 2013-12-06 2015-06-18 Zaius, Inc. System and method for creating storage containers in a data storage system
US9697221B2 (en) 2014-03-19 2017-07-04 Oracle International Corporation OZIP compression and decompression
US10002148B2 (en) 2014-07-22 2018-06-19 Oracle International Corporation Memory-aware joins based in a database cluster
US9875259B2 (en) 2014-07-22 2018-01-23 Oracle International Corporation Distribution of an object in volatile memory across a multi-node cluster
US10275184B2 (en) 2014-07-22 2019-04-30 Oracle International Corporation Framework for volatile memory query execution in a multi node cluster
CN104657426B (zh) * 2015-01-22 2018-07-03 江苏瑞中数据股份有限公司 一种基于统一视图的行列混合数据存储模型的建立方法
US10650011B2 (en) * 2015-03-20 2020-05-12 International Business Machines Corporation Efficient performance of insert and point query operations in a column store
US11829349B2 (en) 2015-05-11 2023-11-28 Oracle International Corporation Direct-connect functionality in a distributed database grid
US10216781B2 (en) 2015-05-29 2019-02-26 Oracle International Corporation Maintaining cross-node coherence of an in-memory database object in a multi-node database cluster
US10073885B2 (en) 2015-05-29 2018-09-11 Oracle International Corporation Optimizer statistics and cost model for in-memory tables
US10067974B2 (en) 2015-05-29 2018-09-04 Oracle International Corporation Loading and reloading an in-memory copy of a database object without blocking concurrent updates to the database object
US10296632B2 (en) 2015-06-19 2019-05-21 Sap Se Synchronization on reactivation of asynchronous table replication
US10268743B2 (en) 2015-06-19 2019-04-23 Sap Se Distributed database transaction protocol
US9990308B2 (en) 2015-08-31 2018-06-05 Oracle International Corporation Selective data compression for in-memory databases
US10248694B2 (en) 2015-08-31 2019-04-02 International Business Machines Corporation Bloom filter utilization for join processing
US10984043B2 (en) 2015-10-02 2021-04-20 Oracle International Corporation Method for faceted visualization of a SPARQL query result set
US10678788B2 (en) 2015-10-22 2020-06-09 Oracle International Corporation Columnar caching in tiered storage
US10747752B2 (en) 2015-10-23 2020-08-18 Oracle International Corporation Space management for transactional consistency of in-memory objects on a standby database
US11657037B2 (en) 2015-10-23 2023-05-23 Oracle International Corporation Query execution against an in-memory standby database
US10795881B2 (en) 2015-12-18 2020-10-06 Sap Se Table replication in a database environment
US10235440B2 (en) 2015-12-21 2019-03-19 Sap Se Decentralized transaction commit protocol
US10572510B2 (en) 2015-12-21 2020-02-25 Sap Se Distributed database transaction protocol
US10235468B2 (en) * 2015-12-30 2019-03-19 Business Objects Software Limited Indirect filtering in blended data operations
US10108667B2 (en) 2016-03-07 2018-10-23 International Business Machines Corporation Query plan optimization for large payload columns
US10102046B2 (en) 2016-03-24 2018-10-16 Oracle International Corporation In-memory data analytic system that provides an integrated tracking mechanism for explicit memory resources
US10552413B2 (en) 2016-05-09 2020-02-04 Sap Se Database workload capture and replay
US10572469B2 (en) 2016-05-31 2020-02-25 Oracle International Corporation Versioning and non-disruptive servicing of in-memory units in a database
US10298702B2 (en) 2016-07-05 2019-05-21 Sap Se Parallelized replay of captured database workload
US10698771B2 (en) 2016-09-15 2020-06-30 Oracle International Corporation Zero-data-loss with asynchronous redo shipping to a standby database
US10437688B2 (en) 2016-09-22 2019-10-08 Oracle International Corporation Enhancing consistent read performance for in-memory databases
US10891291B2 (en) 2016-10-31 2021-01-12 Oracle International Corporation Facilitating operations on pluggable databases using separate logical timestamp services
US11475006B2 (en) 2016-12-02 2022-10-18 Oracle International Corporation Query and change propagation scheduling for heterogeneous database systems
US10437800B2 (en) * 2016-12-02 2019-10-08 International Business Machines Corporation Data migration using a migration data placement tool between storage systems based on data access
US10437799B2 (en) * 2016-12-02 2019-10-08 International Business Machines Corporation Data migration using a migration data placement tool between storage systems based on data access
CN106649687B (zh) * 2016-12-16 2023-11-21 飞狐信息技术(天津)有限公司 大数据联机分析处理方法及装置
US10761946B2 (en) 2017-02-10 2020-09-01 Sap Se Transaction commit protocol with recoverable commit identifier
US10592528B2 (en) 2017-02-27 2020-03-17 Sap Se Workload capture and replay for replicated database systems
US10585873B2 (en) 2017-05-08 2020-03-10 Sap Se Atomic processing of compound database transactions that modify a metadata entity
US11573947B2 (en) 2017-05-08 2023-02-07 Sap Se Adaptive query routing in a replicated database environment
US10803039B2 (en) 2017-05-26 2020-10-13 Oracle International Corporation Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index
US10691722B2 (en) 2017-05-31 2020-06-23 Oracle International Corporation Consistent query execution for big data analytics in a hybrid database
US10936578B2 (en) 2017-06-01 2021-03-02 Sap Se Client-driven commit of distributed write transactions in a database environment
US10977227B2 (en) 2017-06-06 2021-04-13 Sap Se Dynamic snapshot isolation protocol selection
US10437807B1 (en) * 2017-07-06 2019-10-08 Palantir Technologies Inc. Selecting backing stores based on data request
US10719446B2 (en) 2017-08-31 2020-07-21 Oracle International Corporation Directly mapped buffer cache on non-volatile memory
US11086876B2 (en) 2017-09-29 2021-08-10 Oracle International Corporation Storing derived summaries on persistent memory of a storage device
US10732836B2 (en) 2017-09-29 2020-08-04 Oracle International Corporation Remote one-sided persistent writes
US10956335B2 (en) 2017-09-29 2021-03-23 Oracle International Corporation Non-volatile cache access using RDMA
US10802766B2 (en) 2017-09-29 2020-10-13 Oracle International Corporation Database with NVDIMM as persistent storage
US10698892B2 (en) 2018-04-10 2020-06-30 Sap Se Order-independent multi-record hash generation and data filtering
US11379481B2 (en) * 2018-05-03 2022-07-05 Sap Se Query and metadata repositories to facilitate content management and lifecycles in remote analytical application integration
US10606851B1 (en) 2018-09-10 2020-03-31 Palantir Technologies Inc. Intelligent compute request scoring and routing
US11170002B2 (en) 2018-10-19 2021-11-09 Oracle International Corporation Integrating Kafka data-in-motion with data-at-rest tables
US10409641B1 (en) 2018-11-26 2019-09-10 Palantir Technologies Inc. Module assignment management
US11347705B2 (en) 2019-04-02 2022-05-31 Sap Se Supporting scalable distributed secondary index using replication engine for high-performance distributed database systems
US11379439B1 (en) * 2019-05-13 2022-07-05 Datometry, Inc. Incremental transfer of database segments
US11514055B2 (en) 2019-09-13 2022-11-29 Oracle International Corporation Querying on hybrid formats and storages
US11526500B2 (en) * 2019-12-12 2022-12-13 Sap Se System and method for initiating bulk inserts in a distributed database
US11709752B2 (en) 2020-04-02 2023-07-25 Sap Se Pause and resume in database system workload capture and replay
US11615012B2 (en) 2020-04-03 2023-03-28 Sap Se Preprocessing in database system workload capture and replay
CN111967931B (zh) * 2020-07-29 2024-01-12 上海万物新生环保科技集团有限公司 一种用于列表数据元素混排的方法与设备
US11620265B2 (en) * 2020-09-30 2023-04-04 Bank Of America Corporation Hybrid dynamic database schema
US11645276B2 (en) 2020-09-30 2023-05-09 Bank Of America Corporation Parallel dynamic aggregation system and method
US11941029B2 (en) 2022-02-03 2024-03-26 Bank Of America Corporation Automatic extension of database partitions
CN116132534B (zh) * 2022-07-01 2024-03-08 马上消费金融股份有限公司 业务请求的存储方法、装置、设备及存储介质
CN116028584B (zh) * 2023-03-28 2023-06-27 华腾数云(北京)科技有限公司 混合事务分析处理的数据仓库

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101685449A (zh) * 2008-09-26 2010-03-31 国际商业机器公司 一种用于连接多个异构分布式数据库中的表的方法和系统
CN102737033A (zh) * 2011-03-31 2012-10-17 国际商业机器公司 数据处理设备及其数据处理方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2150745C (en) * 1995-06-01 2001-05-01 Chaitanya K. Baru Method and apparatus for implementing partial declustering in a parallel database system
US6523040B1 (en) * 1999-06-24 2003-02-18 Ibm Corporation Method and apparatus for dynamic and flexible table summarization
US6804667B1 (en) * 1999-11-30 2004-10-12 Ncr Corporation Filter for checking for duplicate entries in database
WO2002048906A1 (en) * 2000-12-14 2002-06-20 Kapow Aps Query processor, query processor elements and a method of establishing such a query processor and query processor elements and a domain processor
US6795817B2 (en) * 2001-05-31 2004-09-21 Oracle International Corporation Method and system for improving response time of a query for a partitioned database object
US7024414B2 (en) * 2001-08-06 2006-04-04 Sensage, Inc. Storage of row-column data
US7249118B2 (en) * 2002-05-17 2007-07-24 Aleri, Inc. Database system and methods
DE602004024293D1 (de) * 2004-06-23 2010-01-07 Sap Ag System und Verfahren zur Datenverarbeitung
US7809142B2 (en) * 2007-06-19 2010-10-05 International Business Machines Corporation Data scrambling and encryption of database tables
US8396862B2 (en) * 2007-07-30 2013-03-12 Teradata Us, Inc. Product join dynamic partition elimination for multilevel partitioning
US9195657B2 (en) * 2010-03-08 2015-11-24 Microsoft Technology Licensing, Llc Columnar storage of a database index
US9336263B2 (en) 2010-06-04 2016-05-10 Yale University Data loading systems and methods
US8549004B2 (en) * 2010-09-30 2013-10-01 Hewlett-Packard Development Company, L.P. Estimation of unique database values
US8442988B2 (en) * 2010-11-04 2013-05-14 International Business Machines Corporation Adaptive cell-specific dictionaries for frequency-partitioned multi-dimensional data
US20120166402A1 (en) * 2010-12-28 2012-06-28 Teradata Us, Inc. Techniques for extending horizontal partitioning to column partitioning
US8880508B2 (en) 2010-12-30 2014-11-04 Sap Se Processing database queries using format conversion
US9965500B2 (en) 2011-12-12 2018-05-08 Sap Se Mixed join of row and column database tables in native orientation
US8782100B2 (en) * 2011-12-22 2014-07-15 Sap Ag Hybrid database table stored as both row and column store
US8768927B2 (en) * 2011-12-22 2014-07-01 Sap Ag Hybrid database table stored as both row and column store

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101685449A (zh) * 2008-09-26 2010-03-31 国际商业机器公司 一种用于连接多个异构分布式数据库中的表的方法和系统
CN102737033A (zh) * 2011-03-31 2012-10-17 国际商业机器公司 数据处理设备及其数据处理方法

Also Published As

Publication number Publication date
US9465843B2 (en) 2016-10-11
US20150074082A1 (en) 2015-03-12
US20130166534A1 (en) 2013-06-27
EP2608070A1 (en) 2013-06-26
US10346383B2 (en) 2019-07-09
US20190272265A1 (en) 2019-09-05
US20160378813A1 (en) 2016-12-29
US8918436B2 (en) 2014-12-23
CN103177056A (zh) 2013-06-26

Similar Documents

Publication Publication Date Title
CN103177056B (zh) 存储为行存储和列存储二者的混合数据库表
CN103177055B (zh) 存储为行存储和列存储二者的混合数据库表
CN103177058B (zh) 存储为行存储和列存储二者的混合数据库表
CN108536692A (zh) 一种执行计划的生成方法、装置及数据库服务器
US8924373B2 (en) Query plans with parameter markers in place of object identifiers
CN104750681A (zh) 一种海量数据的处理方法及装置
KR20170024039A (ko) 유연한 스키마를 사용한 데이터 관리
CN103970902A (zh) 一种大量数据情况下的可靠即时检索方法及系统
US10628421B2 (en) Managing a single database management system
CN115237937A (zh) 一种基于星际文件系统的分布式协同查询处理系统
Martin et al. Multi-temperate logical data warehouse design for large-scale healthcare data
US10977284B2 (en) Text search of database with one-pass indexing including filtering
Bog et al. Normalization in a mixed OLTP and OLAP workload scenario
US11947537B1 (en) Automatic index management for a non-relational database
Pokorny et al. Big graph storage, processing and visualization
Strate et al. Expert Performance Indexing in SQL Server
Bhattacharjee et al. Impliance: A next generation information management appliance
Song et al. A survey on hybrid transactional and analytical processing
Faltín Distributed Graph Query Engine Improvements for Big Data Graphs
Persson The shortcut index
CN113742346A (zh) 资产大数据平台架构优化方法
Alsubaiee Spatial indexing in the Era of Social Media
Tkachuk et al. Analysis Services Performance Guide

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: German Waldo

Applicant after: SAP AG

Address before: German Waldo

Applicant before: SAP AG

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: SAP AG TO: SAP EUROPE AG

SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant