StripeLog
在你需要写入许多小数据量(小于一百万行)的表的场景下使用这个引擎。
查看建表请求的详细说明。
引擎将所有列存储在一个文件中。对每一次 Insert
请求,ClickHouse 将数据块追加在表文件的末尾,逐列写入。
index.mrk
— 带标记的文件。标记包含了已插入的每个数据块中每列的偏移量。
StripeLog
引擎不支持 ALTER UPDATE
和 操作。
带标记的文件使得 ClickHouse 可以并行的读取数据。这意味着 SELECT
请求返回行的顺序是不可预测的。使用 ORDER BY
子句对行进行排序。
建表:
CREATE TABLE stripe_log_table
(
timestamp DateTime,
message String
)
ENGINE = StripeLog
我们使用两次 INSERT
请求从而在 data.bin
文件中创建两个数据块。
ClickHouse 在查询数据时使用多线程。每个线程读取单独的数据块并在完成后独立的返回结果行。这样的结果是,大多数情况下,输出中块的顺序和输入时相应块的顺序是不同的。例如:
对结果排序(默认增序):