TinyLog
このエンジンは、ログエンジンファミリーに属します。ログエンジンの共通の特性や違いについては、Log Engine Family を参照してください。
このテーブルエンジンは、一般的に書き込み一回のメソッドで使用されます:データを書き込んだら、必要に応じて何度でも読み取ります。例えば、TinyLog
タイプのテーブルを、少量バッチで処理される中間データに使用できます。小さなテーブルを多数保持することは非効率であることに注意してください。
クエリは単一のストリームで実行されます。言い換えれば、このエンジンは比較的に小さなテーブル(約1,000,000行まで)を想定しています。多くの小さなテーブルを持っている場合には、このテーブルエンジンを使用するのが理にかなっています。なぜなら、Logエンジンよりも簡単で(開く必要のあるファイルが少ないため)、管理が容易だからです。
Characteristics
- シンプルな構造: Logエンジンとは異なり、TinyLogはマークファイルを使用しません。これにより複雑さが軽減されますが、大規模データセットのパフォーマンス最適化が制限されます。
- 単一ストリームクエリ: TinyLogテーブルに対するクエリは単一のストリームで実行され、通常は1,000,000行までの比較的小さなテーブルに適しています。
- 小規模テーブルに対する効率性: TinyLogエンジンのシンプルさは、多くの小さなテーブルを管理する際に有利であり、Logエンジンと比べてファイル操作が少なくて済みます。
Logエンジンとは異なり、TinyLogはマークファイルを使用しません。これにより複雑さが軽減されますが、大規模データセットのパフォーマンス最適化が制限されます。
Creating a Table
CREATE TABLEクエリの詳細な説明を参照してください。
Writing the Data
TinyLog
エンジンは、すべてのカラムを1つのファイルに保存します。各INSERT
クエリに対して、ClickHouseはデータブロックをテーブルファイルの末尾に追加し、カラムを1つずつ書き込みます。
ClickHouseは各テーブルに対して次のファイルを書きます:
<column>.bin
: シリアライズされ圧縮されたデータを含む各カラム用のデータファイル。
TinyLog
エンジンは、ALTER UPDATE
およびALTER DELETE
操作をサポートしていません。
Example of Use
テーブルの作成:
データの挿入:
私たちは、INSERT
クエリを2つ使用して、<column>.bin
ファイル内に2つのデータブロックを作成しました。
ClickHouseはデータを選択する際に単一のストリームを使用します。その結果、出力内の行ブロックの順序は、入力内の同じブロックの順序と一致します。例えば: