CN111164585B - 对外部驻留数据执行存储器中列分析查询 - Google Patents

对外部驻留数据执行存储器中列分析查询 Download PDF

Info

Publication number
CN111164585B
CN111164585B CN201880063168.3A CN201880063168A CN111164585B CN 111164585 B CN111164585 B CN 111164585B CN 201880063168 A CN201880063168 A CN 201880063168A CN 111164585 B CN111164585 B CN 111164585B
Authority
CN
China
Prior art keywords
data
memory
external data
dictionary
dbms
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
CN201880063168.3A
Other languages
English (en)
Other versions
CN111164585A (zh
Inventor
R·麦克尼科尔
X·华
A·霍洛伟
S·查万
J·卡普
M·科尔根
T·拉希里
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
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 Oracle International Corp filed Critical Oracle International Corp
Priority to CN202310919185.5A priority Critical patent/CN116955316A/zh
Publication of CN111164585A publication Critical patent/CN111164585A/zh
Application granted granted Critical
Publication of CN111164585B publication Critical patent/CN111164585B/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/221Column-oriented storage; 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/21Design, administration or maintenance of databases
    • 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/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • 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/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • 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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • 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/248Presentation of query results
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases

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)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本文中的技术使用存储器中列向量来处理数据库管理系统(DBMS)外部的数据,并将外部数据与DBMS本机的数据进行逻辑联接。在实施例中,计算机为持久存储在DBMS中的本机数据和未持久存储在DBMS中的外部数据维护数据字典。计算机通过与DBMS的连接从客户端接收查询。计算机将外部数据加载到驻留在DBMS的随机存取存储器中的存储器中列向量中。基于查询和数据字典,DBMS执行存储器中列向量与本机数据的数据联接。计算机通过所述连接向客户端返回基于数据联接的查询结果。

Description

