萌えハッカーニュースリーダー

2025/08/17 17:52 ClickHouse matches PG for single-row UPDATEs and 4000 x faster for bulk UPDATEs

hakase
博士

ロボ子、今日のITニュースはClickHouseのアップデート性能についてじゃぞ!PostgreSQLと比べてどうなのか、見ていくのじゃ。

roboko
ロボ子

博士、ClickHouseのアップデート性能ですか。PostgreSQLと比較して最大4,000倍も高速になる場合があるというのは本当ですか?

hakase
博士

そうなんじゃ!特にバルクUPDATEでは、ClickHouseが圧倒的に速いらしいぞ。OLTPワークロードでよくある処理だから、これはすごいことなんじゃ。

roboko
ロボ子

バルクUPDATEがそんなに違うんですね。記事によると、ClickHouseの列指向設計と並列処理が貢献しているとのことですが、具体的にはどういうことですか?

hakase
博士

良い質問じゃな、ロボ子!列指向設計だと、UPDATEに必要な列だけを効率的に処理できるんじゃ。それに、並列処理で複数のコアを同時に使えるから、大量のデータを一気に更新できるのじゃ。

roboko
ロボ子

なるほど、列指向と並列処理の組み合わせが効いているんですね。でも、PostgreSQLはデフォルトで完全なトランザクションをサポートしていますが、ClickHouseはそうではないと書かれていますね。

hakase
博士

そこがミソなんじゃ。PostgreSQLはトランザクションを重視するから、データの整合性を保つためにオーバーヘッドがあるんじゃ。ClickHouseは、そこを割り切って、速度を追求しているのじゃ。

roboko
ロボ子

ClickHouse v25.7で高性能SQL標準UPDATEが導入されたとのことですが、これはどういう意味を持つのでしょうか?

hakase
博士

これは、ClickHouseがより標準的なSQL構文でUPDATEできるようになったということじゃ。開発者にとっては、学習コストが下がって、より使いやすくなるはずじゃ。

roboko
ロボ子

記事には、MVCC(Multi-Version Concurrency Control)についても触れられていますね。PostgreSQLとClickHouseはMVCCを使用しているとのことですが、これはどういう仕組みですか?

hakase
博士

MVCCは、リーダー(読み込み)とライター(書き込み)が互いに邪魔せずに、並行して作業できる仕組みじゃ。データのスナップショットを保持することで、読み込み中に書き込みがあっても、一貫性を保てるのじゃ。

roboko
ロボ子

なるほど、データの整合性を保ちつつ、並行処理を可能にするんですね。テスト環境についても書かれていますね。AWS m6i.8xlarge EC2インスタンスを使用しているとのことですが、これはどういうスペックのマシンですか?

hakase
博士

32コア、128GB RAMのかなり強力なマシンじゃな。これくらいのスペックがあれば、大量のデータを扱うClickHouseの性能を十分に引き出せるのじゃ。

roboko
ロボ子

コールドアップデート時間を測定するために、OSレベルのページキャッシュをドロップしたとありますが、これはどういう意味ですか?

hakase
博士

ページキャッシュがあると、データがメモリ上に残っていて、UPDATEが速く終わってしまうことがあるんじゃ。それを避けるために、キャッシュをクリアして、毎回ディスクからデータを読み込むようにしたのじゃ。

roboko
ロボ子

なるほど、より現実的なUPDATE時間を測定するためなんですね。ClickHouseはUPDATE後の分析クエリも高速に実行できるとのことですが、これはどういうことですか?

hakase
博士

UPDATEでデータが変わっても、ClickHouseは列指向設計のおかげで、分析クエリを効率的に実行できるのじゃ。リアルタイム分析にも使えるということじゃな。

roboko
ロボ子

今回の記事で、ClickHouseのアップデート性能が非常に高いことがよくわかりました。博士、ありがとうございました。

hakase
博士

どういたしまして、ロボ子。最後に一つ、ClickHouseの速さは、まるで私が作ったロケットみたいじゃな!…でも、たまに打ち上げに失敗するのじゃ。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search