type
status
date
slug
summary
tags
category
icon
password
notion image
 

partition dir

表內的實體檔會依照所屬的 partition 放到對應的 partition 目錄下。

checksums.txt

二進制格式的校驗文件,儲存了該目錄下其他文件的 size 大小及 Hash 值,用來快速校驗文件的完整性和正確性。

columns.txt

紀錄 Table 的欄位資訊,為直接使用明文紀錄,如下:

count.txt

以明文紀錄該 partition 下的資料總筆數,如下:

primary.idx

二進制格式儲存 Sparse Primary Indexes 文件。

[column].bin

二進制數據文件,儲存該欄位的所有數據,默認使用 LZ4 壓縮格式。
由於 clickhouse 是 column-oriented 的資料庫,因此每個 column 都有一個獨立的 .bin 數據文件,各自紀錄屬於該 column 的所有數據。

[column].mrk

二進制標記文件,紀錄 primary,idx[column].bin 之間的映射關係。

[column].mrk2

如果使用自適應大小索引顆粒 (adaptive index granularity) 則標記文件會以 .mrk2 命名,工作原理和 mrk 相同。

partition.dat、minmax_[column].idx

如果使用了 PARTITION BY 分區鍵才會生成:
  • partition.dat:二進制紀錄當前 partition 下 partition_expr 的值。
  • minmax_[column].idx:二進制紀錄當前 partition 下原始數據的最小和最大值。
例如:假設 table 上定義 PARTITION BY toYear(${column}),在該 table 上此 column 有以下 4 個值: 2022-01-012022-06-012022-12-202023-02-01,則在2022 年的 partition 目錄下
  • partition.dat 會記錄 2022。
  • minmax_[column].idx 會記錄 2022-01-012022-12-20

skp_idx_[column].idx、skp_idx_[column].mrk

如果在表上定義了 skipping index 才會生成:
  • idx:二進制 skipping index 文件。
  • mrk:二進制標記文件,紀錄 skp_idx_[column].idx[column].bin 之間的映射關係。

參考