ClickHouse Tune MergeTree/Projection 2026(クリックハウスチューン)
ClickHouse Performance Tuning。MergeTree Family (Replicated/Distributed/Aggregating)・PARTITION BY・ORDER BY (Primary Key)・Sample By・SETTINGS index_granularity=8192・Projection (Materialized View代替)・Aggregating Materialized View・MaterializedPostgreSQL ENGINE・Dictionary External Source・SAMPLE 0.1・FINAL Modifier・Vertical Merge Algorithm・MergeTree Compression LZ4/ZSTD・¥0 OSS、2026年ClickHouse 25.1 Vector Search内蔵対応。
概要
ClickHouse 25.1(2026年リリース)は、MergeTree 系列エンジンのパフォーマンスチューニングをさらに進化させ、Projection(マテリアライズドビュー代替)や Aggregating Materialized View、Vector Search 内蔵機能を標準化した。MergeTree の PARTITION BY・ORDER BY・SAMPLE BY を組み合わせ、index_granularity=8192 で高速スキャンを実現。さらに FINAL 修飾子と Vertical Merge Algorithm でクエリ時のデータ統合を最適化。圧縮は LZ4 と ZSTD の二択で、ストレージコストを大幅削減。2025年に導入された新しいデータディクショナリ外部ソースと、2026年の Vector Search 対応により、時系列解析から機械学習まで幅広いワークロードに対応する。
主な特徴・仕組み
- MergeTree ファミリー:ReplicatedMergeTree、DistributedMergeTree、AggregatingMergeTree を統合し、分散環境でも単一ノードと同等のクエリ性能を実現。
- PARTITION BY と ORDER BY:
PARTITION BY toYYYYMM(event_date)とORDER BY (user_id, event_date)で 1 GB のパーティションを 8192 行単位に分割。 - SAMPLE BY:
SAMPLE 0.1で 10% のサンプル抽出を高速化。 - Projection:クエリ毎に最適化された Projection を作成し、マテリアライズドビューより 30% 速い実行時間を実現。
- Aggregating Materialized View:集約クエリを事前に計算し、
FINAL修飾子で最新状態を保証。 - Vertical Merge Algorithm:列単位でマージを行い、メモリ使用量を 25% 削減。
- Compression:ZSTD で 4:1 の圧縮率、LZ4 で 2:1 の圧縮率を選択。
- Vector Search 内蔵:2026年リリースで追加された
VECTOR型を利用し、10 000 次元のベクトル検索を 10 ms 以内で完了。 - Dictionary External Source:外部 CSV/JSON から即時にディクショナリをロード。
- MaterializedPostgreSQL ENGINE:PostgreSQL のテーブルを ClickHouse にマッピングし、双方向の同期を可能に。
スペック比較表
| エンジン | データサイズ (TB) | クエリ応答時間 (平均 ms) | ストレージ圧縮 | レプリケーション |
|---|---|---|---|---|
| MergeTree | 1.0 | 45 | LZ4 (2:1) | 1 |
| ReplicatedMergeTree | 1.5 | 50 | ZSTD (4:1) | 3 |
| DistributedMergeTree | 2.0 | 55 | ZSTD (4:1) | 3 |
| AggregatingMergeTree | 1.2 | 40 | LZ4 (2:1) | 1 |
具体例・対応製品
| 製品 | 主なスペック | クリックハウス適合性 |
|---|---|---|
| Intel Xeon W-3300 | 64 コア / 128 スレッド / 3.2 GHz 基本 / 4.8 GHz ターボ | 高スループットクエリに最適。マルチスレッドで MergeTree を高速化。 |
| Samsung 990 Pro | 2 TB NVMe PCIe 4.0 / 5 000 MB/s 連続書き込み | 大規模データのインジェストに適合。ZSTD 圧縮で 1 TB のデータを 250 GB に縮小。 |
| Kingston DDR5‑6000 64GB | 6000 MHz / 480 GB/s バンド幅 | メモリバッファで FINAL 修飾子を高速化。 |
| RTX 5090 | 24 GB GDDR7 / 1 200 MHz | GPU で Vector Search をハードウェアアクセラレーション。 |
| AMD Ryzen 9 9950X3D | 16 コア / 32 スレッド / 4.5 GHz | 低レイテンシの OLAP ワークロードに適合。 |
自作PCでの選び方・注意点
- CPU:MergeTree のパーティション作成と
ORDER BYのソートは CPU 集約。Xeon W‑3300 など 64 コア以上を推奨。 - メモリ:
index_granularity=8192で 8192 行のインデックスを保持。1 TB のデータなら 64 GB 以上の DDR5‑6000 を確保。 - ストレージ:NVMe PCIe 4.0/5.0 の 2 TB 以上を選択し、ZSTD 圧縮で 4:1 以上の圧縮率を実現。
- GPU:Vector Search を利用する場合は RTX 5090 など GDDR7 を搭載。
- ネットワーク:ReplicatedMergeTree でレプリケーションを行う場合は 10 GbE 以上の帯域を確保。
- 電源:Xeon W‑3300 の TDP は 450 W。RTX 5090 は 350 W 以上。650 W 以上の 80 + Gold PSU を推奨。
- 冷却:高負荷時に 70 ℃ を超えないように液体冷却を検討。
- OS & OS バージョン:Linux (Ubuntu 24.04 LTS) で 64‑bit カーネル 6.6 以上。
- バックアップ:ZSTD 圧縮データを定期的に別サーバへ複製。
- 監視:Prometheus + Grafana で CPU/メモリ/IO をリアルタイム監視。
関連用語との違い
- マテリアライズドビュー (MV):Projection はクエリごとに生成され、必要に応じて再作成。MV は常に更新され、永続化される。
FINAL修飾子:MergeTree のロールアップを強制し、最新のデータを取得。Projection ではFINALを付けても Projection のデータは変わらない。- Dictionary External Source:外部ファイルから即時にディクショナリをロード。MV ではディクショナリを参照しない。
- Vector Search:2026年リリースで内蔵。従来の
LIKEやMATCHでは実現できない高次元類似検索をサポート。
よくある質問(FAQ)
Q1. Projection と MV のどちらを使えばいいですか?
A1. 大量の更新が頻繁にあるテーブルでは Projection が有利。MV は更新頻度が低く、永続化が必要な集計に適しています。
Q2. ZSTD 圧縮はどのくらいの速度低下があるのですか?
A2. ZSTD 4:1 圧縮で書き込み速度は LZ4 より 30% 遅くなるが、読み込み時は 20% 速くなる。2025年に導入されたハードウェアアクセラレーションで速度差は 10% 以内に抑えられています。
Q3. 2026年リリースで追加された Vector Search は GPU で実行できますか?
A3. はい。RTX 5090 など GDDR7 を搭載した GPU で 10 000 次元のベクトル検索を 10 ms 以内に完了します。CPU だけの場合は 50 ms 程度です。
まとめ
ClickHouse 25.1 は MergeTree 系列の高度なチューニングと Projection、Vector Search など新機能を統合し、2025〜2026 年のデータウェアハウス需要に応える。自作PC で高性能を引き出すには CPU、メモリ、NVMe ストレージ、GPU、ネットワークをバランスよく選定し、電源と冷却も十分に確保することが不可欠。プロジェクションと MV の使い分け、圧縮方式の選択、そして外部ディクショナリの活用で、実際の運用コストとパフォーマンスを最大化できる。