为SQL处理缓存外部数据源制造技术

技术编号:12783288 阅读:104 留言:0更新日期:2016-01-28 03:00
用于SQL处理的缓存外部数据源的技术被提供。根据实施例,数据库系统接收从外部数据源要求外来数据的查询。响应于接收查询,数据库系统确定外来数据当前是否存在于数据库系统的缓存中。响应于确定外来数据当前不存在于缓存中,数据库系统从外部数据源检索外来数据,将外来数据映射到表的列颗粒,以及将列颗粒存储在缓存中。在另一个实施例中,数据库系统接收要求外来数据的第二查询。响应于确定外来数据被缓存在存储的列颗粒中,数据库系统从缓存中检索列颗粒。

【技术实现步骤摘要】
【国外来华专利技术】
本公开通常设及评估数据库查询的技术,更具体地设及用于为查询处理缓存外部 数据源的技术。
技术介绍
数据库是存储在诸如一组硬盘之类的一个或多个存储设备上的数据和元数据的 结构化的集合。依赖于实施方式,在数据库内的数据可W根据各种数据模型被逻辑器地组 织。例如,在关系模型中,数据通常被组织到一组表中,其中每个表包括一组行和列。在大 多数情况中,每行代表不同的对象,而每列代表不同的属性。但是,其他数据模型也可W用 于组织数据。 数据库管理系统值BM巧是控制对数据库中数据的访问的软件。DBMS被配置为接 收和处理通常被称为查询的各种数据库命令。在许多实施方式中,DBMS支持符合结构化查 询语言(S化)的查询。S化是用于管理关系DBMS(畑MB巧中的数据的标准化查询语言。 S化包括两组不同的命令:用于管理和索引在数据库中的数据结构的数据定义语 言伽L)拟及用于访问和操作存在于数据结构内的数据的数据操作语言(DML)。孤L通常 被用于创建、改变W及删除诸如表、索引、视图和约束之类的数据库对象,而DML通常被用 于添加、查询、更新和删除在已有的数据库对象中的数据。 当DBMS接收诸如S化表达式之类的查询时,DBMS评估此查询W得到查询结果。查 询评估包括两个阶段:查询编译和查询执行。在查询编译期间,DBMS解析S化表达式并且 生成查询执行计划。查询执行计划指定一组有序的步骤,其经常被表示为查询操作符树,被 用于执行查询。在每个步骤处的查询操作符与表示在查询执行中将被执行的计算或其他动 作的一个或多个表达式相关联。示例的S化操作符包括但不限于表扫描、连接、表队列、分 组操作W及布隆过滤器化loomfilter)。一旦查询执行计划被生成,就根据所述计划执行 查询。 为了评估S化表达式,DBMS依赖于数据库内数据的内部结构和组织。例如,S化表 达式可W基于数据存在于特定表中的位置识别要访问数据库中的哪个数据。存在于数据库 外部的数据(运里被称为"外来数据(foreigndata)")通常不被由内部的数据库元数据 限定的结构和组织所约束。例如,外来数据可W不被外部数据源组织成表格格式,并且可W 根据外部数据源限定的不同的结构和格式被组织。因此,S化查询通常不能被用于访问和 修改数据库外部的数据。 一种使得S化查询能够分析存在于数据库之外的数据的方法设及将外来数据加 载到数据库。数据库加载器是从外部源中提取数据、将被提取的数据变换为适合于加载到 目标数据库表中的格式、W及用被提取的数据填充数据库表的应用。因此,来自外部源的数 据被数据库内部化,并且被转换为符合数据库的内部组织的格式。运种方法允许DBMS能够 在来自外部数据源的数据被加载到数据库之后对数据执行查询。但是加载过程设及较高的 处理和存储开销,特别是在外部源包括大量连续更新的数据的情况中。 另一个用于评估外来数据的方法是将查询评估卸载到外来数据的外部源。例如, 当指向外来数据的数据库查询被接收时,DBMS可W将数据库查询发送到外部源W用于评 估。外部源然后可W评估查询并且将查询结果返回到DBMS。运种方法增大了外部数据源的 处理开销,并且要求外部数据源能够处理从DBMS接收到的查询。 在此部分中描述的方法是可W寻求的方法,但不一定是之前已经被构想或寻求的 方法。因此,除非W其他方式表明,不应当假定仅仅由于在此部分中包含运些方法,在此部 分中所述的方法中的任一方法适合作为现有技术。【附图说明】 在附图中,W示例的方式而不是W限制的方式说明各种实施例,其中相同的引用 数字指代相同的元件,其中: 图1是描绘根据一个实施例的用于处理外部数据源的示例的系统架构的框图; 图2是说明根据一个实施例的用于评估访问外来数据的查询的进程的流程图; 图3是说明根据一个实施例的示例的数据库查询和结果缓存的结果状态的图表; 图4是描绘可W在其上实施实施例的计算机系统的框图。【具体实施方式】用于为S化处理缓存外来数据的技术在运里被描述。在W下描述中,为了解释的 目的,许多特定的细节被阐释W便提供对本专利技术深入的理解。但是显而易见的是,本专利技术可 W在没有运些特定细节的情况下被实施。在其他情况中,熟知的结构和设备W框图的形式 被示出W便避免不必要地使本专利技术难W理解。 总体概述根据运里所述的实施例,数据库系统被配置为按需要缓存外来数据,而不用将外 来数据加载到数据库的持久存储设备中。对外来数据的缓存在运里被称为"外部数据缓 存"。通过缓存运样的数据,可W对外来数据执行S化分析和其他数据分析,而不用重复地 从外部源提取最经常使用的外来数据。同时,因为数据仅仅被缓存而不是被持久存储在数 据库中,因此数据库不被潜在地无关的外来数据过载。因此,对外来数据的查询处理速度可 W增大,而不增大数据库的存储开销。另外,查询评估可W被数据库系统完全内部化,而不 用将计算卸载到外来数据的外部源。 在实施例中,即使生成外来数据的外部数据库可不同的格式存储数据,DBMS 也可-种数据库系统内在的格式缓存外来数据。例如,外来数据可W存在于外部数据 源中任意的数据文件中。当查询被接收时,适合的数据可W从数据文件被映射到由数据库 系统定义的一个或多个数据库对象。格式可W对应于数据库的内部结构和组织W促进使用 外来数据的查询评估。当访问外来数据的随后的查询被接收时,DBMS可W访问被缓存的外 来数据,而不必从外部源重新提取数据或重新格式化数据W符合数据库的内部组织。 在实施例中,DBMS根据一个或多个缓存管理策略管理外部数据缓存。例如,DBMS 可W从缓存中清除已经变冷的外来数据。DMBS还可W使已经变陈旧的外来数据无效。 在其他实施例中,外部数据缓存分布在多个节点上,DBMS可W将外来数据分布到 不同的节点。当访问外来数据的查询被接收时,多个节点可W用于并行地执行查询。 阳ow 系统概述 图1是描绘根据实施例的示例的系统架构的框图。数据库系统100通常包括数据 库管理器110,外部数据缓存120,W及数据库130。数据库管理器110是包括一个或多个 数据库服务器的DBMS,并且控制对存储在数据库130中的内部数据的访问,所述数据库130 包括元数据存储库132和结构化数据134。依赖于实施方式,数据库管理器110可W分布在 多个计算系统中、或单个计算机中。数据库管理器110包括数据库查询处理逻辑器112、无 效逻辑器114、W及访问驱动器116。包括数据库管理器110、外部数据缓存120、W及数据 库130的数据库系统100可W包括出于简洁的目的而不被示出的其他元件。 查询处理逻辑器112包括用于编译和执行由数据库用户140提交的数据库查询 142的逻辑器。数据库用户140可W是能够将数据库查询142提交到数据库系统100的任 何人、应用、或其他机构。查询处理逻辑器112可W处理和执行指向诸如外来数据152之类 的存在于数据库130外部的数据的S化查询、指向诸如结构化数据134之类的数据库130 内部的数据的S化查询、或指向两者的任何组合的S化查询。查询处理逻辑器112可W包 括但不限于,用于从查询表达式提取数据库操作W及生成查询执行计划的语言引擎,用于 优化查询执行计划的查询优化器,W及用于对适合本文档来自技高网...

【技术保护点】
一种用于优化查询处理的方法,所述方法包括:在数据库系统处接收需要来自于外部数据源的外来数据的查询;响应于接收所述查询,确定所述外来数据当前是否存在于所述数据库系统的缓存中;响应于确定所述外来数据当前不存在于所述缓存中:从所述外部数据源检索所述外来数据;将所述外来数据映射到表的列颗粒;以及将所述列颗粒存储在所述缓存中;其中所述方法由一个或多个计算设备执行。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:A·豪德莱C·伊艾
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:美国;US

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

1