ClickHouse/docs/ja/engines/table-engines/log-family/index.md
2024-11-18 11:58:58 +09:00

3.1 KiB
Raw Blame History

slug sidebar_position sidebar_label
/ja/engines/table-engines/log-family/ 20 Logファミリー

Log エンジンファミリー

これらのエンジンは、多くの小さなテーブル約100万行までをすばやく書き込み、後で全体として読む必要があるシナリオのために開発されました。

ファミリーのエンジン:

Logファミリーのテーブルエンジンは、HDFSS3の分散ファイルシステムにデータを保存できます。

共通のプロパティ

エンジンの特徴:

  • データをディスクに保存します。

  • データをファイルの末尾に追加して書き込みます。

  • 同時データアクセス用のロックをサポートします。

    INSERTクエリの間、テーブルはロックされ、他の読み書きクエリはテーブルがアンロックされるのを待ちます。データ書き込みのクエリがない場合、任意の数のデータ読み取りクエリを並行して実行できます。

  • ミューテーションをサポートしません。

  • インデックスをサポートしません。

    これにより、データ範囲のSELECTクエリは効率的ではありません。

  • データをアトミックに書き込みません。

    たとえば、サーバーの異常終了などで書き込み操作が中断されると、データが破損したテーブルが得られる可能性があります。

差異

TinyLogエンジンは、ファミリー内で最もシンプルで、機能と効率が最も低いです。TinyLogエンジンは、単一クエリで複数のスレッドによる並行データ読み取りをサポートしません。単一のクエリから並行読み取りをサポートする他のエンジンよりもデータを読むのが遅く、各カラムを別々のファイルに保存するため、Logエンジンとほぼ同じ数のファイルディスクリプタを使用します。簡単なシナリオでのみ使用してください。

LogおよびStripeLogエンジンは並行データ読み取りをサポートしています。データを読み取る際、ClickHouseは複数のスレッドを使用し、各スレッドは別々のデータブロックを処理します。Logエンジンはテーブルの各カラムに対して別々のファイルを使用します。一方、StripeLogはすべてのデータを1つのファイルに格納します。その結果、StripeLogエンジンは使用するファイルディスクリプタが少なくなりますが、Logエンジンの方がデータ読み取りの効率が高くなります。