StripeLog
Этот движок принадлежит к семейству логических движков. См. общие свойства логических движков и их различия в статье Семейство логических движков.
Используйте этот движок в сценариях, когда необходимо записывать множество таблиц с небольшим объемом данных (менее 1 миллиона строк). Например, эту таблицу можно использовать для хранения входящих пакетных данных для преобразования, где требуется атомарная обработка. 100k экземпляров этого типа таблицы жизнеспособны для сервера 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 использует несколько потоков при выборе данных. Каждый поток читает отдельный блок данных и возвращает полученные строки независимо по мере завершения. В результате порядок блоков строк в выводе не совпадает с порядком тех же блоков во входных данных в большинстве случаев. Например:
Сортировка результатов (по умолчанию в порядке возрастания):