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