Перейти к основному содержимому
Перейти к основному содержимому

StripeLog

Этот движок принадлежит семейству лог-движков. См. общие свойства лог-движков и их отличия в статье Семейство лог-движков.

Используйте этот движок в сценариях, когда необходимо записывать множество таблиц с небольшим объемом данных (менее 1 миллиона строк). Например, эта таблица может использоваться для хранения входящих пакетов данных для трансформации, где требуется атомарная обработка. 100 тыс. экземпляров этого типа таблицы жизнеспособны для сервера ClickHouse. Этот движок таблиц следует предпочитать над Log, когда требуется большое количество таблиц. Это восходит к снижению эффективности чтения.

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

Смотрите подробное описание запроса CREATE TABLE.

Запись данных

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

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

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

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

Чтение данных

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

Пример использования

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

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

Мы использовали два запроса INSERT, чтобы создать два блока данных внутри файла data.bin.

ClickHouse использует несколько потоков при выборе данных. Каждый поток читает отдельный блок данных и возвращает результирующие строки независимо по мере завершения. В результате порядок блоков строк в выводе не совпадает с порядком тех же блоков во входе в большинстве случаев. Например:

Сортировка результатов (по умолчанию в порядке возрастания):