对外部驻留数据执行存储器中列分析查询
技术领域
本公开涉及数据库集成。本文提出的技术用于使用存储器中(in-memory)列向量来处理关系数据库管理系统(RDBMS)外部的数据,以及将外部数据与RDBMS本机的关系表数据进行逻辑联接。
背景技术
企业数据库用户的重要业务用例需要集成数据竖井(silo),诸如RDBMS中的公司数据(例如销售记录)和临时数据,诸如Hadoop分布式文件系统(HDFS)中的点击流。例如,会计师可能需要集成来自两个竖井的数据的报告。数据科学家可能想要编写集成来自两个竖井的数据的诸如利用在线分析处理(OLAP)的探索性查询。但是,提取/传输/加载(ETL)工具远远不是无缝的,并且可能需要各种自定义脚本和适配器来完成任何可能有助于集成的暂存(staging)和重新格式化。例如,ETL通常需要实际上将外部数据复制到关系数据库表中,以使数据可被查询访问。
由于外部数据(例如大数据)的潜在价值,尤其是与关系数据相关联时,ETL的花费通常是值得的。大数据具有内在价值,但必须发现它。存在从数据中获取价值的多种定量和调查技术,从发现消费者的偏好或情绪,到按地点提供相关报价,或用于识别将要发生故障的装备。技术上的突破是数据存储和计算的成本呈指数下降,从而产生了大量数据,从这些大量数据来对整个数据集进行统计分析是可能的。采样对于可行性不再是必要的。该技术突破使得能够进行准确和精确得多的决策。但是,寻找价值还需要新的发现流程,其中涉及聪明而有见识的分析师、业务用户和执行人员。例如,一个大数据挑战是人类挑战,该挑战是学习提出正确的问题、识别模式、做出有见识的假设并预测行为。
但是,由于一些原因,ETL可能不适用于大数据。一个问题是大数据量很大。虽然量表明更多数据,但数据的粒度性质是唯一的。大数据可能需要处理大量低密度、非结构化的Hadoop数据(价值未知的数据,诸如行情数据馈送、网页和移动应用上的点击流、网络流量、启用传感器的装备以光速捕获的数据,以及更多其他数据)。诸如Apache Hive之类的Hadoop数据仓库工具可能在某种程度上有所帮助。但是,虽然由于Hive和RDBMS都接受结构化查询语言(SQL),所以它们可能看起来相似,但是两者之间延迟的巨大差异意味着它们可能永远无法相互替代。
新的非结构化数据类型可能是另一个大数据的问题。非结构化和半结构化数据类型,诸如文本、音频和视频,需要进行额外的处理才能导出含义和支持的元数据。一旦被理解,非结构化数据与结构化数据具有许多相同的要求,诸如汇总、链接、可审核性和隐私性。当来自已知来源的数据发生更改而没有通知时,会出现进一步的复杂性。频繁或实时的模式更改对于事务和分析环境都是巨大的负担。列存储库(诸如Apache Cassandra)在某种程度上可能有所帮助,但不适合与RDBMS集成。
临时数据通常在与关系数据联接之前经过几轮的映射/缩减(map/reduce)(例如Hadoop)处理来实现缩减形式。有一个选择是在每次映射/缩减作业的结果被联接时使用慢速外部表扫描,或者使用空间将外部数据导入到关系数据库表(例如,Oracle堆表)中,并在表内容在映射/缩减作业下次运行时将被截断时不必要地生成重做(redo)。因此,存储占用空间和重做生成可能降低异构数据仓库集成的性能。
发明内容
本公开提供了对外部驻留数据执行存储器中列分析查询的方法、介质和设备。
本公开的一些实施例涉及一种方法,包括:维护全局数据字典,全局数据字典包含以下各项的描述:持久存储在数据库管理系统DBMS中的本机数据,以及未持久存储在DBMS中的外部数据;基于全局数据字典将外部数据加载到驻留在DBMS的随机存取存储器中的存储器中列向量中,其中加载外部数据包括对外部数据进行字典编码;在加载外部数据和对外部数据进行字典编码之后,通过与DBMS的连接从客户端接收查询;基于全局数据字典和存储器中列向量来执行查询,其中执行查询包括对存储器中列向量中的外部数据执行一个或多个基于向量的数据库操作;以及通过连接向客户端返回查询的结果;其中该方法由一个或多个计算机执行。
附图说明
在附图中:
图1是描绘实施例中的示例计算机的框图,该示例计算机使用数据库管理系统(DBMS)将本机数据联接到外部数据的存储器驻留列向量;
图2是描绘实施例中的用于使用DBMS将本机数据联接到外部数据的存储器驻留列向量的示例处理的流程图;
图3是描绘实施例中的示例RDBMS的框图,该示例RDBMS在关系联接期间使用相同的编码字典来处理本机和外部数据;
图4是描绘实施例中的示例计算机内的交互的场景图,该示例计算机保留加载的存储器中列向量用于重复使用;
图5是描绘实施例中的示例计算机的框图,该示例计算机聚合多个存储器中列向量以形成存储器中表;
图6是描绘实施例中的可以刷新外部数据的示例计算机的框图;
图7是描绘实施例中的列的外部数据的示例生命周期的状态图;
图8是描绘实施例中的示例计算机集群的框图,该计算机集群包含比单个数据库服务器可以加载的分布式数据更多的分布式数据;
图9是描绘实施例中的示例RDBMS的框图,该示例RDBMS包含用于加速的向量处理器;
图10是描绘实施例中的具有包括存储器中列向量的恢复的示例RDBMS的框图;
图11是图示可以在其上实现本发明的实施例的计算机系统的框图;
图12是图示可以用于控制计算系统的操作的基本软件系统的框图。
具体实施方式
在下面的描述中,出于解释的目的,阐述了许多具体细节以便提供对本发明的透彻理解。但是,将明显的是,可以在没有这些具体细节的情况下实践本发明。在其它情况下,以框图形式示出了众所周知的结构和设备,以避免不必要地使本发明模糊。
本文根据以下概要描述各实施例:
1.0 总体概述
2.0 示例计算机
2.1 随机存取存储器
2.2 本机数据
2.3 DBMS
2.4 外部数据
2.5 存储器中列向量
2.6 全局数据字典
2.7 数据联接
3.0 示例联接处理
3.1 配置
3.2 查询
3.3 加载
3.4 联接
4.0 压缩
4.1 共享编码字典
4.2密集键(Dense Key)
4.3 辅助数据
4.4 封装
5.0 保留
5.1 物化视图
6.0 存储器中表
7.0 刷新
8.0 列生命周期
9.0 分布式分区
10.0 SIMD
11.0 恢复检查点
12.0 硬件概述
13.0 软件概述
14.0 云计算
1.0 总体概述
提供了使用存储器中列向量来处理数据库管理系统(DBMS)外部数据以及将外部数据与DBMS本机的数据逻辑联接的技术。这些技术提供了一种将外部结果导入到DBMS中而无需占用持久存储装置中的空间或进行重做生成的方法。这些技术促进OLAP的全部功能的利用而无需数据库管理员(DBA)进行附加的调整。
在实施例中,外部数据可以被加载并被物化(materialize)为存储器中压缩单元(IMCU)。IMCU中存储的数据以列形式存储在存储器中。由于外部数据完全以存储器中的格式(诸如字典编码)物化,因此DBMS可以使用本文描述的强大的存储器中列技术来优化DBMS数据和外部大数据的集成。DBMS可以针对共同属性(诸如DBMS与外部数据之间的日期和客户ID)创建全局字典,从而允许快速优化诸如半联接(semi-join)和等同联接(equijoin)之类的联接(join)。DBA可以在DBMS与外部数据之间创建联接组,从而促进针对诸如客户ID或日期之类的公共属性的联接的优化。
在实施例中,DBA可以定义用于物化从内部加载的外部数据导出的虚拟列的存储器中表达式(IME)。在实施例中,可以使用存储器中压缩(IMC)格式将聚合自动施加到外部数据上。
在实施例中,外部数据以单指令多数据(SIMD)兼容格式存储,该格式促进对DBMS内加载的外部数据进行并行谓词评估。数据库/查询优化器可以使用基于向量的联接来加速DBMS数据与加载的外部数据之间的联接。
在实施例中,计算机为持久存储在DBMS中的本机(native)数据和未持久存储在DBMS中的外部数据维护数据字典。计算机通过与DBMS的连接从客户端接收查询。计算机将外部数据加载到驻留在DBMS的随机存取存储器中的存储器中列向量中。基于查询和数据字典,DBMS执行存储器中列向量与本机数据的联接。计算机通过所述连接向客户端返回基于关系联接的查询结果。
2.0示例计算机
图1是描绘实施例中的示例计算机100的框图。计算机100使用数据库管理系统(DBMS)将本机数据联接到外部数据的存储器驻留列向量。计算机100可以是至少一个个人计算机、诸如刀片之类的机架服务器、大型机、虚拟机或能够进行数据库分析(诸如在线分析处理(OLAP))的任何计算设备。
2.1随机存取存储器
计算机100托管分配和使用随机存取存储器(RAM)120的DBMS 110。RAM 120可以是计算机100的一个或多个存储器单元内的地址空间。实施例可以将RAM 120实现为易失性存储器,诸如动态RAM(DRAM)或静态RAM(SRAM);或者实现为非易失性存储器,诸如非易失性RAM(NVRAM)或相变RAM(PRAM)。在任一情况下,RAM 120都应使用字节或字可寻址存储器来实现。
2.2本机数据
DBMS 110可以是用于数据库的管理系统,该数据库诸如为关系数据库、层次数据库、表格数据库、实时数据库、列式数据库、元组存储库、键-值存储库或其它受管理的数据存储库。DBMS 110包含可以在诸如计算机100内或与计算机100连接的机械或固态驱动器(未示出)(诸如网络附加存储装置(NAS))上持久(永久)存储的本机数据160。本机数据可以永久存储在数据库文件中。数据文件存储数据库对象(例如,表、物化视图)的数据。DBMS110可以指定哪些数据库文件保存哪些数据库对象。数据文件可以包括DBMS 110的软件被配置为处理的本机格式的数据块。因为数据块符合本机格式,因此DBMS 110的软件确定哪些数据块中的哪些数据表示特定内容以及哪些数据库事务已修改或正在修改数据块。在实施例中,本机数据160可以包括逻辑上由行和列组成的关系表。表在本机数据160中的持久存储可以采用诸如文件系统的文件内的或跨越盘上的原始块的以行为主或以列为主的格式。虽然未示出,但是计算机100可以以与持久存储的相同或不同的逻辑格式将本机数据160中的一些或全部高速缓存或以其它方式加载到RAM 120中。
2.3DBMS
DBMS 110可以诸如在针对由客户端(未示出)请求的分析的查询执行期间处理本机数据160。客户端可以包括计算机程序,诸如特设(ad hoc)查询工具、报告生成器或数据挖掘工具。客户端可以使用开放数据库连接(ODBC)来访问DBMS 110。
2.4外部数据
虽然DBMS 110可以提供高效、灵活和可重用的分析平台,但是客户端应用可能需要分析比DBMS 110自然具有的更多数据,诸如本机数据160。例如,分析可能不仅需要本机数据160中的天气数据,而且还需要不包含在DBMS 110的内容中的拓扑数据。因此,一些分析可能需要在DBMS 110外部并由外部数据源(诸如180)提供的数据。例如,计算机100可以具有不是DBMS 110的一部分并且可以包含或可以不包含表格数据的数据文件。例如,计算机100可以托管或连接到Hadoop分布式文件系统,该Hadoop分布式文件系统可以是外部数据源180。
替代地,计算机100可以托管或连接到外部数据源180,该外部数据源180生成或以其它方式提供可以通过编程方式(诸如通过网络套接字、进程间管道或应用编程接口(API))访问的外部数据。例如,计算机100可以交换超文本传输协议(HTTP)消息,诸如表示状态(REST)请求,以检索被编码为JavaScript对象符号(JSON)或可扩展标记语言(XML)的远程数据。取决于实施例,诸如180之类的外部数据源可以驻留在计算机100上或可以不驻留在计算机100上。
2.5存储器中列向量
DBMS 110被配置为通过将外部数据140传输到RAM 120中以用于随后的诸如通过查询执行的快速访问来从外部数据源180加载外部数据140。DBMS 110将外部数据140加载到特定的数据结构中,如存储器中列向量130所示。存储器中列向量130存储特定数据字段的值。例如,外部数据140可以包含购买的时间戳,并且那些时间戳被加载到存储器中列向量130中。存储器中列向量130具有特定的存储格式,该特定的存储格式需要将字段值作为线性数组(未示出)进行连续(例如紧凑)存储。例如,如果每个时间戳是八个字节宽,则存储器中列向量130包含连续的存储器位置序列,使得不同的时间戳的存储从每第八个字节开始。连续存储可能需要一些填充物来实现方便的对齐。例如,具有六个字节的字段值可以各自被填充至八个字节。在实施例中,可以将存储器中列向量130分解成不连续的段,这些不连续的段连续地存储值的子序列。在实施例中,每个段包括存储器中压缩单元(IMCU),诸如上面列出的相关美国专利10,007,691中描述的。如本文稍后所讨论的,除了140之外,DBMS110还可以将来自相同的源180和/或另一个外部源的其它外部数据加载到其它存储器中列向量(未示出)中。例如,DBMS 110可以在逻辑上聚合多个存储器中列向量以实现外部数据的存储器中表(例如,行和列)。
2.6全局数据字典
查询(未示出)或其它分析可以指示DBMS 110处理外部数据140和本机数据160两者。为了促进对外部数据140和本机数据160的处理,计算机100维护数据字典170。数据字典170包含描述外部数据140和本机数据160的数据字段的元数据。数据字典170可以包含逻辑元数据,诸如字段名称和数据类型,并且可以包含拓扑元数据,该拓扑元数据指示数据160是本机的并且数据140是外部的。例如,数据字典170可以包含DBMS 110可能需要以检索外部数据140进行加载的配置和连接细节。因此,数据字典170不同于仅存储本机数据160的元数据而不存储外部数据140的常规数据库数据字典。
在未示出的实施例中,DBMS 110包含数据字典170。在实施例中,数据字典170是可远程访问的。在实施例中,数据字典170还包含只读参考表的中央集合和关于DBMS 110的一个或多个数据库的元数据的视图。在实施例中,数据字典170还包含以下中的任一项:
·数据库中模式对象的定义(表、视图、索引、集群、同义词、序列、过程、函数、包、触发器等)
·已为模式对象分配多少空间,以及模式对象当前已使用多少空间
·列的默认值
·完整性约束信息
·数据库用户名
·每个用户被授予的特权和角色
·审核信息,诸如谁已访问或更新各种模式对象
·其它一般数据库信息
2.7数据联接
分析可能需要将外部数据140与本机数据160相关联。例如,分析可以请求外部数据140与本机数据160之间的联接150,诸如利用关系联接(诸如等同联接)。为了执行联接150,DBMS 110可以查阅数据字典170。例如,DBMS 110可以从数据字典170中检索类型元数据,DBMS 110可以使用该类型元数据来推断数据140和160可以在需要或不需要数据转换的情况下进行等同联接。因此,数据字典170可以用作DBMS 110本机的内容和DBMS 110外部的内容的模式信息的全局储存库。在执行联接150之前、期间或之后,DBMS 110可以基于外部数据140操纵、引用、复制或扫描存储器中列向量130以进行快速聚合和分组。例如,DBMS110可以将诸如GROUP-BY、ORDERBY、DISTINCT或MAX之类的SQL值聚合操作直接应用于已加载的外部数据140或包括本机数据和/或已加载的外部数据140的联接结果。
3.0示例联接处理
图2是描绘执行示例处理的计算机100的流程图,该处理用于使用DBMS将本机数据联接到外部数据的存储器驻留列向量。因此,参考图1讨论图2。
3.1配置
步骤201是准备性的。步骤201为DBMS本机的数据和DBMS外部的数据维护数据字典。例如,数据字典170由计算机100维护。在实施例中,计算机100通过处理数据定义语言(DDL)命令(例如,CREATE语句)来填充数据字典170,该数据定义语言命令描述了DBMS 110本机的结构化内容(诸如关系表)或DBMS 110外部的内容(诸如可从远程web服务获得的内容)。在实施例中,计算机100基于可扩展标记语言(XML)模式、文档类型定义(DTD)、字段名称(诸如用于具有诸如JSON之类的名称/值对的内容)、电子表格或外部数据140的其它结构化描述来用外部数据的元数据填充数据字典170。在实施例中,计算机100还用自动连接外部数据140的外部源所需的细节来填充数据字典170。例如,统一资源标识符(URI),诸如统一资源定位符(URL),可以包含足以连接到外部数据源180和/或检索外部数据140的网络连接信息(例如协议、主机名、端口、路径、驱动程序名称和/或查询字符串)。
3.2查询
步骤202-203的排序取决于实施例。在实施例中,诸如当步骤202检测到查询(未示出)引用DBMS 110尚未加载到存储器中列向量中的外部数据时,步骤202引起步骤203。在实施例中,步骤202不引起步骤203,因为步骤203在使用外部数据140的较早查询期间已发生。例如,在后续查询期间,外部数据140可能已经驻留在存储器中列向量130中。在步骤202中,DBMS接收查询。例如,诸如OLAP工具之类的客户端可以在数据库会话期间通过数据库连接向DBMS 110提交查询(诸如通过ODBC的多维SQL SELECT语句)。该查询直接指定或(诸如使用存储过程调用)间接指定关系联接150的原因。
在实施例中,DBMS 110在步骤202期间或在步骤202之后立即为该查询生成至少一个查询计划。查询计划可以具有树状数据结构。树内的一些节点(例如,叶子)可以对应于相应的行源,诸如用于外部数据源180或本机数据160的内部表。与行源对应的节点可以具有相关联的逻辑(例如,驱动程序),该逻辑可以管理生命周期问题,诸如连接性、异步性、恢复数据的长期有效检索(例如,多次来回)以及诸如分区、复制和/或同构或异构联合之类的分发方面。例如,外部数据源180可以是具有(例如,时间上)分离的数据的多个外部数据存储库的聚合(例如,外表)。例如,外部数据源180可以具有用于各个年龄的数据的存储层。例如,HDFS可以提供最近数据,并且压缩存档可以提供相同种类的较旧数据。在相关的美国申请14/733,691中介绍了集成DBMS和分布式外部数据存储库的技术。
3.3加载
在步骤203中,外部数据被加载到驻留在DBMS的RAM中的存储器中列向量中。例如,DBMS 110可以将REST GET发送到远程web服务,该远程web服务返回编码为JSON的外部数据140,DBMS 110可以将其解编(unmarshall)到RAM 120中或者可以使用流传输解析器进行处理。例如,JSON可以对具有相同命名字段的对象数组进行编码。例如,每个JSON对象可以具有“年龄”整数字段。DBMS 110可以提取对象的年龄字段的值、将该值从JSON文本转换成本机整数,并将这些整数作为外部数据140连续存储在存储器中列向量130内。在实施例中,DBMS 110使用存储器映射的输入/输出(I/O)原样将外部数据的列从外部数据文件批量复制到存储器中列向量中。例如,DBMS 110可以使用虚拟存储器来对记录列文件(RCFile)进行存储器映射。在相关的美国申请15/162,235中介绍了将JSON数据编组(marshall)到存储器中列向量中的技术。
在实施例中,外部数据源180驻留在(例如,远程)计算云或数据网格中。诸如全球互联网或其它广域网(WAN)之类的中间基础设施可能将数据检索延迟增加一个数量级,从而使通过存储器中列向量130进行本地高速缓存对于加速具有吸引力,尤其是在外部数据140被DBMS 110重复使用时。例如,Oracle和Amazon提供的公共云可以提供数据存储机制,诸如数据块的平面文件,或者提供更全面的抽象,诸如对象存储。云基础设施将在本文后面讨论。
3.4联接
基于在步骤202中接收到的查询和在步骤201中填充的数据字典,DBMS在步骤204期间执行外部数据和本机数据之间的联接。例如,DBMS 110基于查询、数据字典170以及数据140和160执行联接150。在实施例中,数据字典170指示数据140和160具有相同或兼容的数据类型。查询可以指定联接运算符,例如相对于等同联接的equality(等同)。在关系DBMS(RDBMS)实施例中,数据字典170将本机数据160声明为关系表的列。可以将本机数据160加载到RAM 120中的另一个存储器中列向量(未示出)中。DBMS 110可以具有可以联接DBMS110的两个关系表的关系联接引擎。在实施例中,关系联接引擎被优化用于联接DBMS 110的表,该DBMS 110的联接列被存储在RAM 120中的存储器中列向量中。关系联接引擎可以使用相同或相似的逻辑在两个存储器中列向量之间执行关系联接,而不管两个列向量是都是从本机数据(例如关系表)加载的,还是两个向量都是从外部数据加载的,或者是一个向量是用本机数据加载的而另一个向量是用诸如用于关系联接150的外部数据加载的。
DBMS 110可以累积查询的结果,包括由关系联接150产生的元组,作为在存储器中、在盘上、或者部分在存储器中并且部分在盘上的结果集。在步骤205中,查询结果返回给客户端。例如,DBMS 110可以在传递查询的相同会话连接上序列化结果集。在实施例中,查询指定不直接返回结果,而是将结果保存到文件或关系表中,诸如保存到后续查询可以检索或执行进一步分析的临时表中。
4.0压缩
图3是描绘实施例中的示例关系DBMS(RDBMS)310的框图。RDBMS 310在关系联接期间使用相同的编码字典来处理本机和外部数据。RDBMS 310可以是DBMS 110的实现。本机数据360可以是RDBMS 310的关系表列。有效载荷存储器中列向量333包含外部数据。有效载荷存储器中列向量333和本机数据360均通过字典编码而无损地被压缩。有效载荷存储器中列向量333和本机数据360均包含包括字典键的压缩数据。但是,有效载荷存储器中列向量333和本机数据360可以由相同或不同的编码字典进行编码。本机和/或外部数据可以从持久性存储装置或外部源作为已被字典编码的数据而加载。替代地,RDBMS 310可以在加载到随机存取存储器中的期间压缩(字典编码)本机和/或外部数据。全局数据字典(不是编码字典)可以声明哪些数据需要压缩以及哪些数据已经被压缩。如果有效载荷存储器中列向量333和本机数据360根据不同的编码字典(未示出)进行编码,则RDBMS 310可以解码有效载荷存储器中列向量333和本机数据360,并基于解码后的值执行关系联接。如果有效载荷存储器中列向量333和本机数据360根据相同的编码字典进行编码,则RDBMS 310可以通过不解码而是当压缩数据中出现键时基于键进行联接来更快地执行相同的关系联接。
4.1共享编码字典
RDBMS 310可以基于外部数据、本机数据360或包含本机数据或外部数据的存储器中列向量中的一个、一些或全部中的不同值来创建编码字典370。DBA可以命令RDBMS 310基于外部数据、本机数据360或包含本机数据或外部数据的存储器中列向量中的一个、一些或全部来创建编码字典370。RDBMS 310可以响应于检测到本机数据360的值与外部数据的值完全或部分重叠而自发地创建编码字典370。例如,RDBMS 310可以用本机数据360和外部数据的部分重叠的不同值的联合(union)来填充编码字典370。RDBMS 310可以响应于各种情况来决定创建编码字典370。例如,RDBMS 310可以检测到本机数据360与相同或相似的外部数据之间重复(例如,超过阈值)的相同或相似的联接。RDBMS 310可以检测与不同的各个源相关联的多个现有编码字典之间的完全或部分相似性,并且RDBMS 310可以在将编码字典与数据源(例如表)相关联的全局数据字典中组合或替代这样的编码字典。RDBMS 310可以在偶然或巧合的处理期间,诸如当同一查询使用相似数据值的两个不同源时,或者当两个不同查询各自使用相似数据值的不同源时,检测不同源的未编码数据值之间的完全或部分相似性。RDBMS 310可以在加载并使用有效载荷存储器中列向量333之后追溯性地创建编码字典370。
如图所示,有效载荷存储器中列向量333和本机数据360均根据编码字典370进行编码。因此,RDBMS 310可以在不解压缩的情况下在有效载荷存储器中列向量333和本机数据360之间执行关系联接350。例如,键A可以被直接联接(或比较、匹配或过滤),而无需将“A”解压缩为“中央(Central)”。如图所示,编码字典370的值按字母顺序排列。如图所示,编码字典370可以将键A-E指派给自然排列的值。因此,诸如'<'或'>='之类的相对比较(例如,联接而不是等同联接)对于压缩和未压缩的数据产生相同的结果,从而使解压缩变得不必要。在相关的美国申请15/702,431中介绍了基于用于多个列向量的复合谓词进行过滤的技术。
RDBMS 310不需要访问编码字典370来执行关系联接350。RDBMS 310访问全局数据字典(诸如170(数据字典170可以包含或可以不包含编码字典370))可能就足以仅确定有效载荷存储器中列向量333和本机数据360由相同的编码字典370编码。在相关的美国申请15/294,460中介绍了用于共享编码字典的技术。
4.2密集键
RDBMS 310可以用于对外部数据进行数据挖掘并将外部数据与本机数据360相关联的多维OLAP。多维OLAP涉及与诸如联接的雪花(snowflake)模式中的维度相关联的大量事实。例如,本机数据360可以是维度,并且有效载荷存储器中列向量333可以是事实。多系统联接通常不被支持,并且执行起来会令人难以忍受地缓慢,尤其是当涉及其它工作,诸如分组或排列时。但是,RDBMS 310可以如下优化这种情况。
RDBMS 310可以使用密集键和/或键向量来优化具有存储器中聚合的联接。密集键是作为本机整数存储并且具有值的范围的数字键。密集键可以表示一个或多个编码字典键或条目。密集键可以是到编码字典键或条目的有序列表中的偏移量。密集联接键表示其联接列来自本机数据库表或加载有外部数据或本机数据的存储器中列向量的所有联接键。密集分组键表示其分组列来自本机表或存储器中列向量的所有分组键。键向量是在密集联接键和密集分组键之间映射的数据结构。键向量实现快速查找。RDBMS 310可以在扫描有效载荷存储器中列向量333期间使用密集键和/或键向量进行过滤(以促进联接)。基于密集键的聚合促进向量联接和GROUP BY操作与有效载荷存储器中列向量333的扫描同时发生。例如,RDBMS 310可以在维度扫描(本机数据360)期间推断或提取密集键以构建键向量,然后使用该键向量将本机数据360联接到有效载荷存储器中列向量333,同时进行排列(sort)、过滤和/或按有效载荷存储器中列向量333或本机数据360进行分组。在实施例中,RDBMS 310可以直接从编码字典370推断或提取密集键,这不必与查询执行同步发生。密集联接键可以实现(一个或多个字典键的)联接组。在相关的美国申请15/702,659中介绍了密集键。
4.3辅助数据
有效载荷存储器中列向量333可能附带附加的存储器中列向量,这些存储器中列向量存储:a)其它外部数据(未示出),b)关系表列(未示出),或c)如存储器中列向量331-332所示的辅助/合成数据。在所示的实施例中,RDBMS 310在加载外部数据时创建并填充串行存储器中列向量332。串行存储器中列向量332可以填充有序列号,诸如行标识符,该行标识符随着将值加载到一个或多个存储器中列向量(诸如333)中而单调增加。该行标识符可以显式地或隐式地包括在由关系联接350产生的结果集中。RDBMS 310可以使用行标识符(或另一种机制)针对有效载荷存储器中列向量333提供窗口函数。在相关的美国申请14/097,575中介绍了用于存储器中列向量的行标识的技术。
合成列可以从(一个或多个)其它列(诸如捕获应用于(一个或多个)其它列的表达式的结果的懒惰或急切物化的虚拟列)的内容中得到。例如,编码字典370的值可以是时区,并且虚拟存储器中列向量331可以记录有效载荷存储器中列向量333中的哪些值表示沿海时区,并且哪些值表示大陆(内陆)时区。例如,虚拟存储器中列向量331的从零开始的第2-3行反映了东部时区是沿海地区。
4.4封装
虽然编码字典370的键被示为单独的字母,但是键可以替代地是整数或位封装的整数。例如,键A-E是五个键,其仅需要三个位,每个位作为位封装的整数。因此,有效载荷存储器中列向量333和本机数据360可以在单个字节(八位字节)中存储多个键。
5.0保留
图4是描绘实施例中示例计算机400内的交互的场景图。计算机400保留加载的存储器中列向量以供重复使用。计算机400可以是计算机100的实现。计算机400包括客户端405,客户端405具有到RDBMS 410的会话连接,用于提交查询和检索结果。执行查询可能需要访问外部和本机数据。例如,在时间A,客户端405将访问外部数据的第一查询发送到RDBMS 410。在时间B,RDBMS 410检测到第一查询所需的外部数据尚未被加载。因此,同样在时间B,RDBMS 410将所需的外部数据从外部源480加载到存储器中列向量430中。在时间C,RDBMS 410执行第一查询,这需要将存储器中列向量430联接到本机数据(未示出)。为了执行联接,RDBMS 410可能需要扫描或以其它方式处理存储器中列向量430的内容,如图所示。
在时间D,客户端405(或不同的客户端)发送第二查询,该第二查询访问与第一查询所访问的相同的外部数据。同样在时间D,RDBMS 410检测到所需的外部数据已经被加载到存储器中列向量430中。因此,第二查询的执行不必需要从外部源480检索数据。因此,RDBMS 410可以按原样差不多立即使用存储器中列向量430来执行相同外部数据与相同或不同本机数据之间的另一个联接,这可以包括扫描存储器中列向量430,如时间E所示。
最终,RDBMS 410可以手动或自动决定删除存储器中列向量430。例如,RDBMS 410可以包括高速缓存管理器或其它存储器管理器,其可以根据对存储器的需求逐出或保留存储器中列向量(或其组分IMCU段的子集)。例如,虽然未示出,但是在时间E之后,RDBMS 410可以删除存储器中列向量430、接收对相同外部数据的第三查询,并且将来自外部源480的相同外部数据重新加载到新的存储器中列向量中。在实施例中,可以诸如根据数据库管理命令(急切地)预加载存储器中列向量和/或可以将存储器中列向量固定在存储器中以防止自动逐出。在实施例中,RDBMS 410可以记录在从外部源480检索外部数据期间花费了多少时间。在实施例中,RDBMS 410可以基于记录的检索持续时间、存储器占用空间、最近使用情况或存储器中列向量的其它度量来做出逐出决定,诸如在决定从随机存取存储器中逐出哪些外部数据或本机数据时。在相关的美国申请10,007,691中介绍了存储器中列向量的逐出启发法。
5.1物化视图
在实施例中,存储器中列向量的内容的保留和重用需要附加配置。例如,RDBMS410可以实现或以其它方式将存储器中外部数据视为物化数据库视图的一部分,从而使相同或相似的逻辑能够处理存储器中外部数据和常规的物化视图。因此,可用于物化视图的一些配置设置对于存储器中外部数据也可能是可用的或需要的。例如,Oracle将QUERY_REWRITE_INTEGRITY作为会话参数,其可能需要被设置为STALE_TOLERATED以实现已加载的外部数据的保留和重用。
6.0存储器中表
图5是描绘实施例中的示例计算机500的框图。计算机500聚合多个存储器中列向量以形成存储器中表。计算机500可以是计算机100的实现。计算机500包括执行查询591-592的RDBMS 510。每个查询都可以从RDBMS 510外部的外部源(诸如581-582)访问外部数据,诸如541-543。RDBMS 510可以将外部数据懒惰地(lazily)加载到存储器中列向量中,使得直到查询实际需要时才加载外部数据。
虽然未示出,但是计算机500或RDBMS 510具有全局数据字典,该全局数据字典将存储器中表505定义为存储在随机存取存储器中,作为同样存储在随机存取存储器中的列的集合。全局数据字典也可以声明哪些外部源581-582为存储器中表505的哪些列提供外部数据,以及哪些机制、协议和配置用于外部数据检索。全局数据字典可以声明存储器中表505中的哪些列应该被急切加载以及哪些列可以被懒惰地加载。例如,一旦存储器中表505中的任何列被访问,一些列就可能需要加载。其它列在实际使用之前不需要被加载。因此,存储器中表505有时可能仅针对存储器中表505的列的子集加载存储器中列向量。
例如,查询591可能引起除了外部数据541之外没有任何外部数据从外部源581加载到存储器中列向量531中。在相同或不同的时间,查询592可以引起从各个外部源581-582将外部数据542-543加载到各个存储器中列向量532-533中。在实施例中,存储器中列向量531-533中的一个或多个可以被排列或以其它方式被排序以与存储器中列向量531-533中的另一个的内容相关。例如,外部源581可以按时间(即,时间戳)顺序返回数据,而外部源582可以按字母顺序返回数据。在实施例中,诸如键和/或散列之类的联接技术被用于使存储器中列向量531-533彼此重新排序或以其它方式相互关联。在实施例中,排列(sorting)或其它重新排序在存储器中列向量的加载期间发生。例如,可以以特定顺序从外部源581检索外部数据541。例如,重新排序可以委托给外部源581,并在检索时反映在外部数据541中。
无论是否将存储器中表505的所有列或仅一些列加载到随机存取存储器中,客户端和RDBMS 510都可以使用存储器中表505,就好像它已经是RDBMS 510本机的普通关系表一样。RDBMS 510可以使用或可以不使用与用于处理本机关系表的逻辑相同的逻辑来处理存储器中表505。同样,客户端可能在乎或可能不在乎(或能够检测到)存储器中表505是否在存储器中,或者是否包含外部数据。
7.0刷新
图6是描绘实施例中的示例计算机600的框图。计算机600可以刷新外部数据。计算机600可以是计算机100的实现。在时间T1,RDBMS将存储在Hadoop分布式文件系统(HDFS)680中的外部文件中的外部数据640A加载到驻留在RDBMS 610的RAM 620中的存储器中列向量630A中。该文件可以符合诸如列分隔值(CSV)、电子表格、Apache Parquet、优化行列(ORC)、Apache Avro、JSON或控制台日志之类的格式。
在时间T1-T2之间,各种查询(未示出)可以访问存储器中列向量630A和/或将它与本机数据(诸如660)联接。但是,外部文件可以在时间T1-T2之间被更新或替换。因此,RDBMS610可以通过加载外部数据的新版本来刷新内容,如640B所示。取决于实施例,RDBMS 610可以将外部数据640B加载到如图所示的新的存储器中列向量630B中,或者通过用640B重写外部数据640A来重用存储器中列向量630A。在加载存储器中列向量630B之后,RDBMS 610可以删除存储器中列向量630A或将其保留为较旧的版本。在实施例中,客户端可以指定在时间T2之后的查询执行期间使用哪个版本的外部数据。RDBMS 610可以维护诸如在全局字典中一次定义的外部数据(诸如640)的结构、格式和类型的声明的目录。每次映射/缩减作业创建修订的大数据摘要时,DBA都可以选择方便的时间来自动调整全局字典、存储器中表达式(IME)、联接组或取决于外部数据的声明结构的其它对象。外部数据格式的目录可以是永久的且可发现的。因此,一旦被加载到RDBMS 610中,外部数据在一些情况下成为能够由RDBMS610以与本机数据库数据相同的方式处理的“第一类”数据。
8.0列生命周期
由于外部数据和本机数据由单独的数据系统托管,因此DBMS的外部数据的存储器中列向量可能会过时,或者以其它方式与外部系统不连贯或不一致。因此,存储器中列向量的内容可能需要刷新(重新加载)。例如,外部数据可以是其它数据的每日摘要。因此,存储器中列向量的内容在加载到DBMS中之后最多一天就过时。DBMS可以具有全局数据字典,全局数据字典具有描述外部数据的字典条目。字典条目可以指定根据外部源定期自动刷新外部数据。替代地,诸如当外部系统以不规则的间隔更新外部数据时,人类DBA可以手动强制刷新。替代地,DBMS可以自动定期轮询外部系统,以检查外部数据是否已更改。以下是各种数据生命周期的机制和场景。
图7是描述实施例中的用于列的示例外部数据740的示例生命周期的状态图。外部数据740可以是外部数据640A-B的实现。初始地,外部数据740尚未加载到RDBMS的随机存取存储器中,被显示为未加载700。在时间T1,诸如查询之类的刺激使RDBMS将来自外部源(未示出)的外部数据740加载到第一存储器中列向量(未示出)中。因此,在时间T1,外部数据740的生命周期状态从未加载700过渡到一个版本已加载710。
在时间T2,另一个刺激使RDBMS刷新外部数据740。例如,RDBMS可以定期地轮询以查看外部数据740的新版本是否在外部可用于重新加载,或者可以定期地无条件地重新加载,而不管外部数据740是否已经改变。在实施例中发生这种重新加载,以从外部系统拉取数据。替代地,外部系统可以诸如通过调用存储过程将修订后的内容自主地推送到RDBMS中。替代地,DBA可以手动引起外部数据740的刷新。在任何情况下,RDBMS的重新加载都显示为加载另一个版本720,其可以重用(重写内容)第一存储器中列向量或使用第二存储器中列向量。如果第一存储器中列向量被重用于重新加载,如T3-A所示,则生命周期返回到一个版本已加载710,这是重写外部数据740的先前版本的外部数据740的新版本。
否则,新版本的外部数据740被加载到第二存储器中列向量中,如时间T3-B所示,并且两个版本都已加载730,这可以是或可以不是客户端公开可见的生命周期状态。在实施例中,两个版本已加载730是在时间T4通过RDBMS删除第一存储器中列向量并保留第二存储器中列向量而立即结束的不可见的瞬时状态。因此,外部数据740的旧版本被外部数据740的新版本代替,该外部数据740的新版本返回到一个版本已加载710的状态。在实施例中,两个版本已加载730可以无限期地是外部数据740的状态,并且取决于实施例,客户端可以显式地或隐式地访问(一个或多个)旧的或新的版本。
9.0分布式分区
外部数据源和DBMS可以布置在数据管道中。例如,DBMS可以本机存储当天的销售数据,而外部大数据系统可以存档历史销售数据。在另一个示例中,管道被颠倒,使得外部系统具有最近的销售数据,并且DBMS具有历史销售数据的压缩形式(例如,数据字段的子集)。因此,在一些示例中,即使两个系统的数据在逻辑上是同一数据集的部分,外部系统和DBMS都不拥有所有数据。以下是各种数据分布方案的机制和场景。
图8是描绘实施例中的示例计算机集群800的框图。集群800包含比单个数据库服务器可以加载的数据更多的分布式数据。数据库服务器811-813可以通过(一个或多个)计算机网络彼此以及与外部数据源相互通信。数据库服务器811-813中的每一个可以是计算机100的实现。虽然未示出,但是数据库服务器811-813是RDBMS的一部分,该RDBMS维护包括每个数据库服务器的一个数据库实例的分布式数据库。每个数据库实例可以存储分布式数据库的分区和/或复制的数据。
一些数据可能太大而无法方便地完全存储在RDBMS中。例如,点击流可以每天在HDFS中被分区到一个文件中,并且最近一天(或多天)的副本也可以作为表分区存储在RDBMS中。例如,数据库服务器860具有内部(本机)分区860,该分区860可能具有昨天的点击。较早那些天仅可作为相应的外部分区821-823使用。数据库服务器811-812可以将外部分区821-823加载到相应的存储器中列向量831-833中,其被示为相应的外部分区数据841-843。
全局数据字典870声明哪些分区与哪些数据库服务器相关联,以及哪些分区是外部或内部的。在实施例中,RDBMS使用相同或相似的逻辑来处理外部和本机数据的加载分区。例如,RDBMS可以执行将加载的分区841-843和860视为单个表的查询,诸如扫描或联接。虽然未示出,但是数据库服务器813可以将内部分区860的表列加载到存储器中列向量中。在实施例中,RDBMS使用相同或相似的逻辑来处理存储器中列向量,而不管存储器中列向量的内容是否被分区,并且不管内容是来源于内部的还是外部的。
10.0SIMD
图9是描绘实施例中的示例RDBMS 910的框图。RDBMS 910包含用于加速的向量处理器。RDBMS 910可以是DBMS 110的实现。向量处理器执行单指令多数据(SIMD)指令,诸如940。SIMD指令940同时处理有限的固定大小的多个值,诸如具有若干位或若干字节的值。因此,SIMD非常适合处理宽度适中的整数、布尔值、单个字符和字典编码键。同时处理的多个值可以封装到一个中央处理单元(CPU)寄存器中,或者每个值可以具有其自己的寄存器。固定大小可以通过填充来实现。
这样的向量处理可以加速扫描和联接。如图所示,SIMD指令940扫描其值按字母顺序小于“C”的字符。例如,存储器中列向量930可以包含字符值、字典键或小整数。例如,每个值可以包含最多八个位。位数较少的值可以用零填充或用符号填充以达到八位。
SIMD指令940可以同时处理可能已经封装在四字节寄存器中或者在四个寄存器中已经解封装的四个值。例如,先前的指令可能已经从存储器中列向量930中获取前四个(显示为粗体)值(字节),并将它们作为机器字一起复制到同一寄存器中。SIMD指令940同时将四个值中的每一个与常数“C”进行比较。每个单独的值比较产生编码为位图950中的四个位之一的布尔值。位图950可以作为机器字驻留在通用寄存器中,或者作为条件码驻留在标志寄存器中。如果零分支(branch if zero)指令960检测到位图950的任何位是否被设置(1)。如图所示,在位图950中未设置任何位。因此,前四个值都不小于“C”。因此,执行进行到未找到继续(not found continue)扫描970,在这种情况下,可以通过重新发出SIMD指令940并进一步重复指令序列来将接下来的四个值从存储器中列向量930复制到要处理的(一个或多个)寄存器中。因此,RDBMS 910可以批量扫描或批量联接存储器中列向量930。
最终,RDBMS 910可能会在存储器中列向量930中遇到实际上小于“C”的值,诸如“B”或“A”。在这种情况下,通过SIMD指令940将位图950的至少一位设置为1。因此,如果零分支指令960进行到找到停止扫描(found stop scan)980,诸如在执行SQL中的EXISTS子句的同时进行扫描时。替代地,RDBMS可以穷举扫描或联接存储器中列向量930的所有值。在相关的美国申请15/713,365中介绍了使用存储器中列向量进行扫描加速。
SIMD可以用于加速本机数据和存储器中列向量930之间的联接,和/或存储器中列向量930或本机数据或联接结果的分组或排列。如上所述,可以使用共享的编码字典、密集的分组键和/或键向量来加速跨越本机和外部数据的多维OLAP的星星型(star)或雪花型的处理。因为字典键是紧凑的,并且密集的分组键甚至更紧凑,因此两种键都适合SIMD。因此,SIMD可以加速来自外部系统和RDBMS两者的数据的联接、排列和/或分组。在相关的美国申请15/702,526中介绍了使用存储器中列向量进行SIMD加速。
11.0恢复检查点
图10是描绘实施例中的示例RDBMS 1010的框图。RDBMS 1010具有包括存储器中列向量的恢复。RDBMS 1010可以是DBMS 110的实现。在各种时间(诸如定期、通过自动标准或根据需要),RDBMS 1010创建数据库的恢复检查点(诸如1070),从而以在发生崩溃的情况下可以被恢复和继续的方式持久保护正在进行的未提交的工作。恢复检查点1070被保存在持久存储装置1005中,该持久存储装置1005可以是本地盘或NAS。恢复检查点1070可以是增量的(仅自上一个检查点以来的数据更改),或者可以是完整的(所有数据库内容,与年龄无关)。
在普通操作期间,RDBMS 1010加载具有来自外部源(未示出)的外部数据的存储器中列向量1030。同样在普通操作期间,RDBMS 1010执行数据操纵语言(DML)命令,诸如SQL中的UPDATE,该DML命令导致对本机数据1060的更改。在发生此类更改时,RDBMS 1010在撤消日志和重做日志中记录(显示为时间T1)更改,诸如1090A。为了在时间T2保存正在进行的未提交的工作,恢复检查点1070包含重做/前滚日志和/或撤消/回滚日志的副本,诸如作为差不多是更改日志1090A的副本的更改日志1090B。
如果RDBMS 1010崩溃和/或数据库内容损坏,则可以通过还原完整的检查点和/或一个或多个增量检查点来恢复数据库。在时间T3的恢复可以涉及恢复更改日志,诸如复制更改锁1090B以替换更改日志1090A。恢复还可能需要在时间T4处,RDBMS 1010重播撤消日志以回滚中止的事务,并重播重做日志以前滚和/或恢复未提交的事务。
RDBMS 1010具有检查点写入和读取逻辑,其可以被重用或适于保存存储器中列向量,诸如,用于从外部源实际重载外部数据将花费太长时间或者提供外部数据的最近版本的情况,这可能是不想要的。在实施例中,检查点命令或检查点配置列出应在检查点中包括哪些存储器中列向量。在实施例中,数据字典(例如,在外部数据描述中)声明哪些存储器中列向量应被包括在检查点中。
因此,在时间T2,RDBMS 1010还可以将存储器中列向量1030作为列向量转储文件1080保存在恢复检查点1070中。例如,诸如当列向量转储文件1080是存储器映射文件时,RDBMS 1010可以差不多按原样将存储器中列向量1030冲刷到盘。恢复检查点1070可以包含元数据(未示出),该元数据列出了恢复检查点1070中记录了哪些存储器中列向量。因此,同样在时间T3的恢复期间,RDBMS 1080可以从列向量转储文件1080重新加载存储器中列向量1030。
12.0硬件概述
根据一个实施例,本文描述的技术由一个或多个专用计算设备实现。专用计算设备可以是硬连线的以执行这些技术,或者可以包括数字电子设备(诸如被持久地编程为执行这些技术的一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)),或者可以包括被编程为根据固件、存储器、其它存储装置或组合中的程序指令执行这些技术的一个或多个通用硬件处理器。这种专用计算设备还可以将定制的硬连线逻辑、ASIC或FPGA与定制编程相结合,以实现这些技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持设备、联网设备或者结合硬连线和/或程序逻辑以实现这些技术的任何其它设备。
例如,图11是图示可以在其上实现本发明实施例的计算机系统1100的框图。计算机系统1100包括总线1102或用于传送信息的其它通信机制,以及与总线1102耦合以处理信息的硬件处理器1104。硬件处理器1104可以是例如通用微处理器。
计算机系统1100还包括耦合到总线1102的主存储器1106,诸如随机存取存储器(RAM)或其它动态存储设备,用于存储将由处理器1104执行的信息和指令。主存储器1106还可以用于在执行由处理器1104执行的指令期间存储临时变量或其它中间信息。当存储在处理器1104可访问的非瞬态存储介质中时,这些指令使计算机系统1100成为被定制以执行指令中指定的操作的专用机器。
计算机系统1100还包括耦合到总线1102的只读存储器(ROM)1108或其它静态存储设备,用于存储用于处理器1104的静态信息和指令。存储设备116(诸如磁盘或光盘)被提供并耦合到总线1102,用于存储信息和指令。
计算机系统1100可以经由总线1102耦合到显示器1112(诸如阴极射线管(CRT)),用于向计算机用户显示信息。包括字母数字键和其它键的输入设备1114耦合到总线1102,用于将信息和命令选择传送到处理器1104。另一种类型的用户输入设备是光标控件1116(诸如鼠标、轨迹球或光标方向键),用于将方向信息和命令选择传送到处理器1104并用于控制显示器1112上的光标移动。这种输入设备通常在两个轴(第一轴(例如,x)和第二轴(例如,y))上具有两个自由度,这允许设备指定平面中的位置。
计算机系统1100可以使用与计算机系统相结合使计算机系统1100成为或将计算机系统1100编程为专用机器的定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实现本文所述的技术。根据一个实施例,响应于处理器1104执行包含在主存储器1106中的一个或多个指令的一个或多个序列,计算机系统1100执行所述的技术。这些指令可以从另一个存储介质(诸如存储设备116)读入到主存储器1106中。包含在主存储器1106中的指令序列的执行使得处理器1104执行本文所述的处理步骤。在替代实施例中,可以使用硬连线的电路系统代替软件指令或与软件指令组合。
如本文使用的术语“存储介质”是指存储使机器以特定方式操作的数据和/或指令的任何非瞬态介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,诸如存储设备116。易失性介质包括动态存储器,诸如主存储器1106。存储介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其它磁数据存储介质、CD-ROM、任何其它光学数据存储介质、任何具有孔图案的物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其它存储器芯片或盒式磁带。
存储介质不同于传输介质但可以与传输介质结合使用。传输介质参与在存储介质之间传送信息。例如,传输介质包括同轴线缆、铜线和光纤,包括包含总线1102的导线。传输介质也可以采用声波或光波的形式,诸如在无线电波和红外数据通信期间生成的声波或光波。
将一个或多个指令的一个或多个序列携带到处理器1104以供执行可以涉及各种形式的介质。例如,指令最初可以在远程计算机的磁盘或固态驱动器上携带。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过电话线发送指令。计算机系统1100本地的调制解调器可以在电话线上接收数据并使用红外发送器将数据转换成红外信号。红外检测器可以接收红外信号中携带的数据,并且适当的电路系统可以将数据放在总线1102上。总线1102将数据携带到主存储器1106,处理器1104从主存储器1106检索并执行指令。由主存储器1106接收的指令可以可选地在由处理器1104执行之前或之后存储在存储设备116上。
计算机系统1100还包括耦合到总线1102的通信接口1118。通信接口1118提供耦合到网络链路1120的双向数据通信,其中网络链路1120连接到本地网络1122。例如,通信接口1118可以是集成服务数字网(ISDN)卡、线缆调制解调器、卫星调制解调器或者提供与对应类型的电话线的数据通信连接的调制解调器。作为另一个示例,通信接口1118可以是局域网(LAN)卡,以提供与兼容LAN的数据通信连接。还可以实现无线链路。在任何此类实现中,通信接口1118都发送和接收携带表示各种类型信息的数字数据流的电信号、电磁信号或光信号。
网络链路1120通常通过一个或多个网络向其它数据设备提供数据通信。例如,网络链路1120可以提供通过本地网络1122到主机计算机1124或到由互联网服务提供商(ISP)1126操作的数据设备的连接。ISP 1126进而通过全球分组数据通信网络(现在通常称为“互联网”1128)提供数据通信服务。本地网络1122和互联网1128都使用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及网络链路1120上的并通过通信接口1118的信号(其将数字数据携带到计算机系统1100和携带来自计算机系统1100的数字数据)是传输介质的示例形式。
计算机系统1100可以通过(一个或多个)网络、网络链路1120和通信接口1118发送消息和接收数据,包括程序代码。在互联网示例中,服务器1130可以通过互联网1128、ISP1126、本地网络1122和通信接口1118发送对应用程序的请求代码。
接收到的代码可以在它被接收到时由处理器1104执行,和/或存储在存储设备116或其它非易失性存储装置中以供稍后执行。
13.0软件概述
图12是可以用于控制计算机系统1100的操作的基本软件系统1200的框图。软件系统1200及其组件,包括它们的连接、关系和功能,仅仅旨在是示例性的,并且不意味着限制(一个或多个)示例实施例的实现。适于实现(一个或多个)示例实施例的其它软件系统可以具有不同的组件,包括具有不同的连接、关系和功能的组件。
软件系统1200被提供以用于指导计算机系统1100的操作。可以存储在系统存储器(RAM)1106和固定存储装置(例如,硬盘或闪存)116上的软件系统1200包括内核或操作系统(OS)1210。
OS 1210管理计算机操作的低级方面,包括管理进程的执行、存储器分配、文件输入和输出(I/O)以及设备I/O。表示为1202A、1202B、1202C...1202N的一个或多个应用程序可以被“加载”(例如,从固定存储装置116传送到存储器1106中)以供系统1200执行。意图在计算机系统1100上使用的应用或其它软件也可以被存储为可下载的计算机可执行指令集,例如,用于从互联网位置(例如,Web服务器、应用商店或其它在线服务)下载和安装。
软件系统1200包括图形用户界面(GUI)1215,用于以图形(例如,“点击”或“触摸手势”)方式接收用户命令和数据。进而,这些输入可以由系统1200根据来自操作系统1210和/或(一个或多个)应用1202的指令来操作。GUI 1215还用于显示来自OS 1210和(一个或多个)应用1202的操作结果,用户可以对操作结果提供附加的输入或终止会话(例如,注销)。
OS 1210可以直接在计算机系统1100的裸硬件1220(例如,(一个或多个)处理器1104)上执行。可替代地,管理程序或虚拟机监视器(VMM)1230可以插入在裸硬件1220和OS1210之间。在这个配置中,VMM 1230充当OS 1210与计算机系统1100的裸硬件1220之间的软件“缓冲”或虚拟化层。
VMM 1230实例化并运行一个或多个虚拟机实例(“访客机”)。每个访客机包括“访客”操作系统(诸如OS 1210),以及被设计为在访客操作系统上执行的一个或多个应用(诸如(一个或多个)应用1202)。VMM 1230向访客操作系统呈现虚拟操作平台并管理访客操作系统的执行。
在一些实例中,VMM 1230可以允许访客操作系统如同其直接在计算机系统1200的裸硬件1220上运行一样运行。在这些实例中,被配置为直接在裸硬件1220上执行的访客操作系统的相同版本也可以在VMM 1230上执行而无需修改或重新配置。换句话说,VMM 1230可以在一些情况下向访客操作系统提供完全硬件和CPU虚拟化。
在其它实例中,访客操作系统可以被专门设计或配置为在VMM 1230上执行以提高效率。在这些实例中,访客操作系统“意识到”它在虚拟机监视器上执行。换句话说,VMM1230可以在某些情况下向客户操作系统提供半虚拟化。
计算机系统进程包括硬件处理器时间的分配,以及存储器的分配(物理和/或虚拟)、用于存储由硬件处理器执行的指令的存储器的分配、用于存储由硬件处理器执行指令所生成的数据、和/或用于当计算机系统进程未运行时在硬件处理器时间的分配之间存储硬件处理器状态(例如,寄存器的内容)。计算机系统进程在操作系统的控制下运行,并且可以在计算机系统上执行的其它程序的控制下运行。
14.0云计算
本文一般地使用术语“云计算”来描述计算模型,该计算模型使得能够按需访问计算资源的共享池,诸如计算机网络、服务器、软件应用和服务,并且允许以最少的管理工作或服务提供商交互来快速提供和释放资源。
云计算环境(有时称为云环境或云)可以以各种不同方式实现,以最好地适应不同要求。例如,在公共云环境中,底层计算基础设施由组织拥有,该组织使其云服务可供其它组织或公众使用。相反,私有云环境一般仅供单个组织使用或在单个组织内使用。社区云旨在由社区内的若干组织共享;而混合云包括通过数据和应用可移植性绑定在一起的两种或更多种类型的云(例如,私有、社区或公共)。
一般而言,云计算模型使得先前可能由组织自己的信息技术部门提供的那些职责中的一些职责代替地能够作为云环境内的服务层来交付,以供消费者使用(根据云的公共/私人性质,在组织内部或外部)。取决于特定实现,由每个云服务层提供或在每个云服务层内提供的组件或特征的精确定义可以有所不同,但常见示例包括:软件即服务(SaaS),其中消费者使用在云基础设施上运行的软件应用,同时SaaS提供者管理或控制底层云基础设施和应用。平台即服务(PaaS),其中消费者可以使用由PaaS的供应者支持的软件编程语言和开发工具,来开发、部署和以其它方式控制它们自己的应用,同时PaaS提供者管理或控制云环境的其它方面(即,运行时执行环境下的一切)。基础设施即服务(IaaS),其中消费者可以部署和运行任意软件应用,和/或提供进程、存储装置、网络和其它基础计算资源,同时IaaS提供者管理或控制底层物理云基础设施(即,操作系统层下面的一切)。数据库即服务(DBaaS),其中消费者使用在云基础设施上运行的数据库服务器或数据库管理系统,同时DbaaS提供者管理或控制底层云基础设施和应用。
呈现上述基本计算机硬件和软件以及云计算环境是为了说明可以用于实现(一个或多个)示例实施例的基本底层计算机组件。但是,(一个或多个)示例实施例不必限于任何特定的计算环境或计算设备配置。相反,根据本公开,(一个或多个)示例实施例可以在本领域技术人员依据本公开将理解为能够支持本文呈现的(一个或多个)示例实施例的特征和功能的任何类型的系统体系架构或处理环境中实现。
在前面的说明书中,已经参考众多具体细节描述了本发明的实施例,这些细节可以依据实施方式而有所不同。因而,说明书和附图应被视为说明性而非限制性的。本发明范围的唯一和排他性指示,以及申请人意图作为本发明范围的内容,是以这种权利要求发布的具体形式从本申请发布的权利要求集合的字面和等同范围,包括任何后续更正。

