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