StripeLog

    在你需要写入许多小数据量(小于一百万行)的表的场景下使用这个引擎。

    查看建表请求的详细说明。

    引擎将所有列存储在一个文件中。对每一次 Insert 请求,ClickHouse 将数据块追加在表文件的末尾,逐列写入。

    • index.mrk — 带标记的文件。标记包含了已插入的每个数据块中每列的偏移量。

    StripeLog 引擎不支持 ALTER UPDATE 和 操作。

    带标记的文件使得 ClickHouse 可以并行的读取数据。这意味着 SELECT 请求返回行的顺序是不可预测的。使用 ORDER BY 子句对行进行排序。

    建表:

    1. CREATE TABLE stripe_log_table
    2. (
    3. timestamp DateTime,
    4. message String
    5. )
    6. ENGINE = StripeLog

    我们使用两次 INSERT 请求从而在 data.bin 文件中创建两个数据块。

    ClickHouse 在查询数据时使用多线程。每个线程读取单独的数据块并在完成后独立的返回结果行。这样的结果是,大多数情况下,输出中块的顺序和输入时相应块的顺序是不同的。例如:

    对结果排序(默认增序):