对外部驻留数据执行存储器中列分析查询制造技术

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

Perform column analysis query on external resident data

【技术实现步骤摘要】
【国外来华专利技术】对外部驻留数据执行存储器中列分析查询
本公开涉及数据库集成。本文提出的技术用于使用存储器中(in-memory)列向量来处理关系数据库管理系统(RDBMS)外部的数据,以及将外部数据与RDBMS本机的关系表数据进行逻辑联接。
技术介绍
企业数据库用户的重要业务用例需要集成数据竖井(silo),诸如RDBMS中的公司数据(例如销售记录)和临时数据,诸如Hadoop分布式文件系统(HDFS)中的点击流。例如,会计师可能需要集成来自两个竖井的数据的报告。数据科学家可能想要编写集成来自两个竖井的数据的诸如利用在线分析处理(OLAP)的探索性查询。但是,提取/传输/加载(ETL)工具远远不是无缝的,并且可能需要各种自定义脚本和适配器来完成任何可能有助于集成的暂存(staging)和重新格式化。例如,ETL通常需要实际上将外部数据复制到关系数据库表中,以使数据可被查询访问。由于外部数据(例如大数据)的潜在价值,尤其是与关系数据相关联时,ETL的花费通常是值得的。大数据具有内在价值,但必须发现它。存在从数据中获取价值的多种定量和调查技术,从发现消费者的偏好或情绪,到按地点提供相关报价,或用于识别将要发生故障的装备。技术上的突破是数据存储和计算的成本呈指数下降,从而产生了大量数据,从这些大量数据来对整个数据集进行统计分析是可能的。采样对于可行性不再是必要的。该技术突破使得能够进行准确和精确得多的决策。但是,寻找价值还需要新的发现流程,其中涉及聪明而有见识的分析师、业务用户和执行人员。例如,一个大数据挑战是人类挑战,该挑战是学习提出正确的问题、识别模式、做出有见识的假设并预测行为。但是,由于一些原因,ETL可能不适用于大数据。一个问题是大数据量很大。虽然量表明更多数据,但数据的粒度性质是唯一的。大数据可能需要处理大量低密度、非结构化的Hadoop数据(价值未知的数据,诸如行情数据馈送、网页和移动应用上的点击流、网络流量、启用传感器的装备以光速捕获的数据,以及更多其他数据)。诸如ApacheHive之类的Hadoop数据仓库工具可能在某种程度上有所帮助。但是,虽然由于Hive和RDBMS都接受结构化查询语言(SQL),所以它们可能看起来相似,但是两者之间延迟的巨大差异意味着它们可能永远无法相互替代。新的非结构化数据类型可能是另一个大数据的问题。非结构化和半结构化数据类型,诸如文本、音频和视频,需要进行额外的处理才能导出含义和支持的元数据。一旦被理解,非结构化数据与结构化数据具有许多相同的要求,诸如汇总、链接、可审核性和隐私性。当来自已知来源的数据发生更改而没有通知时,会出现进一步的复杂性。频繁或实时的模式更改对于事务和分析环境都是巨大的负担。列存储库(诸如ApacheCassandra)在某种程度上可能有所帮助,但不适合与RDBMS集成。临时数据通常在与关系数据联接之前经过几轮的映射/缩减(map/reduce)(例如Hadoop)处理来实现缩减形式。有一个选择是在每次映射/缩减作业的结果被联接时使用慢速外部表扫描,或者使用空间将外部数据导入到关系数据库表(例如,Oracle堆表)中,并在表内容在映射/缩减作业下次运行时将被截断时不必要地生成重做(redo)。因此,存储占用空间和重做生成可能降低异构数据仓库集成的性能。附图说明在附图中:图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.3DBMS2.4外部数据2.5存储器中列向量2.6全局数据字典2.7数据联接3.0示例联接处理3.1配置3.2查询3.3加载3.4联接4.0压缩4.1共享编码字典4.2密集键(DenseKey)4.3辅助数据4.4封装5.0保留5.1物化视图6.0存储器中表7.0刷新8.0列生命周期9.0分布式分区10.0SIMD11.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)。在实施例中,可以使用存储器中压本文档来自技高网...

【技术保护点】
1.一种方法,包括:/n维护数据字典,所述数据字典用于:/n持久存储在数据库管理系统DBMS中的本机数据,以及/n未持久存储在DBMS中的外部数据;/n通过与DBMS的连接从客户端接收查询;/n基于数据字典将外部数据加载到驻留在DBMS的随机存取存储器中的存储器中列向量中;/n基于数据字典和存储器中列向量来执行查询,其中执行所述查询包括对所述外部数据执行一个或多个基于向量的数据库操作;/n通过所述连接向客户端返回查询的结果;/n其中所述方法由一个或多个计算机执行。/n

【技术特征摘要】
【国外来华专利技术】20170930 US 62/566,386;20180919 US 16/135,7481.一种方法,包括:
维护数据字典,所述数据字典用于:
持久存储在数据库管理系统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所述的方法,还包括:响应于仅移除存储器中表的命令,删除第一存储器中列向量。<...

【专利技术属性】
技术研发人员:R·麦克尼科尔X·华A·霍洛伟S·查万J·卡普M·科尔根T·拉希里
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1