Claims (34)

1.一种方法,包括:
维护全局数据字典,所述全局数据字典包含以下各项的描述:
持久存储在数据库管理系统DBMS中的本机数据,以及
未持久存储在DBMS中的外部数据;
基于全局数据字典将外部数据加载到驻留在DBMS的随机存取存储器中的存储器中列向量中,其中加载所述外部数据包括对所述外部数据进行字典编码;
在加载所述外部数据和对所述外部数据进行字典编码之后,通过与DBMS的连接从客户端接收查询;
基于全局数据字典和存储器中列向量来执行查询,其中执行所述查询包括对所述存储器中列向量中的所述外部数据执行一个或多个基于向量的数据库操作;以及
通过所述连接向客户端返回查询的结果;
其中所述方法由一个或多个计算机执行。
2.如权利要求1所述的方法,还包括在基于数据字典加载所述外部数据之后,通过将外部数据的修订版加载到所述存储器中列向量中来刷新所述存储器中列向量。
3.如权利要求1所述的方法,其中:
所述存储器中列向量是第一存储器中列向量;
所述方法还包括通过将外部数据的第二版本加载到第二存储器中列向量中来替换所述存储器中列向量。
4.如权利要求3所述的方法,其中替换所述存储器中列向量还包括删除第一存储器中列向量。
5.如权利要求3所述的方法,其中替换所述存储器中列向量还包括同时将第一存储器中列向量和第二存储器中列向量保留在DBMS的随机存取存储器中。
6.如权利要求1所述的方法,其中所述外部数据包括分布式数据集的分区。
7.如权利要求6所述的方法,其中所述数据字典声明包括所述分区和持久存储在DBMS中的第二分区的所述分布式数据集的多个分区。
8.如权利要求1所述的方法,其中执行查询包括基于查询和数据字典执行所述存储器中列向量与本机数据的数据联接。
9.如权利要求8所述的方法,其中执行数据联接是基于编码字典的,所述编码字典描述本机数据和外部数据的相同编码。
10.如权利要求8所述的方法,其中数据联接基于联接组,所述联接组基于本机数据和外部数据。
11.如权利要求8所述的方法,还包括将值聚合操作应用于数据联接。
12.如权利要求1所述的方法,其中所述加载响应于第一查询,并且所述执行响应于第二查询。
13.如权利要求1所述的方法,其中:
所述存储器中列向量是第一存储器中列向量;
所述方法还包括通过以下方式加载驻留在DBMS的随机存取存储器中的存储器中表:
将第二外部数据加载到第二存储器中列向量中,以及
将存储器中表定义为包含第一存储器中列向量和第二存储器中列向量。
14.如权利要求13所述的方法,其中:
将外部数据加载到第一存储器中列向量中是响应于第一查询的,以及
将第二外部数据加载到第二存储器中列向量中是响应于第二查询的。
15.如权利要求13所述的方法,还包括:响应于仅移除存储器中表的命令,删除第一存储器中列向量。
16.如权利要求1所述的方法,还包括:响应于仅移除所述存储器中列向量的命令,删除所述存储器中列向量。
17.如权利要求1所述的方法,还包括,响应于数据定义语言DDL命令,创建所述存储器中列向量。
18.如权利要求1所述的方法,其中执行查询包括执行单指令多数据SIMD指令以并发地处理来自所述存储器中列向量的多个值。
19.如权利要求1所述的方法,还包括基于所述存储器中列向量创建虚拟列。
20.如权利要求1所述的方法,还包括将窗口函数应用于所述存储器中列向量。
21.如权利要求1所述的方法,还包括:
永久存储包括所述存储器中列向量的数据库检查点;
将所述存储器中列向量从数据库检查点复制到DBMS的随机存取存储器中。
22.如权利要求1所述的方法,其中:
加载外部数据包括加载同一值的多个实例;
所述方法还包括向所述同一值的所述多个实例中的每个实例指派不同的串行标识符。
23.如权利要求22所述的方法,其中每个实例的不同的串行标识符包括将不同的串行标识符存储在第二存储器中列向量中。
24.如权利要求1所述的方法,还包括将值聚合操作应用于所述存储器中列向量。
25.如权利要求24所述的方法,其中应用所述值聚合操作包括使用编码字典,所述编码字典描述对本机数据和外部数据的相同编码。
26.如权利要求25所述的方法,其中使用编码字典包括构建密集分组键。
27.如权利要求26所述的方法,其中在处理查询时构建密集分组键不发生。
28.如权利要求1所述的方法,其中编码字典描述对本机数据和外部数据的相同编码。
29.如权利要求28所述的方法,还包括基于以下中的至少一者来创建编码字典:
解析当前查询和/或解析一个或多个过去查询,或者
在执行当前查询和/或执行一个或多个过去查询的同时进行扫描。
30.如权利要求29所述的方法,其中创建所述编码字典是响应于以下中的至少一项而进行的:
检测到所述相同的多个不同值包括本机数据的不同值和外部数据的不同值;或者
接收到基于本机数据和外部数据创建编码字典的命令。
31.一种或多种存储指令的非暂态计算机可读介质,所述指令在由一个或多个处理器执行时使得:
维护全局数据字典,所述全局数据字典包含以下各项的描述:
持久存储在数据库管理系统DBMS中的本机数据,以及
未持久存储在DBMS中的外部数据;
基于全局数据字典将外部数据加载到驻留在DBMS的随机存取存储器中的存储器中列向量中,其中加载所述外部数据包括对所述外部数据进行字典编码;
在加载所述外部数据和对所述外部数据进行字典编码之后,通过与DBMS的连接从客户端接收查询;
基于全局数据字典和存储器中列向量执行查询,其中执行所述查询包括对所述存储器中列向量中的所述外部数据执行一个或多个基于向量的数据库操作;以及
通过所述连接向客户端返回查询的结果。
32.一种或多种存储指令的非暂态计算机可读介质,所述指令在由一个或多个处理器执行时使得如权利要求2-30中任一项所述的方法被执行。
33.一种计算设备,包括:
一个或多个处理器;以及
一个或多个存储指令的非暂态计算机可读介质,所述指令在由所述一个或多个处理器执行时使得如权利要求1-30中任一项所述的方法被执行。
34.一种包括用于执行如权利要求1-30中任一项所述的方法的部件的装置。
CN201880063168.3A 2017-09-30 2018-09-28 对外部驻留数据执行存储器中列分析查询 Active CN111164585B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310919185.5A CN116955316A (zh) 2017-09-30 2018-09-28 对外部驻留数据执行存储器中列分析查询

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762566386P 2017-09-30 2017-09-30
US62/566,386 2017-09-30
US16/135,748 2018-09-19
US16/135,748 US11675761B2 (en) 2017-09-30 2018-09-19 Performing in-memory columnar analytic queries on externally resident data
PCT/US2018/053523 WO2019067964A1 (en) 2017-09-30 2018-09-28 REALIZING COLUMN ANALYTICAL INTERROGATIONS IN A MEMORY ON DATA RESIDING OUTSIDE

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202310919185.5A Division CN116955316A (zh) 2017-09-30 2018-09-28 对外部驻留数据执行存储器中列分析查询

