CN103870497A - 用于基于列的数据库的列智能机制 - Google Patents

用于基于列的数据库的列智能机制 Download PDF

Info

Publication number
CN103870497A
CN103870497A CN201210544711.6A CN201210544711A CN103870497A CN 103870497 A CN103870497 A CN 103870497A CN 201210544711 A CN201210544711 A CN 201210544711A CN 103870497 A CN103870497 A CN 103870497A
Authority
CN
China
Prior art keywords
affairs
database
row
oltp
speed cache
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.)
Granted
Application number
CN201210544711.6A
Other languages
English (en)
Other versions
CN103870497B (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.)
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
Priority to CN201210544711.6A priority Critical patent/CN103870497B/zh
Priority to US13/729,632 priority patent/US10108668B2/en
Priority to CA2824319A priority patent/CA2824319C/en
Priority to JP2013197953A priority patent/JP5819376B2/ja
Priority to EP20130005790 priority patent/EP2743839A1/en
Publication of CN103870497A publication Critical patent/CN103870497A/zh
Application granted granted Critical
Publication of CN103870497B publication Critical patent/CN103870497B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • 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/221Column-oriented storage; Management thereof

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Software Systems (AREA)

Abstract

本公开的实施例可以提供用于在数据库的基于列的存储部上处理在线事务处理(OLTP)事务的系统和方法。所述方法可以包括接收对访问基于列的存储部上的数据的OLTP事务的请求。可以确定与数据库相关联的高速缓存是否包括用于OLTP事务的列信息。如果高速缓存包括用于OLTP事务的列信息,则所述方法可以包括利用高速缓存中的列信息处理OLTP事务。如果高速缓存不包括用于OLTP事务的列信息,则所述方法可以包括从数据库的基于列的存储部选择列。

Description

用于基于列的数据库的列智能机制
技术领域
本公开一般涉及数据库,更具体来说,涉及用于基于列的数据库的列智能机制(column smart mechanism)。
背景技术
数据库界使用OLTP(Online Transactional Processing,在线事务处理)系统和OLAP(Online Analytical Processing,在线分析处理)系统。在面向事务的应用中通常使用OLTP系统,其中应用进行大量的短事务(例如,插入、更新、删除、选择)。在OLTP系统中,元素的列表被存储在盘上,并被高速缓存在数据库服务器的主存储器中。OLTP系统一般被用于面向行的关系数据库一起使用。
在面向分析的应用(例如,分析和财务策划应用)中通常使用OLAP系统,其中查询更为复杂。在OLAP系统中,使用字典将属性(attribute)压缩,并且可以进行多维查询。OLTP系统一般被用于面向列的关系数据库。
由于每种系统的优点所致,OLTP和OLAP系统传统上是分离的,并且应用被设计成支持一种环境或者另一种环境。但是近些年来,数据库界已经显示出对内存计算(in-memory computing)和并行计算技术的逐渐增长的兴趣。这些技术已经导致OLTP和OLAP系统被用在同一数据库上。例如,在同一基于列的内存数据库(例如,SAP
Figure BDA00002587966800011
HANA数据库)上已经采用了OLTP和OLAP事务。这些努力是受减少系统的复杂性和总成本的兴趣的驱使。
但是,因为OLTP和OLAP系统的每一个均被设计成在特定类型的数据库上高效地操作,所以在相同类型的数据库上既运行OLTP系统也运行OLAP系统可能具有某些缺点。例如,虽然在基于列的存储数据库上采用OLAP系统提供了提高的效率,但是在这样的数据库上采用OLTP系统与OLTP系统在传统的基于行的数据库上的性能相比并不提高效率。已经提出了改善OLTP系统在基于列的内存数据库上的性能的方法(例如,把计算逻辑下推到其可以被更快地执行的数据库层)。但是,即使利用这些方法,应用代码仍将包括从数据库访问所需数据的查询。
发明内容
根据本发明的另一个方面,提供一种方法,该方法包含:接收对访问数据库的基于列的存储部中的数据的在线事务处理(OLTP)事务的请求;如果高速缓存包括用于该OLTP事务的列信息,则利用高速缓存中的列信息处理OLTP事务;并且如果高速缓存不包括用于OLTP事务的列信息,则从数据库的基于列的存储部选择列。
根据本发明的另一个方面,提供一种存储一个或更多个被配置成由处理器运行的程序的非瞬态计算机可读存储介质,所述一个或更多个程序包含指令,用于:接收对访问数据库的基于列的存储部中的数据的在线事务处理(OLTP)事务的请求;确定与数据库相关联的高速缓存是否包括用于该OLTP事务的列信息;如果高速缓存包括用于该OLTP事务的列信息,则利用高速缓存中的列信息处理该OLTP事务,并且如果高速缓存不包括用于该OLTP事务的列信息,则从数据库的基于列的存储部选择列。
根据本发明的另一个方面,提供一种系统,该系统包含:一个或更多个处理器;以及存储器,用于存储一个或更多个供所述一个或更多个处理器运行的程序,所述一个或更多个程序包括指令,用于:接收对访问数据库的基于列的存储部中的数据的在线分析处理(OLAP)事务的请求;接收对访问数据库的基于列的存储部中的数据的在线事务处理(OLTP)事务的请求;确定与数据库相关联的高速缓存是否包括用于OLTP事务的列信息;如果高速缓存包括用于OLTP事务的列信息,在利用高速缓存中的列信息处理OLTP事务;如果高速缓存不包括用于OLTP事务的列信息,则从数据库的基于列的存储部选择列;高速缓存从数据库的基于列的存储部选择的列的名称或者列的索引;以及在将列的名称或者列的索引高速缓存之后,利用高速缓存中的列信息处理该OLTP事务。
附图说明
附图图示了各种实施例,并且与描述一起,进一步起到说明这些实施例的原理并使本领域技术人员做出和使用这些实施例的作用。
图1示出了用于产生馈送(feed)的过程的实施例。
图2示出了根据本公开的示范性实施例的用于处理对数据库的事务(transaction to database)的方法。
图3是示范性计算机系统的框图。
具体实施方式
本公开的实施例可以提供用于在数据库的基于列的存储部(acolumn-based storage of a database)上处理在线事务处理(OLTP)事务的系统和方法。所述方法可以包括接收访问所述基于列的存储部上的数据的OLTP事务的请求。可以对与数据库相关联的高速缓存是否包括用于OLTP事务的列信息做出确定。如果高速缓存包括用于OLTP事务的列信息,则所述方法可以包括利用高速缓存中的列信息处理OLTP事务。如果高速缓存不包括用于OLTP事务的列信息,则所述方法可以包括从所述数据库的基于列的存储部选择列。
本公开的实施例提供了一种智能的查询优化机制(smart queryoptimization mechanism),用于使发出的访问数据库中不必要的列信息的查询最少。这些实施例提供了在基于列的数据库(例如,SAP
Figure BDA00002587966800031
HANA数据库,但不限于此)上的OLTP事务的改善的性能。
图1示出了用于在数据库上实施OLTP和OLAP事务的系统的实施例。该系统可以包括发出OLAP事务112和OLTP事务114的应用110以及数据库120。根据本公开的各种实施例,OLTP和OLAP事务都可以被在包括基于列的存储部的数据库上以高效的方式处理,以便降低数据库的响应时间。例如,当在高速缓存中可获得用于OLTP事务的信息时,通过把OLTP事务配置成仅读取感兴趣的域(field),可以降低数据库的响应时间。
具体来说,通过具有学习模式(learning mode)和已学习模式(learnedmode),可以高效处理OLTP事务。在学习模式中,表的所有列都可以基于OLTP事务来选择,并且关于被选择列的信息可以被包括在高速缓存中。在已学习模式中,高速缓存中的信息可被用来处理OLTP事务。如果在高速缓存中可获得与OLTP事务相关联的信息,则学习模式可以被绕过。
应用程序110可以是通过OLAP事务112和/或OLTP事务114访问数据库120中的信息的应用。应用110可以访问数据库120来获取用于管理和/或为销售、客户关系、库存、运营、财务和人力资源提供支持的信息。应用110可以是整合机构信息的内部和外部管理的集成企业资源规划应用(例如,SAP
Figure BDA00002587966800041
Business One)。应用110可以从多个数据库120访问信息。多个应用110可以从一个或更多个数据库120访问信息。
数据库120可以是使用基于列的存储部的内存数据库(例如,SAP
Figure BDA00002587966800042
HANA数据库),但不限于此。数据库120可以是具有关系数据库引擎的关系数据库。通过保持数据靠近计算而非把数据存储在应用程序层或者在多个数据库之间发送数据,内存数据库可以允许较大数据集的更快计算。
数据库120可以包括按列存储关系数据的基于列的存储部122和按行存储关系数据的基于行的存储部124。在一个实施例中,数据库120可以只包括基于列的存储部122。基于列的存储部122可以允许列的值被存储在连续的存储器位置中,并且基于行的存储部可以允许表被作为一系列记录存储在一个行中。
通过由一个或更多个应用110实施的不同接口,可以访问数据库120中的数据。接口可以包括SQL、MDX和BICS,但不限于此。应用110可以使用可获得的接口发出请求。该请求可以是OLTP事务和/或OLAP事务。该请求可能将要访问数据库120中的某些数据,或者对数据库120中的数据执行计算或者分析。可以在数据库120中执行响应于来自应用110的请求的计算或者分析,不把数据移动到应用层中。
数据库120可以包括存储数据和/或关于数据库120中的数据的信息的高速缓存126(例如,数据库110的存储器)。如图1中所示,高速缓存126不一定是数据库的一部分,而是可以与数据库120分离。高速缓存126可以保持近来参考过的来自访问数据库120的请求的信息。高速缓存126允许这些信息被保持得靠近处理器。高速缓存可以用来响应于访问数据库120中的数据的请求,存储数据和/或关于数据库120中的数据的信息。列高速缓存126可被用于多个数据库120。
基于列的存储部122提供了要被存储在数据库120中的信息的增大的密度。访问基于列的存储部122中的数据的请求导致更多的信息被加载到高速缓存126中供一次处理。因此,与在基于行的存储部124中的请求相比,可以需要更少的从基于列的存储部122到高速缓存126的加载动作。但是,每一次在基于列的存储部122中访问数据时,表的所有列都被选择。因此,即使与该请求不相关的列也可能被选择并取回到高速缓存中。因为这样的查询包括与该请求不相关的列,所以它们可能增大数据库120的响应时间。响应时间将随着大量的列显著地增大。
例如,一个查询可能请求添加产品的销售订单。对于这样的查询,需要来自数据库的产品的信息。该查询将使用例如“SELECT*FROM[PRODUCTNAME]”向数据库120请求该产品的整个记录。虽然为了添加销售订单可能只需要单价和重量列,但是记录可能包括对于销售订单来说并不需要的产品信息(例如,产品说明书者制造计划)。这样的请求在基于行的存储部124中可能是可接受的,但是在基于列的存储部122中可能显著增加响应时间,因为对于基于列的存储部,时间成本对查询的列计数很敏感。
访问数据库120的查询可以被处理,以确定高速缓存126是否包括用于该查询的列信息。高速缓存126中所包括的列信息可以通过查询优化机制确定,所述查询优化机制学习并高速缓存来自一个或更多个先前的事务的列数据(例如,域名称和/或索引)。如果高速缓存包括用于该查询的列信息,则该查询无需被处理以访问数据库120的所有列。因此,不必要的列不需要随着每一个查询被访问。当高速缓存不包括查询所需的列信息时,可以响应于该查询而访问数据库120。
图2示出了根据本公开的示范性实施例的处理对数据库的事务的方法。方法200可以在被配置成在具有基于列的存储部的内存数据库(例如,SAP
Figure BDA00002587966800051
HANA数据库)上处理OLAP和OLTP事务的系统上实施。所述方法可以包括:接收对事务的请求(块210)、确定高速缓存是否包括用于该事务的列信息(块220),如果高速缓存不包括用于该事务的列信息,则进入学习模式(块230),如果高速缓存包括用于该事务的列信息,则进入已学习模式(块240)。在学习模式中,方法200可以包括选择列(块232)和高速缓存在该事务中使用的列的名称和/或索引(块234)。在已学习模式中,方法200可以包括优化该事务以选择高速缓存中的列(块242)。
对事务的请求(块210)可以是用户通过启动事务的应用做出的请求。可以在应用层发出该请求。该事务可以是访问一个或更多个数据库(例如,具有基于列的存储部的数据库)中的数据的OLTP事务或者OLAP事务。可以确定所请求的事务是否是OLTP事务(块212)。如果该请求不是OLTP事务(例如是OLAP事务),则对事务的请求可以被处理(块214)。如果该请求是针对OLTP事务,则OLTP事务可被处理,以确定高速缓存是否包括用于该事务的列信息(块220)。对事务的请求可以包括对多个事务的请求,并且每一事务可以被个别处理,或者被作为一批事务来处理。
OLTP事务可能以大量短事务(例如,选择、删除、插入、更新)为特征。例如,OLTP事务可以包括添加销售订单或者客户信息,但是不限于此。响应于对事务的请求,查询可被发出以加载被查询的数据和/或数据对象。
如果该请求是OLTP事务,则可以确定与数据库相关联的高速缓存是否包括用于该事务的列信息(块220)。高速缓存可以包括被加载到高速缓存中供处理的信息。高速缓存可以包括与特定查询不相关的列。高速缓存中的信息可以是响应于一个或更多个在先查询而被加载的信息。高速缓存中的信息(例如,表域名称和/或索引)可以被与OLTP事务所需要的信息进行比较。确定高速缓存是否包括该事务所需要的信息(块220)可以包括把该事务和/或请求的查询与系统处理过的先前的事务和/或查询进行比较。高速缓存可以包括先前处理过的事务和/或查询的类型。
如果OLTP事务所需要的信息未被包括在高速缓存中,则可以进入学习模式(块230)。在学习模式中,可以基于OLTP事务选择表的列(块232)。该选择可以响应于选择表的所有列的查询(例如,SELECT*)。该选择可被向多个表做出,并且,表中的所有列都可以被选择。在OLTP事务中使用的列的名称和/或索引可以被高速缓存(块234),和/或被与OLTP事务相关联。响应于该查询选择的所有的列名称和/或索引都可以被高速缓存(块234)和/或被与OLTP事务相关联。
如果OLTP事务所需要的信息被包括在高速缓存中,则可以进入已学习模式(块240)。在已学习模式中,因为在高速缓存中已经提供了与OLTP事务相关联的信息,所以不需要处理查询以便从数据库取回数据(例如,必要的数据和不必要的数据)。对数据库的这样的查询(例如,SELECT*)将花费不必要的时间,并选择OLTP事务可能不需要的列。进入已学习模式,通过采用在高速缓存中提供的信息降低了时间成本和计算成本。在已学习模式中,可以基于在高速缓存中可获得的信息处理OLTP事务。
在已学习模式中,所述方法可以包括优化OLTP事务的查询(块242)。优化OLTP事务的查询可以包括在查询被运行之前优化查询,使得只有被高速缓存的列和/或只有事务所需要的列被查询。
优化查询可以包括重写查询。可以基于先前事务的运行来重写查询。被重写的查询可以使用与原始查询将会提供的数据结构相同的数据结构来提供结果。例如,当在特定事务(例如,添加销售订单)中运行查询“SELECT*FROM Table1 WHERE KEY=”时,该查询可以基于先前的事务(例如,在学习模式中运行的事务)取回该事务所需要的表1的全部的列信息而无需取回表1的所有列。原始查询可以被重写成例如“SELECT Col1,Col2…,FROMTable1 WHERE KEY=”,其中,Col1、Col2是该事务所需要的列。被重写的查询可以被发送到数据库管理系统(database management system,DBMS)。为了兼容(例如,与现有业务逻辑层兼容),被重写的查询可以利用与原始查询将会利用其返回结果的数据结构相同的数据结构来返回结果。事务所需要的列可被来自DBMS的数据填充,并且事务不需要的列可以被其他值(例如,伪值、缺省值或者随机值)填充。利用相同数据结构提供结果允许改善各个层(例如,业务逻辑层)中的性能而不改变这些层。在如ERP系统的系统中,这些层中的一些非常大,并且会显著增大改变所需的时间和/或成本。
在已学习模式中,可以包括进入学习模式的选项(块244)。当处于已学习模式中时,如果确定在高速缓存中不存在对某个列的访问,则可以进入学习模式。当做出OLTP事务的查询的优化(块242)时,可以做出该确定。响应于在高速缓存中缺失信息,可以自动执行从已学习模式切换到学习模式。在学习模式中,表的所有列都可以被查询,并且可以利用已访问的列刷新高速缓存。
某些实施例可以包括上述方法被写成一个或更多个软件组件。这些组件,以及与每一个相关联的功能,可以被客户端、服务器、分布式或者对等计算机系统使用。这些组件可以用对应于一个或更多个编程语言的计算机语言书写,例如功能性语言、说明性语言、过程语言、面向对象语言、低级语言,等等。它们可以通过各种应用编程接口被链接到其他组件,然后被汇编为用于服务器或者客户端的一个完整应用。或者,这些组件可以在服务器和客户端应用中被实施。此外,这些组件可以通过各种分布式编程协议被链接在一起。某些示范性实施例可以包括远程过程调用,用来跨越分布式编程环境实施这些组件中的一个或更多个。例如,逻辑层可以驻留在第一计算机系统上,第一计算机系统远离包含接口层(例如,图形用户接口)的第二计算机系统。这些第一和第二计算机系统可以被以服务器-客户端、对等、或者某种其他结构来配置。客户端在复杂性上可以变化,从移动和手持设备到瘦客户端,继而到厚客户端乃至其他服务器。
上面说明的软件组件被有形地存储在计算机可读存储介质上作为指令。术语“计算机可读存储介质”应该被认为包括存储一个或更多个指令集的单个介质或者多个介质。术语“计算机可读存储介质”应该被认为包括任何能够经过一组物理变化以便物理地存储、编码或者以其他方式携带供计算机系统运行的指令集的物品,所述指令集导致计算机系统执行这里描述、表示或者图示的方法或者过程步骤中的任何一个。计算机可读存储介质的例子包括但不限于:磁性介质,例如硬盘、软盘和磁带;光学介质,例如CD-ROM、DVD和全息器件;磁光介质;和被专门配置成存储和运行的硬件设备,例如专用集成电路(“ASIC”)、可编程逻辑器件(“PLD”)以及ROM和RAM器件。计算机可读指令的例子包括机器码,例如由编译器产生的机器码,以及包含由计算机使用解释器运行的高级代码的文件。例如,本公开的实施例可被使用Java、C++或者其他面向对象编程语言和开发工具来实施。本公开的其他实施例可被实施在硬连线的电路中,代替机器可读软件指令或者与其结合。
图3是示范性计算机系统300的框图。计算机系统300包括处理器305,处理器305运行存储在计算机可读存储介质355上的软件指令或者代码以便执行上面说明的本公开的方法。计算机系统300包括从计算机可读存储介质355读取指令并把指令存储在存储器310或者随机访问存储器(RAM)315中的介质读取器340。存储器310提供了用于保持静态数据的大空间,其中至少可以存储一些指令供以后运行。存储的指令可以被进一步汇编以产生指令的其他表示,并可以被动态地存储在RAM 315中。处理器305从RAM 315读取指令,并按指令执行动作。根据本公开的一个实施例,计算机系统300还包括输出设备325(例如,显示器)和输入设备330,输出设备325用于向用户提供执行结果的至少一些作为输出,包括但不限于视觉信息,输入设备330用于给用户或者其他设备提供输入数据和/或以其他方式与计算机系统300交互作用的手段。这些输出设备325和输入设备330的每一个可以与一个或更多个另外的外围设备结合,以便进一步扩展计算机系统300的能力。可以提供网络通信器335以便把计算机系统300连接到网络350,并进而连接到与网络350连接的其他设备,例如包括其他的客户端、服务器、数据仓库和接口。计算机系统300的模块通过总线345互连。计算机系统300包括访问数据源360的数据源接口320。可以通过在硬件或者软件中实施的一个或更多个抽象层访问数据源360。例如,数据源360可被网络350访问。在某些实施例中,可以通过例如语义层的抽象层访问数据源360。
数据源是一种信息源。数据源包括实现数据存储和检索的数据的来源。数据源可以包括数据库,例如关系数据库、事务数据库、层级数据库、多维数据库(例如,OLAP)、面向对象的数据库,等等。此外,数据源包括表列数据(例如,电子表格、定界(delimited)文本文件)、以标记语音标记的数据(例如,XML数据)、事务数据、非结构化数据(例如,文本文件、屏幕抓取)、层级数据(例如,文件系统中的数据、XML数据)、文件、多个报告,以及可通过已制定的由底层软件系统(例如,ERP系统)等产生的协议访问的任何其他数据源,所述协议例如开放数据库连接(Open DataBaseConnectivity,ODBC)。数据源也可以包括其中数据未被有形地存储或者是瞬时的数据源,例如数据流、广播数据,等等。这些数据源可以包括相关联的数据基础、语义层、管理系统、安全系统,诸如此类。
语义层是叠加一个或更多个数据源的抽象。对于用户来说,其去除了当写查询时掌握现有查询语音的各种细微之处的需要。所提供的抽象包括数据源的元数据描述。元数据可以包括对于用户来说有意义的术语,代替数据源所使用的逻辑或者物理描述。例如,常见的业务术语代替表和列名称。这些术语可以被本地化和/或特定于领域。层可以包括与底层数据相关联的允许其自动制定用于对底层数据源运行的查询的逻辑。该逻辑包括到数据源的连接,用于数据源的结构和数据源的方面。某些语义层可以被公布,使得其可以被很多客户端和用户共享。某些语义层在对应于底层数据源的结构的粒度或者在语义层实施安全性。语义层的具体形式包括描述底层数据源并利用底层数据定义维度、属性和度量的数据模型对象。对象可以代表维度成员之间的关系,提供与底层数据相关联的计算。
在上面的描述中,为了提供对本公开实施例的透彻理解给出了许多具体细节。但是本领域技术人员将发现,无需这些具体细节中的一个或更多个,或者利用其他的方法、组件、技术等能够实践各种实施例。在其他的实例中,为了避免模糊本公开的方面,公知的操作或者结构未被示出或详细描述。
尽管这里示出和描述的过程包括一系列步骤,但是将会理解,本公开的不同实施例不受所示出的步骤的顺序限制,因为某些步骤可以按不同顺序出现,某些与这里示出和描述的步骤之外的其他步骤同时发生。此外,为了实施根据本公开的方法,并不要求全部示出的步骤。而且,将会理解,过程可以被与这里示出和描述的装置和系统相关联地以及与其他未被示出的系统相关联地实施。
本公开实施例的上述描述和图示,包括在摘要中所描述的,并非旨在彻底穷尽或者把实施例限于所公开的精确形式。虽然在这里为了说明的目的描述实施例的具体实施例和例子,但是本领域技术人员将会发现,在本公开的范围内,各种等同的修改是可能的。考虑到上面的详细描述,可以对实施例做出这些修改。相反,本公开的范围要由所附权利要求确定,要依据已确立的权利要求构造准则来解释所附权利要求。

Claims (20)

1.一种方法,包含:
接收对访问数据库的基于列的存储部中的数据的在线事务处理(OLTP)事务的请求;
如果高速缓存包括用于该OLTP事务的列信息,则利用高速缓存中的列信息处理OLTP事务;并且
如果高速缓存不包括用于OLTP事务的列信息,则从数据库的基于列的存储部选择列。
2.如权利要求1所述的方法,其中,高速缓存与数据库相关联,并且所述方法还包含确定高速缓存是否包括用于OLTP事务的列信息。
3.如权利要求1所述的方法,还包含接收对访问数据库的基于列的存储部中的数据的在线分析处理(OLAP)事务的请求。
4.如权利要求1所述的方法,其中,从数据库的基于列的存储部选择列包括选择具有与该OLTP事务相关联的列的表的所有列。
5.如权利要求4所述的方法,其中,从数据库的基于列的存储部选择的列包括该OLTP事务所需要的至少一列,以及该事务不需要至少一列。
6.如权利要求1所述的方法,其中,高速缓存包括来自至少一个先前的请求的列信息。
7.如权利要求1所述的方法,还包含高速缓存从数据库的基于列的存储部选择的列的名称或者列的索引。
8.如权利要求1所述的方法,还包含:
高速缓存从数据库的基于列的存储部选择的列的名称或者列的索引;和
在把列的名称或者列的索引高速缓存之后,利用高速缓存中的列信息处理该OLTP事务。
9.如权利要求1所述的方法,其中,利用高速缓存中的列信息处理OLTP事务包括优化OLTP事务以访问高速缓存中而非数据库中的列信息。
10.如权利要求2所述的方法,其中,确定与数据库相关联的高速缓存是否包括用于OLTP事务的列信息包括:将该OLTP事务与先前处理过的OLTP事务进行比较。
11.一种存储一个或更多个被配置成由处理器运行的程序的非瞬态计算机可读存储介质,所述一个或更多个程序包含指令,用于:
接收对访问数据库的基于列的存储部中的数据的在线事务处理(OLTP)事务的请求;
确定与数据库相关联的高速缓存是否包括用于该OLTP事务的列信息;
如果高速缓存包括用于该OLTP事务的列信息,则利用高速缓存中的列信息处理该OLTP事务;并且
如果高速缓存不包括用于该OLTP事务的列信息,则从数据库的基于列的存储部选择列。
12.如权利要求11所述的计算机可读存储介质,还包含指令,用于接收对访问数据库的基于列的存储部中的数据的在线分析处理(OLAP)事务的请求。
13.如权利要求11所述的计算机可读存储介质,其中,从数据库的基于列的存储部选择列包括:选择具有与该OLTP事务相关联的列的表的所有列。
14.如权利要求13所述的计算机可读存储介质,其中,从数据库的基于列的存储部选择的列包括该OLTP事务所需要的,以及该事务不需要的至少一列。
15.如权利要求11所述的计算机可读存储介质,其中,高速缓存包括来自至少一个先前的请求的列信息。
16.如权利要求11所述的计算机可读存储介质,还包含指令,用于高速缓存从数据库的基于列的存储部选择的列的名称或者列的索引。
17.如权利要求11所述的计算机可读存储介质,还包含指令,用于:
高速缓存从数据库的基于列的存储部选择的列的名称或者列的索引;和
在将列的名称或者列的索引高速缓存之后,利用高速缓存中的列信息处理该OLTP事务。
18.如权利要求11所述的计算机可读存储介质,其中,利用高速缓存中的列信息处理OLTP事务包括:优化该OLTP事务以访问高速缓存中而非数据库中的列信息。
19.如权利要求11所述的计算机可读存储介质,其中,确定与数据库相关联的高速缓存是否包括用于该OLTP事务的列信息包括:将该OLTP事务与先前处理过的OLTP事务进行比较。
20.一种系统,包含:
一个或更多个处理器;以及
存储器,用于存储一个或更多个供所述一个或更多个处理器运行的程序,所述一个或更多个程序包括指令,用于:
接收对访问数据库的基于列的存储部中的数据的在线分析处理(OLAP)事务的请求;
接收对访问数据库的基于列的存储部中的数据的在线事务处理(OLTP)事务的请求;
确定与数据库相关联的高速缓存是否包括用于OLTP事务的列信息;
如果高速缓存包括用于OLTP事务的列信息,在利用高速缓存中的列信息处理OLTP事务;
如果高速缓存不包括用于OLTP事务的列信息,则从数据库的基于列的存储部选择列;
高速缓存从数据库的基于列的存储部选择的列的名称或者列的索引;以及
在将列的名称或者列的索引高速缓存之后,利用高速缓存中的列信息处理该OLTP事务。
CN201210544711.6A 2012-12-14 2012-12-14 用于基于列的数据库的列智能机制 Active CN103870497B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201210544711.6A CN103870497B (zh) 2012-12-14 2012-12-14 用于基于列的数据库的列智能机制
US13/729,632 US10108668B2 (en) 2012-12-14 2012-12-28 Column smart mechanism for column based database
CA2824319A CA2824319C (en) 2012-12-14 2013-08-19 Column smart mechanism for column based database
JP2013197953A JP5819376B2 (ja) 2012-12-14 2013-09-25 列ベースのデータベースに対する列スマートな機構
EP20130005790 EP2743839A1 (en) 2012-12-14 2013-12-12 Column caching mechanism for column based database

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210544711.6A CN103870497B (zh) 2012-12-14 2012-12-14 用于基于列的数据库的列智能机制

