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

TinyLog

このエンジンはログエンジンファミリーに属します。ログエンジンの一般的な特性やその違いについては、Log Engine Family を参照してください。

このテーブルエンジンは通常、書き込み一回の方法で使用されます:データを一度書き込み、その後は必要に応じて何度でも読み取ります。例えば、TinyLogタイプのテーブルは、小さなバッチで処理される中間データに使用できます。ただし、多くの小さなテーブルにデータを格納することは非効率です。

クエリは単一ストリームで実行されます。言い換えれば、このエンジンは比較的小さなテーブル(約1,000,000行まで)を対象としています。多くの小さなテーブルがある場合、このテーブルエンジンを使用することが意味を持ちます。これは、Log エンジンよりもシンプルであり、開く必要があるファイルが少ないためです。

特性

  • 構造がシンプル: Logエンジンとは異なり、TinyLogはマークファイルを使用しません。これにより複雑さは減少しますが、大規模なデータセットに対するパフォーマンス最適化が制限されます。
  • 単一ストリームクエリ: TinyLogテーブルのクエリは単一のストリームで実行されるため、通常は1,000,000行までの比較的小さなテーブルに適しています。
  • 小さなテーブルに効率的: TinyLogエンジンのシンプルさは、多くの小さなテーブルの管理において利点となり、Logエンジンに比べてファイル操作が少なくて済みます。

Logエンジンとは異なり、TinyLogはマークファイルを使用しません。これにより複雑さは減少しますが、大規模なデータセットに対するパフォーマンス最適化が制限されます。

テーブルの作成

CREATE TABLE クエリの詳細な説明を参照してください。

データの書き込み

TinyLogエンジンは、すべてのカラムを1つのファイルに格納します。各INSERTクエリのたびに、ClickHouseはテーブルファイルの末尾にデータブロックを追加し、カラムを1つずつ書き込みます。

各テーブルに対してClickHouseが書き込むファイルは次の通りです:

  • <column>.bin: 各カラムのデータファイルで、シリアライズされ圧縮されたデータを含みます。

TinyLogエンジンは、ALTER UPDATEおよび ALTER DELETE操作をサポートしていません。

使用例

テーブルを作成します:

データを挿入します:

私たちは二つのINSERTクエリを使用して、<column>.binファイル内に二つのデータブロックを作成しました。

ClickHouseはデータを選択するために単一ストリームを使用します。その結果、出力の行のブロックの順序は、入力の同じブロックの順序と一致します。例えば: