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

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 использует несколько потоков при выборке данных. Каждый поток читает отдельный блок данных и возвращает результирующие строки независимо по мере завершения. В результате порядок блоков строк в выводе не совпадает с порядком таких же блоков во входных данных в большинстве случаев. Например:

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