注意:本文基于 MyCat2 main 分支 ced134b 版本源码进行学习研究,其他版本可能会存在实现逻辑差异,对源码感兴趣的读者请注意版本选择。
前言
MyCat 是曾经较为流行的一款分库分表中间件,能够支持海量数据的水平分片,以及读写分离、分布式事务等功能。MyCat2 在原有功能的基础上增加了分布式查询引擎,该引擎基于 Calcite 项目实现,能够将 SQL 编译为关系代数表达式,并基于规则优化引擎和代价优化引擎,生成物理执行计划,实现对跨库、跨实例的分布式 SQL 的支持。虽然 MyCat 项目已经停止维护,但是分布式查询引擎功能
仍然值得我们学习,本文将带领大家一起探索 Apache Calcite
在 MyCat2
中的实践,学习如何基于 Calcite 构建分布式查询引擎。
MyCat2 环境搭建
结语
写在最后
笔者因为工作原因接触到 Calcite,前期学习过程中,深感 Calcite 学习资料之匮乏,因此创建了 Calcite 从入门到精通知识星球,希望能够将学习过程中的资料和经验沉淀下来,为更多想要学习 Calcite 的朋友提供一些帮助。
欢迎关注
欢迎关注「端小强的博客」微信公众号,会不定期分享日常学习和工作经验,欢迎大家关注交流。