TinyLog 型のテーブルは、小さなバッチで処理される中間データに使用できます。なお、多数の小さなテーブルにデータを保存するのは非効率です。
クエリは単一ストリームで実行されます。言い換えると、このエンジンは比較的小さなテーブル (最大で約 1,000,000 行) 向けです。多数の小さなテーブルがある場合は、このテーブルエンジンを使用するのが適しています。Log エンジンよりもシンプルで、開く必要のあるファイル数が少ないためです。
特徴
- よりシンプルな構造: Logエンジンとは異なり、TinyLogはマークファイルを使用しません。これにより構造はシンプルになりますが、大規模なデータセットに対するパフォーマンス最適化は制限されます。
- 単一ストリームクエリ: TinyLogテーブルに対するクエリは単一ストリームで実行されるため、比較的小さなテーブル、通常は最大1,000,000行程度のテーブルに適しています。
- 小規模テーブルで効率的: TinyLogエンジンはシンプルなため、多数の小さなテーブルを管理する場合に有利です。Logエンジンと比べて必要なファイル操作が少なくて済みます。
テーブルの作成
データの書き込み
TinyLog エンジンは、すべてのカラムを 1 つのファイルに保存します。INSERT クエリが実行されるたびに、ClickHouse はデータブロックをテーブルファイルの末尾に追記し、カラムを 1 つずつ書き込みます。
ClickHouse は、テーブルごとに次のファイルを書き込みます。
<column>.bin: 各カラムのデータファイル。シリアライズおよび圧縮されたデータが格納されます。
TinyLog エンジンは、ALTER UPDATE および ALTER DELETE 操作をサポートしていません。
使用例
INSERT クエリを 2 つ使用して、<column>.bin ファイル内に 2 つのデータブロックを作成しました。
ClickHouse は、データの選択に単一ストリームを使用します。そのため、出力における行ブロックの順序は、入力における対応するブロックの順序と一致します。例: