TinyLog
Движок принадлежит семье логических движков. См. Семья логических движков для общих свойств логических движков и их различий.
Этот движок таблиц обычно используется с методом записи один раз: записать данные один раз, затем читать их столько раз, сколько необходимо. Например, вы можете использовать таблицы типа TinyLog
для промежуточных данных, которые обрабатываются малыми пакетами. Обратите внимание, что хранение данных в большом количестве небольших таблиц неэффективно.
Запросы выполняются в одном потоке. Иными словами, этот движок предназначен для относительно небольших таблиц (до примерно 1,000,000 строк). Имеет смысл использовать этот движок таблиц, если у вас много небольших таблиц, поскольку он проще, чем движок Log (необходимо открыть меньше файлов).
Характеристики
- Упрощенная структура: В отличие от движка Log, TinyLog не использует файлы меток. Это снижает сложность, но также ограничивает оптимизации производительности для больших наборов данных.
- Запросы в одном потоке: Запросы к таблицам TinyLog выполняются в одном потоке, что делает его подходящим для относительно небольших таблиц, обычно до 1,000,000 строк.
- Эффективен для маленьких таблиц: Простота движка TinyLog делает его выгодным при управлении большим количеством небольших таблиц, поскольку он требует меньше операций с файлами по сравнению с движком Log.
В отличие от движка Log, TinyLog не использует файлы меток. Это снижает сложность, но также ограничивает оптимизации производительности для больших наборов данных.
Создание таблицы
См. подробное описание запроса CREATE TABLE.
Запись данных
Движок TinyLog
хранит все колонки в одном файле. Для каждого запроса INSERT
ClickHouse добавляет блок данных в конец файла таблицы, записывая колонки по одной.
Для каждой таблицы ClickHouse записывает файлы:
<column>.bin
: файл данных для каждой колонки, содержащий сериализованные и сжатые данные.
Движок TinyLog
не поддерживает операции ALTER UPDATE
и ALTER DELETE
.
Пример использования
Создание таблицы:
Вставка данных:
Мы использовали два запроса INSERT
, чтобы создать два блока данных внутри файлов <column>.bin
.
ClickHouse использует один поток для выбора данных. В результате порядок блоков строк в выводе совпадает с порядком тех же блоков во входных данных. Например: