源码版本:V20.1
这篇文章主要是从整体上看一下整个项目包含哪些主要模块,明确每个模块的作用,为后续针对性的深挖打个基础。
Access:权限控制
AggregateFunctions & Functions & TableFunctions:聚合函数、普通函数、表函数的定义
Client & Server: 客户端和服务端
Columns:内存中保存数据列
Common:
Compression:数据压缩
Core:核心模块,包括Block、Field、ColumnWithNameAndType、Row定义,SQL标准、DB引擎、DB设置等等
DataStreams:输入输出流
DataTypes:数据类型定义
Databases:数据库,包含数据库中的操作如表迭代器、库信息等等
Dictionaries:
Disks:磁盘读写
Formats:
IO:
Interpreters:语句的翻译和执行
Parsers:语句解析,构造AST,遍历AST元素
Processors:query执行计划
Storages:存储管理,如分布式表数据分发、MergeTree分布式存储模块等等