--- slug: /zh/engines/table-engines/log-family/stripelog --- # StripeLog {#stripelog} 该引擎属于日志引擎系列。请在[日志引擎系列](index.md)文章中查看引擎的共同属性和差异。 在你需要写入许多小数据量(小于一百万行)的表的场景下使用这个引擎。 ## 建表 {#table_engines-stripelog-creating-a-table} CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] ( column1_name [type1] [DEFAULT|MATERIALIZED|ALIAS expr1], column2_name [type2] [DEFAULT|MATERIALIZED|ALIAS expr2], ... ) ENGINE = StripeLog 查看[建表](../../../engines/table-engines/log-family/stripelog.md#create-table-query)请求的详细说明。 ## 写数据 {#table_engines-stripelog-writing-the-data} `StripeLog` 引擎将所有列存储在一个文件中。对每一次 `Insert` 请求,ClickHouse 将数据块追加在表文件的末尾,逐列写入。 ClickHouse 为每张表写入以下文件: - `data.bin` — 数据文件。 - `index.mrk` — 带标记的文件。标记包含了已插入的每个数据块中每列的偏移量。 `StripeLog` 引擎不支持 `ALTER UPDATE` 和 `ALTER DELETE` 操作。 ## 读数据 {#table_engines-stripelog-reading-the-data} 带标记的文件使得 ClickHouse 可以并行的读取数据。这意味着 `SELECT` 请求返回行的顺序是不可预测的。使用 `ORDER BY` 子句对行进行排序。 ## 使用示例 {#table_engines-stripelog-example-of-use} 建表: ``` sql CREATE TABLE stripe_log_table ( timestamp DateTime, message_type String, message String ) ENGINE = StripeLog ``` 插入数据: ``` sql INSERT INTO stripe_log_table VALUES (now(),'REGULAR','The first regular message') INSERT INTO stripe_log_table VALUES (now(),'REGULAR','The second regular message'),(now(),'WARNING','The first warning message') ``` 我们使用两次 `INSERT` 请求从而在 `data.bin` 文件中创建两个数据块。 ClickHouse 在查询数据时使用多线程。每个线程读取单独的数据块并在完成后独立的返回结果行。这样的结果是,大多数情况下,输出中块的顺序和输入时相应块的顺序是不同的。例如: ``` sql SELECT * FROM stripe_log_table ``` ┌───────────timestamp─┬─message_type─┬─message────────────────────┐ │ 2019-01-18 14:27:32 │ REGULAR │ The second regular message │ │ 2019-01-18 14:34:53 │ WARNING │ The first warning message │ └─────────────────────┴──────────────┴────────────────────────────┘ ┌───────────timestamp─┬─message_type─┬─message───────────────────┐ │ 2019-01-18 14:23:43 │ REGULAR │ The first regular message │ └─────────────────────┴──────────────┴───────────────────────────┘ 对结果排序(默认增序): ``` sql SELECT * FROM stripe_log_table ORDER BY timestamp ``` ┌───────────timestamp─┬─message_type─┬─message────────────────────┐ │ 2019-01-18 14:23:43 │ REGULAR │ The first regular message │ │ 2019-01-18 14:27:32 │ REGULAR │ The second regular message │ │ 2019-01-18 14:34:53 │ WARNING │ The first warning message │ └─────────────────────┴──────────────┴────────────────────────────┘