> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Документация по движку таблицы StripeLog

# Движок таблицы StripeLog

export const CloudNotSupportedBadge = () => {
  return <div className="cloudNotSupportedBadge">
            <div className="cloudNotSupportedIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.5" d="M6.33366 12.6666L12.3739 12.6667C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00003 12.3739 8.00003C12.3739 8.00003 12.3337 7.66659 12.0003 7.33325M10.667 5.33322C8.00033 2.33325 4.45395 4.78537 4.14195 6.68203C2.55728 6.7627 1.29395 8.06203 1.29395 9.6667C1.29395 11.3234 2.66699 12.6666 4.00033 12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.5" d="M2.66699 14L12.0003 4.66663" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>

        </div>
            Не поддерживается в ClickHouse Cloud
        </div>;
};

<CloudNotSupportedBadge />

Этот движок относится к семейству движков Log. Об общих свойствах движков Log и различиях между ними см. в статье [Семейство движков Log](/docs/ru/reference/engines/table-engines/log-family/index).

Используйте этот движок, когда нужно записывать данные во множество таблиц с небольшим объемом данных (менее 1 миллиона строк). Например, эту таблицу можно использовать для хранения входящих батчей данных для преобразования, если требуется их атомарная обработка. Один сервер ClickHouse может эффективно обслуживать до 100 тыс. таблиц такого типа. Этот движок таблицы предпочтительнее [Log](/docs/ru/reference/engines/table-engines/log-family/log), если требуется большое количество таблиц, однако это достигается за счет снижения эффективности чтения.

<div id="table_engines-stripelog-creating-a-table">
  ## Создание таблицы
</div>

```sql theme={null}
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
```

См. подробное описание запроса [CREATE TABLE](/docs/ru/reference/statements/create/table).

<div id="table_engines-stripelog-writing-the-data">
  ## Запись данных
</div>

Движок `StripeLog` хранит все столбцы в одном файле. Для каждого запроса `INSERT` ClickHouse дописывает блок данных в конец файла таблицы, записывая столбцы по очереди.

Для каждой таблицы ClickHouse записывает следующие файлы:

* `data.bin` — файл данных.
* `index.mrk` — файл с метками. Метки содержат смещения для каждого столбца в каждом вставленном блоке данных.

Движок `StripeLog` не поддерживает операции `ALTER UPDATE` и `ALTER DELETE`.

<div id="table_engines-stripelog-reading-the-data">
  ## Чтение данных
</div>

Файл с метками позволяет ClickHouse распараллеливать чтение данных. Это означает, что запрос `SELECT` возвращает строки в непредсказуемом порядке. Используйте предложение `ORDER BY`, чтобы отсортировать строки.

<div id="table_engines-stripelog-example-of-use">
  ## Пример использования
</div>

Создание таблицы:

```sql theme={null}
CREATE TABLE stripe_log_table
(
    timestamp DateTime,
    message_type String,
    message String
)
ENGINE = StripeLog
```

Вставка данных:

```sql theme={null}
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 theme={null}
SELECT * FROM stripe_log_table
```

```text theme={null}
┌───────────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 theme={null}
SELECT * FROM stripe_log_table ORDER BY timestamp
```

```text theme={null}
┌───────────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  │
└─────────────────────┴──────────────┴────────────────────────────┘
```
