MergeTree エンジンファミリー
MergeTree ファミリーに属するテーブルエンジンは、ClickHouse のデータストレージ機能の中核となります。これらは、カラム型ストレージ、カスタムパーティショニング、疎なプライマリインデックス、セカンダリのデータスキップインデックスなど、耐障害性と高性能なデータ取得のためのほとんどの機能を提供します。
ベースとなる MergeTree テーブルエンジンは、単一ノードの ClickHouse インスタンスにおけるデフォルトのテーブルエンジンとみなすことができます。汎用性が高く、幅広いユースケースに対して実用的だからです。
本番環境での利用には ReplicatedMergeTree を使うのが一般的です。通常の MergeTree エンジンのすべての機能に高可用性が追加されるためです。さらに、データのインジェスト時に自動的な重複排除が行われるため、挿入中にネットワークの問題が発生しても、ソフトウェア側で安全にリトライできます。
MergeTree ファミリーのその他すべてのエンジンは、特定のユースケース向けに追加機能を提供します。通常、これはバックグラウンドでの追加のデータ操作として実装されます。
MergeTree エンジンの主な欠点は、比較的ヘビーウェイトであることです。そのため、典型的なパターンとしては、それほど多くのテーブルを作成しない構成になります。多くの小さなテーブル(たとえば一時データ用)が必要な場合は、Log エンジンファミリー の利用を検討してください。
| Page | Description |
|---|---|
| MergeTree テーブルエンジン | MergeTree ファミリーのテーブルエンジンは、高いデータ取り込みレートと大規模なデータ量に対応するよう設計されています。 |
| Replicated* テーブルエンジン | ClickHouse における Replicated* ファミリーのテーブルエンジンを用いたデータレプリケーションの概要です。 |
| カスタムパーティションキー | MergeTree テーブルにカスタムパーティションキーを追加する方法を説明します。 |
| ReplacingMergeTree テーブルエンジン | MergeTree と異なり、同じソートキー値(ORDER BY 句で指定される列であり、PRIMARY KEY ではありません)を持つ重複したエントリを削除します。 |
| CoalescingMergeTree テーブルエンジン | CoalescingMergeTree は MergeTree エンジンを継承しています。主な特徴は、パーツのマージ時に各列の最後の非 NULL 値を自動的に保存できることです。 |
| SummingMergeTree テーブルエンジン | SummingMergeTree は MergeTree エンジンを継承しています。主な特徴は、パーツのマージ時に数値データを自動的に集計(合計)できることです。 |
| AggregatingMergeTree テーブルエンジン | 同じプライマリキー(より正確には、同じ ソートキー)を持つすべての行を、集約関数の状態を組み合わせて保存した 1 行(単一のデータパーツ内)に置き換えます。 |
| CollapsingMergeTree テーブルエンジン | MergeTree を継承していますが、マージ処理中に行を折りたたむロジックが追加されています。 |
| VersionedCollapsingMergeTree テーブルエンジン | 継続的に変化するオブジェクトの状態を高速に書き込み、古いオブジェクト状態をバックグラウンドで削除できるようにします。 |
| GraphiteMergeTree テーブルエンジン | Graphite データの間引きおよび集約・平均化(ロールアップ)のために設計されています。 |
| Exact および Approximate Vector Search | Exact および Approximate Vector Search についてのドキュメントです。 |
| テキストインデックスを使用した全文検索 | テキスト内から検索語句を高速に見つけます。 |