Skip to main content
QUICK REVIEW

[论文解读] Apache Calcite: A Foundational Framework for Optimized Query Processing Over Heterogeneous Data Sources

Edmon Begoli, Jesús Camacho-Rodríguez|OSTI OAI (U.S. Department of Energy Office of Scientific and Technical Information)|Feb 28, 2018
Data Management and Algorithms参考文献 29被引用 49
一句话总结

本论文将 Apache Calcite 作为一个模块化、可嵌入的框架,提供查询处理、优化和语言支持,以在异构数据源和后端之间联合查询并优化。

ABSTRACT

Apache Calcite is a foundational software framework that provides query processing, optimization, and query language support to many popular open-source data processing systems such as Apache Hive, Apache Storm, Apache Flink, Druid, and MapD. Calcite's architecture consists of a modular and extensible query optimizer with hundreds of built-in optimization rules, a query processor capable of processing a variety of query languages, an adapter architecture designed for extensibility, and support for heterogeneous data models and stores (relational, semi-structured, streaming, and geospatial). This flexible, embeddable, and extensible architecture is what makes Calcite an attractive choice for adoption in big-data frameworks. It is an active project that continues to introduce support for the new types of data sources, query languages, and approaches to query processing and optimization.

研究动机与目标

  • 让人们认识到在异构数据源和后端之间优化查询的统一框架的必要性。
  • 将 Calcite 的架构描述为一个模块化、可扩展的查询处理基础,但不包含存储管理。
  • 解释适配器、关系代数和特性如何实现跨系统的优化与执行。
  • 突出对多种数据模型(关系型、半结构化、流处理、地理空间)和查询语言的可扩展性。
  • 通过与流行的开源系统的集成,展示采用情况及影响。

提出的方法

  • 描述 Calcite 的架构:以关系代数核心和可插拔优化器(规则、元数据提供者、规划引擎)。
  • 解释适配器设计(模型、模式、模式工厂)用于读取外部数据存储并将逻辑下推到后端。
  • 详细说明基于特质的物理属性和调用约定,促成跨后端的优化。
  • 展示以成本为基础和穷举的规划引擎,以及用于优化的物化视图重写。
  • 讨论对半结构化、流数据和地理空间数据的扩展,以及语言集成查询(LINQ4J)。
  • 展示与行业系统的集成以及 Calcite 作为一个可嵌入的优化层的作用。

实验结果

研究问题

  • RQ1在异构数据源和处理后端之间,单一框架如何支持高效的查询优化?
  • RQ2需要哪些架构组件来实现可扩展的适配器和跨系统规划?
  • RQ3如何在通用关系代数核心中统一 SQL 和非 SQL 的查询处理?
  • RQ4为支持半结构化、流式和地理空间数据需要哪些扩展?
  • RQ5Calcite 在工业界和学术界的影响与采用情况如何?

主要发现

  • Calcite 提供一个模块化、可扩展的优化器,包含数百条规则和可插拔的引擎。
  • 适配器定义 Calcite 如何读取多样化数据源,并实现对谓词和操作在跨后端的下推。
  • 它支持 ANSI SQL 及扩展,与 JDBC 驱动和针对异构数据模型的查询代数。
  • 该框架使用特质和调用约定来推理跨后端的物理属性与执行策略。
  • Calcite 被 Hive、Drill、Storm、Flink、Solr 等项目广泛采用,显示出广泛的行业影响。
  • Calcite 超越 SQL,覆盖半结构化、流式和地理空间数据,并通过 LINQ4J 提供语言集成查询。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。