标准 SQL 支持
提供工业标准的 SQL 解析器、校验器和 JDBC 驱动,应用可以通过 JDBC 用同一套 SQL 访问不同底层数据源。
拖动滑块完成拼图,通过后发送验证码
独立第三方 AI 评测平台 · 只用实测数据
Apache Calcite 是 Apache 软件基金会旗下的动态数据管理框架,提供工业标准的 SQL 解析器、校验器和 JDBC 驱动,并通过关系代数与规划规则进行查询优化。它刻意不负责数据存储与处理,只做应用与各类数据源、计算引擎之间的中介,因此可以「只加数据」就构建数据库。它支持连接第三方数据源、浏览元数据,并通过优化器规则把计算下推到数据源侧。需要注意的是,它本身不存储数据、不处理数据,也没有默认的数据格式。
Calcite 是 Apache 软件基金会维护的动态数据管理框架,定位是「为下一个高性能数据库提供基础」。它包含典型数据库管理系统的许多部件,但有意省略了三个关键功能:数据存储、数据处理算法,以及存储元数据的仓库。它不参与数据存储与处理,因此在应用与一个或多个数据存储位置、数据处理引擎之间充当中介时很有优势,也是构建数据库的基础——只需加上数据。
在能力上,它提供工业标准的 SQL 解析器、校验器和 JDBC 驱动;用关系代数表示查询,使用规划规则进行变换,并按成本模型进行优化;可以连接第三方数据源、浏览元数据,并通过把计算下推到数据来实现优化。它不偏好任何数据格式,内存数据集可以使用 linq4j 的 groupBy、join 等算子处理,也可以换成 JDBC 执行同一查询,对应用而言数据和 API 不变,但底层实现不同。
对不同角色来说:普通用户或应用开发者可以直接使用它的 JDBC 驱动执行标准 SQL;需要接入新数据源的用户可以编写适配器,告诉 Calcite 数据源中哪些集合应被视为「表」;需要深度定制的用户可以编写优化器规则,注册新的算子(例如更好的连接算法),或调整查询到算子的翻译方式,Calcite 会把自定义规则和算子与内置规则、算子结合使用。
提供工业标准的 SQL 解析器、校验器和 JDBC 驱动,应用可以通过 JDBC 用同一套 SQL 访问不同底层数据源。
把查询表示为关系代数,用规划规则做变换,再根据成本模型进行优化,可调整查询到算子的翻译方式。
支持连接第三方数据源、浏览元数据,并通过把计算下推到数据源来优化。新增数据源需编写适配器,指明哪些集合视为表。
允许编写优化器规则,使其访问新格式数据、注册新算子(例如更好的连接算法),并把这些规则与内置规则结合使用。
本身不存储数据,也没有偏好的数据格式。同一查询既可处理内存数据集,也可改由 JDBC 执行,对应用而言 API 不变。
站点列出子项目 Avatica,与 Calcite 的 JDBC 能力配套,用于连接层相关功能。
当你需要在一套 SQL 接口下统一访问多种数据源、或想自建数据库而只缺 SQL 解析与优化这部分时,Calcite 值得选:它不抢数据存储与处理的活,用规则和成本模型把计算下推给底层引擎。当你需要的是一个开箱即用的数据库产品时,它不合适——它明确不存储数据、不处理数据,也没有元数据仓库,必须自己补上这些部分。它的扩展依赖写适配器和优化器规则,因此更适合有 Java 与查询引擎背景的团队,而不是希望零配置上手的使用者。
需要在自己的引擎里加入标准 SQL 解析、校验与优化能力,可复用其解析器、校验器和规划规则。
要在应用与多个数据存储、处理引擎之间做中介,用同一套 SQL 与 API 访问不同后端。
想构建数据库但只缺 SQL 与优化部分,Calcite 明确不存储数据,正好补上这一层,只需再加数据。
它不存储数据、不处理数据,也没有元数据仓库,需要自行补齐,不适合期望开箱即用的使用方式。
不是。它是动态数据管理框架,包含数据库管理系统的许多部件,但省略了数据存储、数据处理算法和元数据仓库这三项关键功能。它刻意不做存储与处理数据的业务,因此适合在应用与数据存储位置、处理引擎之间做中介,也可以作为构建数据库的基础,只需再加上数据。
接入新数据源需要编写适配器,告诉 Calcite 数据源中哪些集合应被视为「表」。在此基础上还可以编写优化器规则,让 Calcite 访问新格式数据、注册新算子,并优化查询到算子的翻译方式,自定义规则会与内置规则和算子结合使用。
可以。示例中先用内存数据集,通过 linq4j 的 groupBy、join 等算子处理;把实现换成 JDBC 后,Calcite 会执行同样的查询。对应用而言数据和 API 相同,但底层实现不同,Calcite 会用优化器规则把 JOIN 和 GROUP BY 下推到源数据库。
支持。官网把它列为 Standard SQL,提供工业标准的 SQL 解析器、校验器和 JDBC 驱动,这是它的核心能力之一,也是应用用统一 SQL 访问不同数据源的基础。
Avatica 是官网列出的子项目。站点在 Sub-Projects 下只列出 Avatica 一项,与 Calcite 的 JDBC 相关能力配套使用。
它由 Apache 软件基金会维护,该基金会是非营利组织,仅依靠捐赠资助。官网未公开任何具体价格档位或商业授权方案,涉及采购与支持时需以官方页面为准。