Publications (2)

Publication Number Publication Date
CN111164585A CN111164585A (zh) 2020-05-15
CN111164585B true CN111164585B (zh) 2023-08-08

Family

ID=65897938

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202310919185.5A Pending CN116955316A (zh) 2017-09-30 2018-09-28 对外部驻留数据执行存储器中列分析查询
CN201880063168.3A Active CN111164585B (zh) 2017-09-30 2018-09-28 对外部驻留数据执行存储器中列分析查询

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202310919185.5A Pending CN116955316A (zh) 2017-09-30 2018-09-28 对外部驻留数据执行存储器中列分析查询

Country Status (4)

Country Link
US (2) US11675761B2 (zh)
EP (1) EP3688611B1 (zh)
CN (2) CN116955316A (zh)
WO (1) WO2019067964A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10936616B2 (en) 2014-06-09 2021-03-02 Oracle International Corporation Storage-side scanning on non-natively formatted data
US10467243B2 (en) 2015-08-26 2019-11-05 Oracle International Corporation Efficient in-memory DB query processing over any semi-structured data formats
US10726016B2 (en) 2015-10-15 2020-07-28 Oracle International Corporation In-memory column-level multi-versioned global dictionary for in-memory databases
US10678788B2 (en) 2015-10-22 2020-06-09 Oracle International Corporation Columnar caching in tiered storage
US10810208B2 (en) 2016-09-12 2020-10-20 Oracle International Corporation Efficient evaluation of queries with multiple predicate expressions
US10572475B2 (en) 2016-09-23 2020-02-25 Oracle International Corporation Leveraging columnar encoding for query operations
US11170002B2 (en) 2018-10-19 2021-11-09 Oracle International Corporation Integrating Kafka data-in-motion with data-at-rest tables
US11194795B2 (en) 2019-04-16 2021-12-07 Snowflake Inc. Automated maintenance of external tables in database systems
US11537617B2 (en) * 2019-04-30 2022-12-27 Dremio Corporation Data system configured to transparently cache data of data sources and access the cached data
US11461324B2 (en) * 2019-08-29 2022-10-04 Oracle International Corporation First futamura projection in the context of SQL expression evaluation
KR20210052702A (ko) 2019-10-30 2021-05-11 삼성전자주식회사 뉴럴 프로세싱 유닛 및 이를 포함하는 전자장치
US11423025B2 (en) * 2020-07-27 2022-08-23 International Business Machines Corporation Direct data loading of middleware-generated records
US11461328B2 (en) 2020-09-21 2022-10-04 Oracle International Corporation Method for using a sematic model to transform SQL against a relational table to enable performance improvements
US11734291B2 (en) * 2020-10-21 2023-08-22 Ebay Inc. Parallel execution of API calls using local memory of distributed computing devices
US11449487B1 (en) 2021-03-22 2022-09-20 International Business Machines Corporation Efficient indexing of columns with inappropriate data types in relational databases
US11593382B2 (en) 2021-03-22 2023-02-28 International Business Machines Corporation Efficient storage of columns with inappropriate data types in relational databases
US11789948B2 (en) * 2021-12-10 2023-10-17 Sap Se Computational dependency directory
US20230237047A1 (en) * 2022-01-26 2023-07-27 Oracle International Corporation Fast and memory-efficient distributed graph mutations
US11791835B1 (en) * 2022-06-13 2023-10-17 International Business Machines Corporation Compression improvement in data replication
CN116595003B (zh) * 2023-05-15 2023-11-17 中国科学院空天信息创新研究院 一种碳排放与汇聚减排多模式空间数据内容编码与数字摘要方法
CN117648495B (zh) * 2024-01-18 2024-04-26 卓世科技(海南)有限公司 一种基于云原生向量数据的数据推送方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473325A (zh) * 2013-09-13 2013-12-25 中国工商银行股份有限公司 一种实现生成测试案例数据的系统及方法
CN105283872A (zh) * 2013-04-19 2016-01-27 甲骨文国际公司 为sql处理缓存外部数据源

