❤️ 友情提示:代码演进较快,请注意文档的时效性哦!
引言
Databend 将存储引擎抽象成一个名为 Table
的接口,源码位于 query/catalog/src/table.rs
。
Table
接口定义了 read
、append
、alter
、optimize
、truncate
以及 recluster
等方法,负责数据的读写和变更。解释器(interpreter)通过调用 Table trait
的方法生成物理执行的 pipeline
。
通过实现 Table
接口的方法,可以定义 Databend 的存储引擎,不同的实现对应不同的引擎。
Storage 主要关注 Table
接口的具体实现,涉及表的元信息,索引信息的管理,以及与底层 IO 的交互。