什么是Apache Calcite?
Apache Calcite是一个动态数据管理框架
Apache Calcite是一个开源项目,它提供了一个框架,用于管理和查询来自各种来源和格式的数据。它本身不是数据库,而是位于应用程序和数据源之间的层,并允许它们使用通用SQL接口进行交互。Calcite还可以跨不同的数据处理引擎执行查询优化、转换和执行。
底层基于Linq4j实现
组成
由几个组成部分组成:
- SQL parser:解析和验证各种方言【dialects】的SQL查询。
- relational algebra engin:将查询表示为逻辑和物理计划,并应用计划规则和成本模型(cost models)来优化它们。
- JDBC driver: 允许应用程序连接到Calcite并执行SQL查询。
- schema:定义Calcite可以访问的数据源的结构和元数据的模式。
- set of adapters:允许Calcite连接到不同的数据源,如JDBC、CSV、MongoDB、Elasticsearch等,并尽可能的将计算下推给它们
为什么使用calcite?
- 构建数据库:通过向Calcit