Publications (2)

Publication Number Publication Date
CN103870497A true CN103870497A (zh) 2014-06-18
CN103870497B CN103870497B (zh) 2019-03-12

Family

ID=50909038

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210544711.6A Active CN103870497B (zh) 2012-12-14 2012-12-14 用于基于列的数据库的列智能机制

Country Status (1)

Country Link
CN (1) CN103870497B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104537030A (zh) * 2014-12-22 2015-04-22 华为技术有限公司 一种业务数据查询方法及装置、数据库系统
CN107111628A (zh) * 2014-10-31 2017-08-29 微软技术许可有限责任公司 在存储器优化表上的列储存库索引的有效维持

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101828182A (zh) * 2007-09-21 2010-09-08 哈索-普拉特纳-研究所软件系统有限责任公司 报告oltp数据的无etl零冗余系统和方法
CN102591910A (zh) * 2010-12-08 2012-07-18 达索系统艾诺维亚公司 用于组合oltp数据库和olap数据库环境的计算机方法和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101828182A (zh) * 2007-09-21 2010-09-08 哈索-普拉特纳-研究所软件系统有限责任公司 报告oltp数据的无etl零冗余系统和方法
CN102591910A (zh) * 2010-12-08 2012-07-18 达索系统艾诺维亚公司 用于组合oltp数据库和olap数据库环境的计算机方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KEMPER, ALFONS 等: "HyPer: A Hybrid OLTP&OLAP Main Memory Database System Based on Virtual Memory Snapshot", 《ICDE CONFERENCE》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107111628A (zh) * 2014-10-31 2017-08-29 微软技术许可有限责任公司 在存储器优化表上的列储存库索引的有效维持
CN104537030A (zh) * 2014-12-22 2015-04-22 华为技术有限公司 一种业务数据查询方法及装置、数据库系统
CN104537030B (zh) * 2014-12-22 2018-03-02 华为技术有限公司 一种业务数据查询方法及装置、数据库系统

Also Published As

Publication number Publication date
CN103870497B (zh) 2019-03-12

Similar Documents

Publication Publication Date Title
JP5819376B2 (ja) 列ベースのデータベースに対する列スマートな機構
US11176132B2 (en) Processing database queries using format conversion
US20200226151A1 (en) System and method for supporting queries having sub-select constructs in a multidimensional database environment
US20230084389A1 (en) System and method for providing bottom-up aggregation in a multidimensional database environment
Carey et al. Data-Centric Systems and Applications
US20220138226A1 (en) System and method for sandboxing support in a multidimensional database environment
US9626411B1 (en) Self-described query execution in a massively parallel SQL execution engine
US7849114B2 (en) Method, system, and program product for generating a virtual database
CN110674228A (zh) 数据仓库模型构建和数据查询方法、装置及设备
JP2020512641A (ja) 多次元データベース環境において1回のスキャンでロード、集約、およびバッチ計算を行なうためのシステムおよび方法
US20110313969A1 (en) Updating historic data and real-time data in reports
US10366079B1 (en) Enterprise connectivity
CN106815353A (zh) 一种数据查询的方法及设备
US10095738B1 (en) Dynamic assignment of logical partitions according to query predicate evaluations
Maccioni et al. QUEPA: QUerying and exploring a polystore by augmentation
CN103870497A (zh) 用于基于列的数据库的列智能机制
Scholz Coping with Dynamic, Unstructured Data Sets–NoSQL a Buzzword or a Savior?
Atzeni et al. Data modeling across the evolution of database technology
Manivannan et al. Artificial intelligence databases: turn-on big data of the SMBs
Chmiel et al. Multiversion join index for multiversion data warehouse
Bog et al. Normalization in a mixed OLTP and OLAP workload scenario
Silva et al. Logical big data integration and near real-time data analytics
Bog et al. Enterprise Data Management for Transaction and Analytical Processing
Van Der Lans Data replication for enabling operational bi
Grimes MySQL V5-Ready for Prime Time Business Intelligence

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
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

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