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