Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Calcite 学习与总结 #27

Closed
wangzzu opened this issue Mar 5, 2019 · 10 comments
Closed

Calcite 学习与总结 #27

wangzzu opened this issue Mar 5, 2019 · 10 comments
Assignees
Labels
技术系列 深入了解某一块

Comments

@wangzzu
Copy link
Owner

wangzzu commented Mar 5, 2019

近端因为看 Flink SQL 相关,所以深入看了一下 Calcite 相关的内容,还好公司有一些关于 Calcite 的资料,自己在看的时候少走了很多弯路,而目前外网上关于 Calcite 的资料并不多,准备把自己看的内容整理一下,与大家共同学习。

计划整理的文章有:

  1. Calcite 的介绍(基本架构、流程、特性等讲述),计划:2019.3.10;
  2. Calcite 流程详解(会从解析、验证、优化器详细讲述),计划:2019.3.10,见 Apache Calcite 处理流程详解(一),完成时间:2019.3.7,包括1、2两个部分;
  3. Calcite 的两种 Planner:HepPlanner 和 VolcanoPlanner,重点关注 Calcite 的优化器部分,计划:2019.3.24,见 Apache Calcite 优化器详解(二),完成时间:2019.3.16;
  4. Rule 详解:主要介绍如何实现一个 Rule、以及 Rule 相关的基本内容(可以顺便梳理一下 Calciter 常用的 Rules);
  5. Catalog 详解:主要介绍 Schema 注册相关的内容,配合 Flink 如何利用 Calcite 的 Catalog 来讲解;
  6. Javacc 使用详解:javacc 语法及应用,如何在 Calcite 中添加一个关键字(并实现相应的功能)。
@wangzzu wangzzu self-assigned this Mar 5, 2019
@wangzzu
Copy link
Owner Author

wangzzu commented Mar 17, 2019

第一次超计划完成,不容易啊

@lecssmi
Copy link

lecssmi commented Apr 15, 2019

我正在研究Calcite和Flink的底层,这个时候看到博主的文章,简直是太开心了。之前研究calcite一直没弄懂。

@todd5167
Copy link

希望博主继续更新学习资料,真的很棒。

@wangzzu
Copy link
Owner Author

wangzzu commented Apr 28, 2019

@todd5167 近段会接着更新

@xujiapei
Copy link

xujiapei commented Jun 4, 2019

楼主,请问下您的文章从哪里可以看到,我看现在的连接好像都已经失效了~

@wangzzu
Copy link
Owner Author

wangzzu commented Jun 4, 2019

@todd5167 我这边可以正常打开,你再试试

@wangzzu
Copy link
Owner Author

wangzzu commented Aug 25, 2019

关于 Calcite 这块,其实 Rule 跟 Function 的添加是比较容易的,具体实现可以参考下面两个 PR:

  1. Calcite-2624
  2. Calcite-2867,这个 PR 有很多 JSON function 添加的子 task,有兴趣的可以看下。

之前计划的 Calcite 与 Flink 的结合,这个准备在 Flink 系列中介绍,这样的话,Calcite 这里主要还剩下三块的内容需要深入介绍一下:

  1. SQL 解析,总结一些编译原理、Javacc 语法的内容;
  2. Code Generate,代码自动生成是 SQL 常用的、而且非常有效的优化手段;
  3. 向量化,目前 SQL 中向量化技术也是 SQL 常用的、有效的优化手段。

@wangzzu wangzzu added the 技术系列 深入了解某一块 label Feb 3, 2020
@wangzzu
Copy link
Owner Author

wangzzu commented Apr 15, 2020

在这里再开一个 SQL 优化的子系列,详细介绍相关的内容,目前想到的两块是:

  • Code Generation;
  • 向量化;

@lecssmi
Copy link

lecssmi commented Sep 15, 2020

坐等更新和Rule相关的部分。

@wangzzu
Copy link
Owner Author

wangzzu commented Mar 12, 2022

很遗憾,这个系列没有坚持下来,关于 SQL 的核心优化手段之 code gen 和向量化,等后面再专门来做讨论,calcite 这里就先关闭了

@wangzzu wangzzu closed this as completed Mar 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
技术系列 深入了解某一块
Projects
None yet
Development

No branches or pull requests

4 participants