2020-10-26 10:29:30 +00:00
---
toc_priority: 32
toc_title: StripeLog
---
2020-03-20 18:20:59 +00:00
# StripeLog {#stripelog}
2019-02-11 13:47:27 +00:00
2020-07-09 12:11:15 +00:00
Движок относится к семейству движков Log. Смотрите общие свойства и различия движков в статье [Семейство Log ](index.md ).
2019-02-11 13:47:27 +00:00
2020-02-02 21:46:31 +00:00
Движок разработан для сценариев, когда необходимо записывать много таблиц с небольшим объёмом данных (менее 1 миллиона строк).
2019-02-11 13:47:27 +00:00
2020-03-22 09:14:59 +00:00
## Создание таблицы {#table_engines-stripelog-creating-a-table}
2019-02-11 13:47:27 +00:00
2020-03-20 18:20:59 +00:00
``` sql
2019-02-11 13:47:27 +00:00
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
```
2020-04-30 18:19:18 +00:00
Смотрите подробное описание запроса [CREATE TABLE ](../../../engines/table-engines/log-family/stripelog.md#create-table-query ).
2019-02-11 13:47:27 +00:00
2020-03-22 09:14:59 +00:00
## Запись данных {#table_engines-stripelog-writing-the-data}
2019-02-11 13:47:27 +00:00
Движок `StripeLog` хранит все столбцы в одном файле. При каждом запросе `INSERT` , ClickHouse добавляет блок данных в конец файла таблицы, записывая столбцы один за другим.
Для каждой таблицы ClickHouse записывает файлы:
2020-03-21 04:11:51 +00:00
- `data.bin` — файл с данными.
- `index.mrk` — файл с метками. Метки содержат смещения для каждого столбца каждого вставленного блока данных.
2019-02-11 13:47:27 +00:00
Движок `StripeLog` не поддерживает запросы `ALTER UPDATE` и `ALTER DELETE` .
2020-03-22 09:14:59 +00:00
## Чтение данных {#table_engines-stripelog-reading-the-data}
2019-02-11 13:47:27 +00:00
Файл с метками позволяет ClickHouse распараллеливать чтение данных. Это означает, что запрос `SELECT` возвращает строки в непредсказуемом порядке. Используйте секцию `ORDER BY` для сортировки строк.
2020-03-22 09:14:59 +00:00
## Пример использования {#table_engines-stripelog-example-of-use}
2019-02-11 13:47:27 +00:00
Создание таблицы:
2020-03-20 18:20:59 +00:00
``` sql
2019-02-11 13:47:27 +00:00
CREATE TABLE stripe_log_table
(
timestamp DateTime,
message_type String,
message String
)
ENGINE = StripeLog
```
Вставка данных:
2020-03-20 18:20:59 +00:00
``` sql
2019-02-11 13:47:27 +00:00
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 использует несколько потоков при выборе данных. Каждый поток считывает отдельный блок данных и возвращает результирующие строки независимо по мере завершения. В результате порядок блоков строк в выходных данных в большинстве случаев не совпадает с порядком тех же блоков во входных данных. Например:
2020-03-20 18:20:59 +00:00
``` sql
2019-02-11 13:47:27 +00:00
SELECT * FROM stripe_log_table
```
2020-03-20 18:20:59 +00:00
``` text
2019-02-11 13:47:27 +00:00
┌───────────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 │
└─────────────────────┴──────────────┴───────────────────────────┘
```
Сортировка результатов (по умолчанию по возрастанию):
2020-03-20 18:20:59 +00:00
``` sql
2019-02-11 13:47:27 +00:00
SELECT * FROM stripe_log_table ORDER BY timestamp
```
2020-03-20 18:20:59 +00:00
``` text
2019-02-11 13:47:27 +00:00
┌───────────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 │
└─────────────────────┴──────────────┴────────────────────────────┘
```