Family Cites Families (172)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5095421A (en) 1989-08-17 1992-03-10 International Business Machines Corporation Transaction processing facility within an operating system environment
US5388196A (en) 1990-09-07 1995-02-07 Xerox Corporation Hierarchical shared books with database
US5263156A (en) 1990-12-20 1993-11-16 Bell Communications Research, Inc. Parallel, distributed optimistic concurrency control certification using hardware filtering
US5287496A (en) 1991-02-25 1994-02-15 International Business Machines Corporation Dynamic, finite versioning for concurrent transaction and query processing
US5369757A (en) 1991-06-18 1994-11-29 Digital Equipment Corporation Recovery logging in the presence of snapshot files by ordering of buffer pool flushing
US5333316A (en) 1991-08-16 1994-07-26 International Business Machines Corporation Locking and row by row modification of a database stored in a single master table and multiple virtual tables of a plurality of concurrent users
EP0541281B1 (en) 1991-11-04 1998-04-29 Commvault Systems, Inc. Incremental-computer-file backup using signatures
US5355477A (en) 1991-12-23 1994-10-11 International Business Machines Corporation Method for updating a block using record-level locks by committing the update if the block has not been updated by another process otherwise spinning
US5555404A (en) 1992-03-17 1996-09-10 Telenor As Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
US5423037A (en) 1992-03-17 1995-06-06 Teleserve Transaction Technology As Continuously available database server having multiple groups of nodes, each group maintaining a database copy with fragments stored on multiple nodes
US5241675A (en) 1992-04-09 1993-08-31 Bell Communications Research, Inc. Method for enforcing the serialization of global multidatabase transactions through committing only on consistent subtransaction serialization by the local database managers
US5454102A (en) 1993-01-19 1995-09-26 Canon Information Systems, Inc. Method and apparatus for transferring structured data using a self-generating node network
US5332265A (en) 1993-01-22 1994-07-26 Minnesota Mining And Manufacturing Company Advertising assembly
US5553279A (en) 1993-10-08 1996-09-03 International Business Machines Corporation Lossless distribution of time series data in a relational data base network
US5613113A (en) 1993-10-08 1997-03-18 International Business Machines Corporation Consistent recreation of events from activity logs
US5642503A (en) 1993-12-15 1997-06-24 Microsoft Corporation Method and computer system for implementing concurrent accesses of a database record by multiple users
US5581753A (en) 1994-09-28 1996-12-03 Xerox Corporation Method for providing session consistency guarantees
US5574906A (en) 1994-10-24 1996-11-12 International Business Machines Corporation System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing
US5566315A (en) 1994-12-30 1996-10-15 Storage Technology Corporation Process of predicting and controlling the use of cache memory in a computer system
WO1997004389A1 (en) 1995-07-20 1997-02-06 Novell, Inc. Transaction synchronization in a disconnectable computer and network
US5870758A (en) 1996-03-11 1999-02-09 Oracle Corporation Method and apparatus for providing isolation levels in a database system
US6321369B1 (en) 1996-10-28 2001-11-20 Altera Corporation Interface for compiling project variations in electronic design environments
US5806076A (en) 1996-10-29 1998-09-08 Oracle Corporation Tracking dependencies between transactions in a database
US5870761A (en) 1996-12-19 1999-02-09 Oracle Corporation Parallel queue propagation
US5956731A (en) 1997-04-23 1999-09-21 Oracle Corporation Sharing snapshots for consistent reads
US5951695A (en) 1997-07-25 1999-09-14 Hewlett-Packard Company Fast database failover
US6014669A (en) 1997-10-01 2000-01-11 Sun Microsystems, Inc. Highly-available distributed cluster configuration database
US5924096A (en) 1997-10-15 1999-07-13 Novell, Inc. Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand
US6122639A (en) * 1997-12-23 2000-09-19 Cisco Technology, Inc. Network device information collection and change detection
US6192377B1 (en) 1998-05-13 2001-02-20 Oracle Corporation Method and apparatus for determing whether a transaction can use a version of a data item
US6513041B2 (en) 1998-07-08 2003-01-28 Required Technologies, Inc. Value-instance-connectivity computer-implemented database
US6353835B1 (en) 1998-08-03 2002-03-05 Lucent Technologies Inc. Technique for effectively maintaining materialized views in a data warehouse
US6567814B1 (en) * 1998-08-26 2003-05-20 Thinkanalytics Ltd Method and apparatus for knowledge discovery in databases
US6393485B1 (en) 1998-10-27 2002-05-21 International Business Machines Corporation Method and apparatus for managing clustered computer systems
US6370622B1 (en) 1998-11-20 2002-04-09 Massachusetts Institute Of Technology Method and apparatus for curious and column caching
US6516327B1 (en) 1998-12-24 2003-02-04 International Business Machines Corporation System and method for synchronizing data in multiple databases
US6449606B1 (en) 1998-12-28 2002-09-10 Oracle Corporation Using a materialized view to process a related query containing an antijoin
US6122630A (en) 1999-06-08 2000-09-19 Iti, Inc. Bidirectional database replication scheme for controlling ping-ponging
US6477536B1 (en) 1999-06-22 2002-11-05 Microsoft Corporation Virtual cubes
US6839751B1 (en) 1999-06-30 2005-01-04 Hi/Fn, Inc. Re-using information from data transactions for maintaining statistics in network monitoring
US6401104B1 (en) 1999-07-03 2002-06-04 Starfish Software, Inc. System and methods for synchronizing datasets using cooperation among multiple synchronization engines
US7024656B1 (en) 1999-11-29 2006-04-04 Oracle International Corporation Persistent agents
US7082435B1 (en) 2000-01-03 2006-07-25 Oracle International Corporation Method and mechanism for implementing and accessing virtual database table structures
US7062483B2 (en) 2000-05-18 2006-06-13 Endeca Technologies, Inc. Hierarchical data-driven search and navigation system and method for information retrieval
US6611898B1 (en) 2000-12-22 2003-08-26 Convergys Customer Management Group, Inc. Object-oriented cache management system and method
US6691139B2 (en) 2001-01-31 2004-02-10 Hewlett-Packard Development Co., Ltd. Recreation of archives at a disaster recovery site
US20020165724A1 (en) 2001-02-07 2002-11-07 Blankesteijn Bartus C. Method and system for propagating data changes through data objects
JP4255624B2 (ja) * 2001-02-22 2009-04-15 株式会社日立製作所 データベース管理システム、データベース管理システムにおける問合せ方法、およびデータベース管理システムにおける問い合わせ実行プログラム
US6804677B2 (en) 2001-02-26 2004-10-12 Ori Software Development Ltd. Encoding semi-structured data for efficient search and browsing
US7548898B1 (en) 2001-02-28 2009-06-16 Teradata Us, Inc. Parallel migration of data between systems
US7177866B2 (en) 2001-03-16 2007-02-13 Gravic, Inc. Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only
US7464113B1 (en) 2001-05-10 2008-12-09 Oracle International Corporations Disaster recovery with bounded data loss
US6574717B1 (en) 2001-05-31 2003-06-03 Oracle Corporation Techniques for time-based retention of a reusable resource
US7024414B2 (en) 2001-08-06 2006-04-04 Sensage, Inc. Storage of row-column data
US20030088537A1 (en) 2001-08-08 2003-05-08 Nec Eluminant Technologies, Inc. High speed data compression and decompression apparatus and method
US20030033179A1 (en) * 2001-08-09 2003-02-13 Katz Steven Bruce Method for generating customized alerts related to the procurement, sourcing, strategic sourcing and/or sale of one or more items by an enterprise
US7249131B2 (en) 2001-09-06 2007-07-24 Initiate Systems, Inc. System and method for dynamically caching dynamic multi-sourced persisted EJBs
US7290017B1 (en) 2001-09-20 2007-10-30 Emc Corporation System and method for management of data replication
US7644014B2 (en) 2001-10-17 2010-01-05 Sun Microsystems, Inc. Document exchange framework for automated extensible markup language data in an e-procurement system and method
US6993631B2 (en) 2002-05-15 2006-01-31 Broadcom Corporation L2 cache maintaining local ownership of remote coherency blocks
US7222136B1 (en) 2002-05-23 2007-05-22 Oracle International Corporation Communicating data dictionary information of database objects through a redo stream
US7171404B2 (en) 2002-06-13 2007-01-30 Mark Logic Corporation Parent-child query indexing for XML databases
US7210006B2 (en) 2002-06-28 2007-04-24 Sun Microsystems, Inc. Computer system supporting read-to-write-back transactions for I/O devices
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
US7337214B2 (en) 2002-09-26 2008-02-26 Yhc Corporation Caching, clustering and aggregating server
US7051041B1 (en) * 2002-10-21 2006-05-23 Hewlett-Packard Development Company, L.P. Simplified relational database extension to DBM hash tables and method for using same
US7318076B2 (en) * 2003-01-22 2008-01-08 Intelitrac, Inc. Memory-resident database management system and implementation thereof
US7546226B1 (en) 2003-03-12 2009-06-09 Microsoft Corporation Architecture for automating analytical view of business applications
JP4579501B2 (ja) 2003-03-27 2010-11-10 富士通株式会社 アプリケーションサーバおよびアプリケーションプログラム
US20040199552A1 (en) 2003-04-01 2004-10-07 Microsoft Corporation Transactionally consistent change tracking for databases
US7287034B2 (en) 2003-05-08 2007-10-23 Oracle International Corporation On-demand multi-version data dictionary to support distributed applications
US8131739B2 (en) 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
US7979384B2 (en) * 2003-11-06 2011-07-12 Oracle International Corporation Analytic enhancements to model clause in structured query language (SQL)
US7877400B1 (en) 2003-11-18 2011-01-25 Adobe Systems Incorporated Optimizations of XPaths
US7966293B1 (en) 2004-03-09 2011-06-21 Netapp, Inc. System and method for indexing a backup using persistent consistency point images
GB0414291D0 (en) 2004-06-25 2004-07-28 Ibm Methods, apparatus and computer programs for data replication
US7596571B2 (en) 2004-06-30 2009-09-29 Technorati, Inc. Ecosystem method of aggregation and search and related techniques
US20060010130A1 (en) 2004-07-09 2006-01-12 Avraham Leff Method and apparatus for synchronizing client transactions executed by an autonomous client
US7395258B2 (en) 2004-07-30 2008-07-01 International Business Machines Corporation System and method for adaptive database caching
EP1684194A1 (en) 2005-01-25 2006-07-26 Sap Ag A central lock service for database applications
US7546431B2 (en) 2005-03-21 2009-06-09 Emc Corporation Distributed open writable snapshot copy facility using file migration policies
JP4414381B2 (ja) 2005-08-03 2010-02-10 富士通株式会社 ファイル管理プログラム、ファイル管理装置、ファイル管理方法
EP1960903A4 (en) 2005-11-28 2009-01-28 Commvault Systems Inc SYSTEMS AND METHOD FOR CLASSIFICATION AND TRANSFER OF INFORMATION IN A STORAGE NETWORK
US20070174825A1 (en) 2006-01-25 2007-07-26 Eichenberger Alexandre E Apparatus and method for optimizing scalar code executed on a SIMD engine by alignment of SIMD slots
US8156156B2 (en) 2006-04-06 2012-04-10 Universita Di Pisa Method of structuring and compressing labeled trees of arbitrary degree and shape
US7627612B2 (en) 2006-09-28 2009-12-01 Emc Israel Development Center, Ltd. Methods and apparatus for optimal journaling for continuous data replication
US7716517B2 (en) 2006-12-21 2010-05-11 Telefonaktiebolaget Lm Ericsson (Publ) Distributed platform management for high availability systems
US20080209009A1 (en) 2007-01-18 2008-08-28 Niraj Katwala Methods and systems for synchronizing cached search results
US8868504B2 (en) 2007-03-07 2014-10-21 Oracle International Corporation Database system with active standby and nodes
US8892780B2 (en) 2007-03-08 2014-11-18 Oracle International Corporation Management of shared storage I/O resources
US8578261B1 (en) 2007-06-22 2013-11-05 Adobe Systems Incorporated Active preview of hyperlink content in browser supported file-format
US8914352B2 (en) 2007-07-10 2014-12-16 Teradata Us, Inc. Non-equijoin metadata
US20090063538A1 (en) 2007-08-30 2009-03-05 Krishna Prasad Chitrapura Method for normalizing dynamic urls of web pages through hierarchical organization of urls from a web site
US7570451B2 (en) 2007-12-12 2009-08-04 Seagate Technology Llc Servo architecture for high areal density data storage
US8037110B2 (en) 2007-12-27 2011-10-11 Microsoft Corporation Business data access client for online/offline client use
US8401994B2 (en) 2009-09-18 2013-03-19 Oracle International Corporation Distributed consistent grid of in-memory database caches
US9513905B2 (en) 2008-03-28 2016-12-06 Intel Corporation Vector instructions to enable efficient synchronization and parallel reduction operations
US10452716B2 (en) 2008-06-07 2019-10-22 International Business Machines Corporation Optimizing complex path endpoint resolution
US20110141136A1 (en) * 2008-06-20 2011-06-16 Business Intelligence Solutions Safe B.V. Method and system of graphically representing discrete data as a continuous surface
US7991775B2 (en) 2008-08-08 2011-08-02 Oracle International Corporation Global checkpoint SCN
US8204859B2 (en) 2008-12-10 2012-06-19 Commvault Systems, Inc. Systems and methods for managing replicated database data
US7912051B1 (en) 2008-12-19 2011-03-22 Emc Corporation Techniques for port virtualization
US8527523B1 (en) * 2009-04-22 2013-09-03 Equivio Ltd. System for enhancing expert-based computerized analysis of a set of digital documents and methods useful in conjunction therewith
US8706742B1 (en) * 2009-04-22 2014-04-22 Equivio Ltd. System for enhancing expert-based computerized analysis of a set of digital documents and methods useful in conjunction therewith
US20100306234A1 (en) 2009-05-28 2010-12-02 Microsoft Corporation Cache synchronization
US8484210B2 (en) 2009-06-19 2013-07-09 Sybase, Inc. Representing markup language document data in a searchable format in a database system
US20100325352A1 (en) 2009-06-19 2010-12-23 Ocz Technology Group, Inc. Hierarchically structured mass storage device and method
US8732163B2 (en) 2009-08-04 2014-05-20 Sybase, Inc. Query optimization with memory I/O awareness
US8538930B2 (en) 2009-10-09 2013-09-17 International Business Machines Corporation Method and system for database recovery
US8326839B2 (en) 2009-11-09 2012-12-04 Oracle International Corporation Efficient file access in a large repository using a two-level cache
US8898181B2 (en) 2010-06-22 2014-11-25 Microsoft Corporation Subscription for integrating external data from external system
CN102346747B (zh) 2010-08-04 2013-02-13 鸿富锦精密工业(深圳)有限公司 在数据模型中查找参数的方法
US8838919B2 (en) 2010-08-30 2014-09-16 Oracle International Corporation Controlling data lag in a replicated computer system
US9317556B2 (en) 2010-09-28 2016-04-19 Sybase. Inc. Accelerating database queries containing bitmap-based conditions
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
US8793328B2 (en) 2010-12-17 2014-07-29 Facebook, Inc. Distributed storage system
US8868492B2 (en) 2011-06-15 2014-10-21 Oracle International Corporation Method for maximizing throughput and minimizing transactions response times on the primary system in the presence of a zero data loss standby replica
CN102999519B (zh) 2011-09-15 2017-05-17 上海盛付通电子商务有限公司 一种数据库的读写方法及系统
US9275050B2 (en) 2011-10-24 2016-03-01 Apptio, Inc. Global dictionaries using universal primitives
US9122606B2 (en) 2011-11-21 2015-09-01 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for distributing tiered cache processing across multiple processors
US8521788B2 (en) 2011-12-08 2013-08-27 Oracle International Corporation Techniques for maintaining column vectors of relational data within volatile memory
US8676772B2 (en) 2011-12-09 2014-03-18 Telduráðgevin Sp/f Systems and methods for improving database performance
US8768927B2 (en) 2011-12-22 2014-07-01 Sap Ag Hybrid database table stored as both row and column store
US8892586B2 (en) 2011-12-23 2014-11-18 Sap Ag Accelerated query operators for high-speed, in-memory online analytical processing queries and operations
US9424282B2 (en) 2012-03-05 2016-08-23 Hasso-Plattner-Institut Fur Softwaresystemtechnik Gmbh Online reorganization of hybrid in-memory databases
US9465844B2 (en) 2012-04-30 2016-10-11 Sap Se Unified table query processing
US10579634B2 (en) 2012-08-30 2020-03-03 Citus Data Bilgi Islemleri Ticaret A.S. Apparatus and method for operating a distributed database with foreign tables
US10726010B2 (en) 2012-09-04 2020-07-28 Oracle International Corporation Optimization technique of generalized disjunctive semi/anti join
US9146955B2 (en) 2012-12-18 2015-09-29 Sap Se In-memory, columnar database multidimensional analytical view integration
US9519701B2 (en) 2012-12-26 2016-12-13 Sap Se Generating information models in an in-memory database system
US9412092B2 (en) 2013-01-14 2016-08-09 Google Inc. Generating a filtered view of a content stream
US9390129B2 (en) 2013-01-30 2016-07-12 Oracle International Corporation Scalable and adaptive evaluation of reporting window functions
US9104726B2 (en) 2013-02-05 2015-08-11 Smartfocus Holdings Limited Columnar databases
US9110935B2 (en) 2013-02-26 2015-08-18 Sap Se Generate in-memory views from universe schema
US8941175B2 (en) 2013-06-17 2015-01-27 United Microelectronics Corp. Power array with staggered arrangement for improving on-resistance and safe operating area
US20150019559A1 (en) 2013-07-11 2015-01-15 Salesforce.Com, Inc. Systems and methods for identifying categories with external content objects in an on-demand environment
US11113054B2 (en) 2013-09-10 2021-09-07 Oracle International Corporation Efficient hardware instructions for single instruction multiple data processors: fast fixed-length value compression
US20150088919A1 (en) 2013-09-20 2015-03-26 Oracle International Corporation Transforming a query to reuse stored data
US9836519B2 (en) * 2013-09-20 2017-12-05 Oracle International Corporation Densely grouping dimensional data
US9430390B2 (en) 2013-09-21 2016-08-30 Oracle International Corporation Core in-memory space and object management architecture in a traditional RDBMS supporting DW and OLTP applications
US10303682B2 (en) 2013-09-21 2019-05-28 Oracle International Corporation Automatic verification and triage of query results
US9292564B2 (en) 2013-09-21 2016-03-22 Oracle International Corporation Mirroring, in memory, data from disk to improve query performance
US10043035B2 (en) * 2013-11-01 2018-08-07 Anonos Inc. Systems and methods for enhancing data protection by anonosizing structured and unstructured data and incorporating machine learning and artificial intelligence in classical and quantum computing environments
US9659045B2 (en) 2013-11-08 2017-05-23 Oracle International Corporation Generic indexing for efficiently supporting ad-hoc query over hierarchically marked-up data
US9619581B2 (en) 2013-12-20 2017-04-11 Microsoft Technology Licensing, Llc Constructing queries for execution over multi-dimensional data structures
US10235377B2 (en) 2013-12-23 2019-03-19 Sap Se Adaptive dictionary compression/decompression for column-store databases
US9342544B2 (en) * 2014-01-30 2016-05-17 International Business Machines Corporation Parallel load in a column-store database
US9720991B2 (en) 2014-03-04 2017-08-01 Microsoft Technology Licensing, Llc Seamless data migration across databases
US9720931B2 (en) 2014-05-09 2017-08-01 Sap Se Querying spatial data in column stores using grid-order scans
US10019473B2 (en) * 2014-06-09 2018-07-10 Oracle International Corporation Accessing an external table in parallel to execute a query
US10599625B2 (en) * 2014-06-09 2020-03-24 Micro Focus Llc Managing storage of data
US9715353B2 (en) 2014-09-16 2017-07-25 International Business Machines Corporation Data set management
US10007691B2 (en) 2014-09-24 2018-06-26 Oracle International Corporation Prioritizing repopulation of in-memory compression units
US9870378B2 (en) 2014-11-18 2018-01-16 International Business Machines Corporation Read and delete input/output operation for database management
US11023453B2 (en) 2015-01-29 2021-06-01 Hewlett Packard Enterprise Development Lp Hash index
US9922114B2 (en) 2015-01-30 2018-03-20 Splunk Inc. Systems and methods for distributing indexer configurations
EP3259845B1 (en) * 2015-02-16 2019-09-18 Sound Devices, LLC High dynamic range analog-to-digital conversion with selective regression based data repair
US20160294651A1 (en) 2015-03-31 2016-10-06 Mckesson Corporation Method, apparatus, and computer program product for monitoring an electronic data exchange
US20170017683A1 (en) 2015-07-13 2017-01-19 28msec Systems And Methods For Storing And Interacting With Data From Heterogeneous Data Sources
US10067954B2 (en) 2015-07-22 2018-09-04 Oracle International Corporation Use of dynamic dictionary encoding with an associated hash table to support many-to-many joins and aggregations
US10262012B2 (en) 2015-08-26 2019-04-16 Oracle International Corporation Techniques related to binary encoding of hierarchical data objects to support efficient path navigation of the hierarchical data objects
US11294816B2 (en) * 2015-10-15 2022-04-05 Oracle International Corporation Evaluating SQL expressions on dictionary encoded vectors
US10545943B2 (en) 2016-04-05 2020-01-28 International Business Machines Corporation Change stream analytics for data replication systems
US10810208B2 (en) 2016-09-12 2020-10-20 Oracle International Corporation Efficient evaluation of queries with multiple predicate expressions
US10558659B2 (en) 2016-09-16 2020-02-11 Oracle International Corporation Techniques for dictionary based join and aggregation
US11475012B2 (en) 2016-09-26 2022-10-18 Singlestore, Inc. Real-time data retrieval
US10176068B2 (en) 2016-11-29 2019-01-08 Keysight Technologies Singapore (Holdings) Pte. Ltd. Methods, systems, and computer readable media for token based message capture
US10365949B2 (en) 2017-08-24 2019-07-30 Dropbox, Inc. Large-scale asynchronous event processor
US10726007B2 (en) * 2017-09-26 2020-07-28 Microsoft Technology Licensing, Llc Building heavy hitter summary for query optimization
US20190384835A1 (en) 2018-06-14 2019-12-19 Sap Se Ingestion engine method and system
US11170002B2 (en) 2018-10-19 2021-11-09 Oracle International Corporation Integrating Kafka data-in-motion with data-at-rest tables

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105283872A (zh) * 2013-04-19 2016-01-27 甲骨文国际公司 为sql处理缓存外部数据源
CN103473325A (zh) * 2013-09-13 2013-12-25 中国工商银行股份有限公司 一种实现生成测试案例数据的系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
滕伟."面向Web信息集成的Web信息抽取中若干关键问题的研究".《中国博士学位论文全文数据库(电子期刊)信息科技辑》.2007,全文. *

