Page 6 - ClickHouse--day01--架构原理和表引擎详解(2)
P. 6
关于这些文件的解释:
1、分区目录:20190710_20190711_1_5_1,一个分区可能会有多个不同的目录,该目录下存储该分区的数据及其他各种形式的数据。后台会执行合并,把相同分
区的多个目录合并到一个分区。
2、checksums.txt:校验文件。使用二进制格式存储。它保存了余下各类文件(primary.idx、count.txt等)的 size 大小及 size 的哈希值,用于快速校
验文件的完整性和正确性。
3、columns.txt:列信息文件,使用明文格式存储。用于保存此数据分区下的列字段信息
4、count.txt:计数文件,使用明文格式存储。用于记录当前数据分区目录下数据的总行数
5、primary.idx:一级索引文件,主键索引文件
6、xxx.bin:数据文件,使用压缩格式存储,默认为 LZ4 压缩格式,用于存储某一列的数据,每一列都对应一个该文件,如列 date 为 date.bin
7、xxx.mrk2:列字段标记文件,如果使用了自适应大小的索引间隔,则标记文件以 .mrk2 命名,否则以 .mrk 命名。它建立 primary.idx 稀疏索引与
xxx.bin 数据文件之间的映射关系,先通过主键索引找到数据的偏移量,然后去 xxx.bin 数据文件中找到真实数据
8、... 还有二级索引 和 分区键相关信息文件等等
关于表分区命名规则:分区的命名规则:PartitionID_MinBlockNum_MaxBlockNum_Level
该 blocknum 在该表内全局累加,每次创建一个新的分区目录的时候,就会累加 1。Level 是分区被合并过的次数计数,合并一次则加1。
关于分区的合并规则:
2.3.2. 列式存储