CN103177058B - 存储为行存储和列存储二者的混合数据库表 - Google Patents
存储为行存储和列存储二者的混合数据库表 Download PDFInfo
- Publication number
- CN103177058B CN103177058B CN201210433383.2A CN201210433383A CN103177058B CN 103177058 B CN103177058 B CN 103177058B CN 201210433383 A CN201210433383 A CN 201210433383A CN 103177058 B CN103177058 B CN 103177058B
- Authority
- CN
- China
- Prior art keywords
- storage
- row
- data
- 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
Links
- 238000003860 storage Methods 0.000 title claims abstract description 158
- 238000000034 method Methods 0.000 claims description 44
- 238000000151 deposition Methods 0.000 claims description 3
- 239000000203 mixture Substances 0.000 abstract description 52
- 238000012545 processing Methods 0.000 abstract description 21
- 238000013500 data storage Methods 0.000 abstract description 20
- 238000005516 engineering process Methods 0.000 abstract description 15
- 238000003780 insertion Methods 0.000 abstract description 14
- 230000037431 insertion Effects 0.000 abstract description 14
- 238000001914 filtration Methods 0.000 abstract description 6
- 230000033228 biological regulation Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 17
- 238000005457 optimization Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000006116 polymerization reaction Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000005192 partition Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000009738 saturating Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (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 columnpartition)存储的数据。如上面提到的,与以行存储方向访问数据相比,以列存储方向访问数据是更加处理密集型的。
查询处理器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(klogn),其中,
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)类似的插入处理性能,尽管事实上混合表的全部数据位于列分区的数据存储中。这代表显著的增强,使混合数据库表的性能类似于传统的行存储方式的性能。
虽然上述讨论集中在使用可扩展的布隆过滤器来优化混合表的性能,但是本发明并不限于这个特定的过滤器类型。可以采用用于快值存在检查(fastvalue 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-relatedrecords)可以被相应地移出。在这里,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 QueriesUsing FormatConversion(使用格式转换处理数据库查询)”的第12/982,673号美国专利申请中详细公开,并且出于所有目的,其整体通过引用合并于此。
图11示出了基于转换的连接操作1100的简化示意图。特别是,这种方法对于分割表(split table)借用(leverage)列连接1102。行表作为分区。这种方法使用即时(on-the-fly)字典生成和字典缓存。
可以用于多个混合表的复杂搜索的可替换的技术是混合的连接操作,其访问以其原生(native)行存储方向或列存储方向存储的数据。这种原生混合连接方法在2011年12月12日提交的、题为“Mixed Join of Row and ColumnDatabase 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 (8)
1.一种用于混合数据库表的计算机实现的方法,包括:
在非临时性计算机可读存储介质中提供以应用层语言创建并且包含行分区的存储和列分区的存储的数据库;
提供数据移动管理器,该数据移动管理器配置以根据数据移动策略执行数据从行分区的存储至列分区的存储的移动;以及
当满足数据移动策略的条件时,使数据移动管理器自动地将记录从行分区的存储移动至列分区的存储,
进一步包括,维持行分区的存储的记录的用户访问统计,其中数据移动策略基于数据的用户访问频率,其中该条件包括在行分区的存储中的记录的数量超过定义的阈值。
2.根据权利要求1的计算机实现的方法,其中该访问统计包括行分区的存储的页面的访问计数。
3.根据权利要求1的计算机实现的方法,其中该数据移动策略基于业务语义。
4.根据权利要求3的计算机实现的方法,其中该条件包括参考表中的相关记录至列分区的存储的移动。
5.一种用于混合数据库表的计算机系统,包括:
一个或多个处理器;
软件程序,其能够在所述计算机系统上执行,该软件程序配置以:
提供数据移动管理器,该数据移动管理器配置以根据数据移动策略执行数据从数据库的行分区的存储至数据库的列分区的存储的移动,该数据库存储在非临时性计算机可读存储介质中;以及
当满足数据移动策略的条件时,使数据移动管理器自动地将记录从行分区的存储移动至列分区的存储,
进一步包括代码,其配置以维持行分区的存储的记录的用户访问统计,其中数据移动策略基于数据的用户访问频率,其中该条件包括行分区的存储中的记录的数量超过定义的阈值。
6.根据权利要求5的计算机系统,其中该访问统计包括行分区的存储的页面的访问计数。
7.根据权利要求5的计算机系统,其中该数据移动策略基于业务语义。
8.根据权利要求7的计算机系统,其中该条件包括参考表中的相关记录至列分区的存储的移动。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/334,777 | 2011-12-22 | ||
US13/334,777 US8782100B2 (en) | 2011-12-22 | 2011-12-22 | Hybrid database table stored as both row and column store |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103177058A CN103177058A (zh) | 2013-06-26 |
CN103177058B true CN103177058B (zh) | 2017-11-21 |
Family
ID=47178443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210433383.2A Active CN103177058B (zh) | 2011-12-22 | 2012-09-28 | 存储为行存储和列存储二者的混合数据库表 |
Country Status (3)
Country | Link |
---|---|
US (3) | US8782100B2 (zh) |
EP (1) | EP2608072A1 (zh) |
CN (1) | CN103177058B (zh) |
Families Citing this family (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8918436B2 (en) | 2011-12-22 | 2014-12-23 | Sap Ag | Hybrid database table stored as both row and column store |
US9305044B2 (en) * | 2013-07-18 | 2016-04-05 | Bank Of America, N.A. | System and method for modelling data |
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 |
US9489409B2 (en) | 2013-10-17 | 2016-11-08 | Sybase, Inc. | Rollover strategies in a N-bit dictionary compressed column store |
US9569481B1 (en) * | 2013-12-10 | 2017-02-14 | Google Inc. | Efficient locking of large data collections |
US9442913B2 (en) | 2014-01-30 | 2016-09-13 | International Business Machines Corporation | Using parallel insert sub-ranges to insert into a column store |
CN105408893B (zh) * | 2014-02-10 | 2019-04-26 | 华为技术有限公司 | 一种数据处理和写入方法及相关装置 |
US10055440B2 (en) | 2014-02-24 | 2018-08-21 | Sap Se | Database table re-partitioning using trigger-based capture and replay |
US10558571B2 (en) * | 2014-03-20 | 2020-02-11 | Sybase, Inc. | Second level database file cache for row instantiation |
US9870382B2 (en) | 2014-03-25 | 2018-01-16 | Sap Se | Data encoding and corresponding data structure |
US9454574B2 (en) | 2014-03-28 | 2016-09-27 | Sybase, Inc. | Bloom filter costing estimation |
US9009171B1 (en) * | 2014-05-02 | 2015-04-14 | Palantir Technologies Inc. | Systems and methods for active column filtering |
KR101679011B1 (ko) * | 2014-06-26 | 2016-11-24 | 주식회사 알티베이스 | 데이터베이스에서 데이터 이동을 처리하는 방법 및 장치 |
US9836507B2 (en) * | 2014-09-17 | 2017-12-05 | Futurewei Technologies, Inc. | Method and system for adaptively building a column store database from a temporal row store database based on query demands |
US10671594B2 (en) | 2014-09-17 | 2020-06-02 | Futurewei Technologies, Inc. | Statement based migration for adaptively building and updating a column store database from a row store database based on query demands using disparate database systems |
US9785660B2 (en) * | 2014-09-25 | 2017-10-10 | Sap Se | Detection and quantifying of data redundancy in column-oriented in-memory databases |
US10387395B2 (en) | 2014-11-03 | 2019-08-20 | Sap Se | Parallelized execution of window operator |
US9852184B2 (en) | 2014-11-03 | 2017-12-26 | Sap Se | Partition-aware distributed execution of window operator |
JP6398632B2 (ja) * | 2014-11-12 | 2018-10-03 | 日本電気株式会社 | 制御装置、分散データベースシステム、方法およびプログラム |
CN104537030B (zh) * | 2014-12-22 | 2018-03-02 | 华为技术有限公司 | 一种业务数据查询方法及装置、数据库系统 |
US20160253382A1 (en) * | 2015-02-26 | 2016-09-01 | Ori Software Development Ltd. | System and method for improving a query response rate by managing a column-based store in a row-based database |
US20160328429A1 (en) * | 2015-03-17 | 2016-11-10 | Cloudera, Inc. | Mutations in a column store |
EP3238106B1 (en) | 2015-03-17 | 2020-10-07 | Cloudera, Inc. | Compaction policy |
WO2016179574A1 (en) * | 2015-05-07 | 2016-11-10 | Cloudera, Inc. | Mutations in a column store |
US10303685B2 (en) | 2015-06-08 | 2019-05-28 | International Business Machines Corporation | Data table performance optimization |
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 |
US10346434B1 (en) * | 2015-08-21 | 2019-07-09 | Amazon Technologies, Inc. | Partitioned data materialization in journal-based storage systems |
US11403318B2 (en) | 2015-10-01 | 2022-08-02 | Futurewei Technologies, Inc. | Apparatus and method for managing storage of a primary database and a replica database |
US10127266B2 (en) * | 2015-11-03 | 2018-11-13 | International Business Machines Corporation | Scalable virtual namespace and semantic policy management for object storage |
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 |
US10552413B2 (en) | 2016-05-09 | 2020-02-04 | Sap Se | Database workload capture and replay |
US10298702B2 (en) | 2016-07-05 | 2019-05-21 | Sap Se | Parallelized replay of captured database workload |
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 |
WO2018192669A1 (en) * | 2017-04-21 | 2018-10-25 | Huawei Technologies Co., Ltd. | Data locking method based on alternating row and column locks |
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 |
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 |
US10747814B2 (en) * | 2017-09-29 | 2020-08-18 | Oracle International Corporation | Handling semi-structured and unstructured data in a sharded database environment |
US10769114B2 (en) * | 2017-12-14 | 2020-09-08 | Google Llc | Database syncing |
US20190034427A1 (en) * | 2017-12-28 | 2019-01-31 | Intel Corporation | Data management system employing a hash-based and tree-based key-value data structure |
US10698892B2 (en) | 2018-04-10 | 2020-06-30 | Sap Se | Order-independent multi-record hash generation and data filtering |
CN110413966A (zh) * | 2018-04-27 | 2019-11-05 | 富士施乐株式会社 | 文档管理设备和非暂时性计算机可读介质 |
US11379433B2 (en) * | 2018-05-25 | 2022-07-05 | Microsoft Technology Licensing, Llc | Persistent version storage for relational database management system |
US11449499B1 (en) * | 2018-08-16 | 2022-09-20 | Yellowbrick Data, Inc. | System and method for retrieving data |
US11157478B2 (en) | 2018-12-28 | 2021-10-26 | Oracle International Corporation | Technique of comprehensively support autonomous JSON document object (AJD) cloud service |
US11347705B2 (en) | 2019-04-02 | 2022-05-31 | Sap Se | Supporting scalable distributed secondary index using replication engine for high-performance distributed database systems |
CN112148691B (zh) * | 2019-06-27 | 2024-03-26 | 金世超 | 数据存储方法和数据存储引擎 |
US11068454B2 (en) * | 2019-09-23 | 2021-07-20 | Singlestore, Inc. | Method of performing transactional and analytical data processing using a data structure |
KR102102307B1 (ko) * | 2019-11-25 | 2020-04-20 | 주식회사 리얼타임테크 | 다수의 스토리지를 갖는 데이터베이스 관리시스템에서 블룸필터를 이용한 벡터화 기반의 스토리지 탐색 방법 |
US20210224856A1 (en) * | 2020-01-16 | 2021-07-22 | Walmart Apollo, Llc | Methods and apparatuses for determining the effectiveness of an advertisement campaign |
JP7452031B2 (ja) * | 2020-01-27 | 2024-03-19 | 富士通株式会社 | 情報処理装置,情報処理システム及びプログラム |
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 |
CN114356226B (zh) * | 2021-12-17 | 2024-07-16 | 广州文远知行科技有限公司 | 一种传感器数据存储方法、装置、设备及存储介质 |
US11941029B2 (en) | 2022-02-03 | 2024-03-26 | Bank Of America Corporation | Automatic extension of database partitions |
US11853239B2 (en) * | 2022-04-11 | 2023-12-26 | Western Digital Technologies, Inc. | Hardware accelerator circuits for near storage compute systems |
CN115599790B (zh) * | 2022-11-10 | 2024-03-15 | 星环信息科技(上海)股份有限公司 | 一种数据存储系统、数据处理方法、电子设备和存储介质 |
CN117216068A (zh) * | 2023-11-07 | 2023-12-12 | 本原数据(北京)信息技术有限公司 | 支持数据库混合负载的数据存储方法、装置及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6523040B1 (en) * | 1999-06-24 | 2003-02-18 | Ibm Corporation | Method and apparatus for dynamic and flexible table summarization |
CN101751406A (zh) * | 2008-12-18 | 2010-06-23 | 赵伟 | 一种实现基于列存储的关系型数据库的方法及装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7199809B1 (en) * | 1998-10-19 | 2007-04-03 | Symyx Technologies, Inc. | Graphic design of combinatorial material libraries |
US7024414B2 (en) * | 2001-08-06 | 2006-04-04 | Sensage, Inc. | Storage of row-column data |
US7356523B2 (en) * | 2002-05-23 | 2008-04-08 | International Business Machines Corporation | Dynamic optimization of prepared statements in a statement pool |
US7076508B2 (en) * | 2002-08-12 | 2006-07-11 | International Business Machines Corporation | Method, system, and program for merging log entries from multiple recovery log files |
US7421446B1 (en) * | 2004-08-25 | 2008-09-02 | Unisys Corporation | Allocation of storage for a database |
US7716446B1 (en) * | 2006-04-27 | 2010-05-11 | Vmware, Inc. | System and method for cooperative virtual machine memory scheduling |
US8671091B2 (en) * | 2006-08-02 | 2014-03-11 | Hewlett-Packard Development Company, L.P. | Optimizing snowflake schema queries |
US7792822B2 (en) * | 2007-03-02 | 2010-09-07 | Microsoft Corporation | Systems and methods for modeling partitioned tables as logical indexes |
US8396862B2 (en) * | 2007-07-30 | 2013-03-12 | Teradata Us, Inc. | Product join dynamic partition elimination for multilevel partitioning |
US7987192B2 (en) * | 2008-06-25 | 2011-07-26 | International Business Machines Corporation | Hybrid data model and user interaction for data sets in a user interface |
US8099440B2 (en) * | 2008-08-15 | 2012-01-17 | International Business Machines Corporation | Method for laying out fields in a database in a hybrid of row-wise and column-wise ordering |
US9336263B2 (en) * | 2010-06-04 | 2016-05-10 | Yale University | Data loading systems and methods |
US8170981B1 (en) * | 2010-12-08 | 2012-05-01 | Dassault Systemes Enovia Corporation | Computer method and system for combining OLTP database and OLAP database environments |
US20120166402A1 (en) * | 2010-12-28 | 2012-06-28 | Teradata Us, Inc. | Techniques for extending horizontal partitioning to column partitioning |
-
2011
- 2011-12-22 US US13/334,777 patent/US8782100B2/en active Active
-
2012
- 2012-09-17 EP EP12006520.6A patent/EP2608072A1/en not_active Ceased
- 2012-09-28 CN CN201210433383.2A patent/CN103177058B/zh active Active
-
2014
- 2014-06-09 US US14/299,843 patent/US9558258B2/en active Active
-
2016
- 2016-12-15 US US15/380,720 patent/US10664497B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6523040B1 (en) * | 1999-06-24 | 2003-02-18 | Ibm Corporation | Method and apparatus for dynamic and flexible table summarization |
CN101751406A (zh) * | 2008-12-18 | 2010-06-23 | 赵伟 | 一种实现基于列存储的关系型数据库的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US9558258B2 (en) | 2017-01-31 |
CN103177058A (zh) | 2013-06-26 |
US20130166554A1 (en) | 2013-06-27 |
US20170097977A1 (en) | 2017-04-06 |
US10664497B2 (en) | 2020-05-26 |
US20140304219A1 (en) | 2014-10-09 |
US8782100B2 (en) | 2014-07-15 |
EP2608072A1 (en) | 2013-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103177058B (zh) | 存储为行存储和列存储二者的混合数据库表 | |
CN103177056B (zh) | 存储为行存储和列存储二者的混合数据库表 | |
CN103177055B (zh) | 存储为行存储和列存储二者的混合数据库表 | |
US10983994B2 (en) | Partition access method for query optimization | |
US8924373B2 (en) | Query plans with parameter markers in place of object identifiers | |
US20140337287A1 (en) | Virtual repository management | |
US8843436B2 (en) | Systems and methods for performing direct reporting access to transaction databases | |
WO2018157680A1 (zh) | 一种执行计划的生成方法、装置及数据库服务器 | |
KR20170024039A (ko) | 유연한 스키마를 사용한 데이터 관리 | |
CN104750681A (zh) | 一种海量数据的处理方法及装置 | |
CN115237937A (zh) | 一种基于星际文件系统的分布式协同查询处理系统 | |
Martin et al. | Multi-temperate logical data warehouse design for large-scale healthcare data | |
CN113742346A (zh) | 资产大数据平台架构优化方法 | |
WO2017019889A1 (en) | Maintaining performance in the presence of insertions, deletions, and streaming queries | |
US20190034523A1 (en) | Text search of database with one-pass indexing including filtering | |
Strate et al. | Expert Performance Indexing in SQL Server | |
Persson | The shortcut index | |
Alsubaiee | Spatial indexing in the Era of Social Media |
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 SE 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 |