Also Published As

Publication number Publication date
US20230273910A1 (en) 2023-08-31
US11675761B2 (en) 2023-06-13
CN111164585A (zh) 2020-05-15
EP3688611B1 (en) 2022-03-16
CN116955316A (zh) 2023-10-27
WO2019067964A1 (en) 2019-04-04
US20190102412A1 (en) 2019-04-04
EP3688611A1 (en) 2020-08-05

Similar Documents

Publication Publication Date Title
CN111164585B (zh) 对外部驻留数据执行存储器中列分析查询
Armbrust et al. Delta lake: high-performance ACID table storage over cloud object stores
US11068501B2 (en) Single phase transaction commits for distributed database transactions
US9805079B2 (en) Executing constant time relational queries against structured and semi-structured data
US10528341B2 (en) User-configurable database artifacts
EP3026578B1 (en) N-bit compressed versioned column data array for in-memory columnar stores
US10296611B2 (en) Optimized rollover processes to accommodate a change in value identifier bit size and related system reload processes
US10114626B2 (en) Database level containers
US9600269B1 (en) Deployment of database objects
EP2746965B1 (en) Systems and methods for in-memory database processing
CN113227998A (zh) 全面支持自主json文档对象(ajd)云服务的技术
JP2016519810A (ja) 半構造データのためのスケーラブルな分析プラットフォーム
US9805137B2 (en) Virtualizing schema relations over a single database relation
US20170147310A1 (en) Deployment process plugin architecture
CN112513835A (zh) 用存储器内列式查询处理启用和集成存储器内半结构化数据和文本文档搜索的技术
CN114556291A (zh) 高效支持json文档的分段更新
US11656953B2 (en) Small database page recovery
US10671411B2 (en) Cloning for object-oriented environment
Rai et al. Nosql hands on
CN116964571A (zh) 对rdbms中存储的聚合存储数据全面支持多值、多字段、多级别、多位置功能索引的技术
US11327961B2 (en) Action queue for hierarchy maintenance
US10268636B2 (en) Column level invalidation for in-memory database
Edara et al. Vortex: A Stream-oriented Storage Engine For Big Data Analytics
US12007983B2 (en) Optimization of application of transactional information for a hybrid transactional and analytical processing architecture
US20230068358A1 (en) Using self-maintaining structure information for faster data access

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant