深度探究 Apache Calcite SQL 校验器实现原理

注意:本文基于 Calcite 1.35.0 版本源码进行学习研究,其他版本可能会存在实现逻辑差异,对源码感兴趣的读者请注意版本选择。 前言 在上一篇 Apache Calcite System Catalog 实现探究中,我们介绍了经典的数据库的处理流程,包括:SQL 解析、SQL 绑定、SQL 优化以及计划执行。SQL 绑定主要的作用是将 SQL 解析生成的 AST 和数据库的元数...

Calcite

CBO 优化的基石——Apache Calcite 统计信息和代价模型详解

注意:本文基于 Calcite 1.35.0 版本源码进行学习研究,其他版本可能会存在实现逻辑差异,对源码感兴趣的读者请注意版本选择。 前言 在上一篇深入理解 Apache Calcite ValcanoPlanner 优化器一文中,我们介绍了 Calcite VolcanoPlanner 的理论基础、核心概念和整体流程,VolcanoPlanner 在优化时会计算不同执行计划的代价 ...

Calcite

深入理解 Apache Calcite ValcanoPlanner 优化器

注意:本文基于 Calcite 1.35.0 版本源码进行学习研究,其他版本可能会存在实现逻辑差异,对源码感兴趣的读者请注意版本选择。 前言 在上一篇深入理解 Apache Calcite HepPlanner 优化器一文中,我们介绍了查询优化器的基本概念和用途,并结合 Calcite HepPlanner 深入分析了启发式优化器的实现原理。启发式优化器使用相对简单,它直接对逻辑执行计...

Calcite

深入理解 Apache Calcite HepPlanner 优化器

注意:本文基于 Calcite 1.35.0 版本源码进行学习研究,其他版本可能会存在实现逻辑差异,对源码感兴趣的读者请注意版本选择。 什么是 RBO Calcite 中的 RBO 规则 HepPlanner 中的基础概念 HepPlanner:基于规则的启发式优化器,实现了 RelOptPlanner 优化器接口; HepProgram:提供了维护各种类型 HepInstruc...

Calcite

Apache Calcite System Catalog 实现探究

注意:本文基于 Calcite 1.35.0 版本源码进行学习研究,其他版本可能会存在实现逻辑差异,对源码感兴趣的读者请注意版本选择。 前言 在上一篇 Apache Calcite SQL Parser 原理剖析一文中,我们详细介绍了 Apache Calcite SQL 解析引擎的实现原理,从基础的 JavaCC 使用,再到 Caclite SQL 解析引擎的内部实现,最后介绍了 C...

Calcite
12