Calcite 执行流程的核心, 主要是三个部分:
- Calcite 元数据的定义
- 优化规则的管理
- 最优计划的执行
元数据主要用于对 SqlNode 语法树进行校验,并为 CBO 优化中代价的计算提供统计信息。
优化规则被 Calcite 优化器使用,用来对逻辑计划进行改写,并生成最优的执行计划。
最终,执行器会基于最优的执行计划,在不同的存储引擎上进行执行。

Calcite 元数据的定义
以calcite example 中的 Caclite 集成 CSV 示例来举例, 元数据文件在 src/test/resources/model.json。
{
"version":"1.0",
// 默认 schema
"defaultSchema":"SALES",
"schemas":[
{
// schema 名称
"name":"SALES",
// type 定义数据模型的类型,custom 表示自定义数据模型
"type":"custom",
// schema 工厂类
"factory":"org.apache.calcite.adapter.csv.CsvSchemaFactory",
"operand":{
"directory":"sales"
}
}]
}
评论区