メインコンテンツまでスキップ
メインコンテンツまでスキップ

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はデータを選択する際に単一のストリームを使用します。その結果、出力内の行ブロックの順序は、入力内の同じブロックの順序と一致します。例えば: