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