Skip to main content

Семейство движков таблиц Log

Эти движки были разработаны для сценариев, в которых нужно быстро записывать множество небольших таблиц (примерно до 1 миллиона строк), а затем читать их целиком. Движки этого семейства: Движки таблиц семейства Log могут хранить данные в распределённых файловых системах HDFS или S3.
Этот движок не предназначен для хранения логов.Несмотря на название, *движки таблиц семейства Log не предназначены для хранения логов. Их следует использовать только для небольших объёмов данных, которые нужно быстро записывать.

Общие свойства

Движки:
  • Хранят данные на диске.
  • При записи дописывают данные в конец файла.
  • Поддерживают блокировки для одновременного доступа к данным. Во время запросов INSERT таблица блокируется, и другие запросы на чтение и запись данных ждут снятия блокировки. Если запросов на запись данных нет, одновременно может выполняться любое количество запросов на чтение данных.
  • Не поддерживают мутации.
  • Не поддерживают индексы. Это означает, что запросы SELECT по диапазонам данных выполняются неэффективно.
  • Не записывают данные атомарно. Таблица может оказаться с поврежденными данными, если что-то прервет операцию записи, например аварийное завершение работы сервера.

Отличия

Движок TinyLog — самый простой в этом семействе: он предоставляет меньше всего возможностей и отличается самой низкой эффективностью. Движок TinyLog не поддерживает параллельное чтение данных несколькими потоками в рамках одного запроса. Он читает данные медленнее, чем другие движки этого семейства, поддерживающие параллельное чтение в рамках одного запроса, и использует почти столько же файловых дескрипторов, сколько и движок Log, поскольку хранит каждый столбец в отдельном файле. Используйте его только в простых сценариях. Движки Log и StripeLog поддерживают параллельное чтение данных. При чтении данных ClickHouse использует несколько потоков. Каждый поток обрабатывает отдельный блок данных. Движок Log использует отдельный файл для каждого столбца таблицы. StripeLog хранит все данные в одном файле. В результате движок StripeLog использует меньше файловых дескрипторов, но движок Log обеспечивает более высокую эффективность при чтении данных.
Последнее изменение 3 июля 2026 г.