ClickHouseの活用事例:Uberと自社での導入
続いて松本氏は「ログ、イベント、トレース」分野におけるClickHouseの活用事例を2つ紹介した。1つ目はUberのケースだ。UberはもともとElasticsearchを使用していたが、約4年前にデータストレージをClickHouseに移行。これにより、高速なデータ取り込みとコスト削減が実現した。Elasticsearchはインデックス作成により書き込みが遅くなるが、ClickHouseはプライマリーキーを活用し、処理速度を向上させている。さらに、インデックスオプティマイザーが過去のデータを分析し、必要なカラムにセカンダリインデックスを自動追加することで、さらなるパフォーマンス向上を実現している。
2つ目のケースはDatadogからの移行だ。ClickHouse社では、マネージドサービスの開発時にオブザーバビリティツールを用意する時間がなく、手軽に導入できるDatadogを採用。しかし、コストの関係で1〜2週間分のデータしか保持できず、長期間のデータ分析が難しいという課題が浮上した。社内調査で半年分のデータを保持するニーズがあると判明したものの、Datadogでは月額40億円以上のコストがかかることが判明。そこで、自社でClickHouseを活用するプロジェクトが始動した。
開発には毎月1.5人のリソースを投入し、約1年でマイグレーションを完了。OpenTelemetryを活用し、各ポストからデータを収集、ゲートウェイ経由でClickHouseに格納し、可視化にはGrafanaを採用した。扱うデータ量は19ペタバイトながら圧縮処理により1.13ペタバイトまで削減し、圧縮率17%を実現。コストを試算するとDatadogと比べ200倍安価になった。

松本氏は「1テラバイト程度ではコスト効果はあまり出ないが、5テラバイト以上ほどデータが溜まっているなら、ClickHouseにマイグレーションするというのは非常に効果的な選択肢の一つ」と話した。
柔軟なスキーマ対応と圧倒的な処理性能
続いて松本氏は、ClickHouseの柔軟なスキーマ対応について説明した。マイクロアーキテクチャの普及により、マイクロサービスごとにログのフォーマットが異なり、新機能の追加やツールの変更で形式が変わることも多い。こうした課題に対応するため、多くのシステムでJSONが標準的に採用されており、ClickHouseも最近JSONタイプを正式にサポートした。
ClickHouseは、カラム内のデータ構造を自動解析し、適切なスキーマを生成する。異なる型のデータが混在しても、自動的に最適なカラムに振り分けるため、運用者がスキーマ調整を意識する必要がない。また、カラム単位でデータを管理することで、高圧縮かつ高速なデータ処理を実現している。
松本氏は、2024年に話題となった「10億ドキュメントチャレンジ」にClickHouseでも参加したことを話した。このチャレンジは、データベースやプログラミング言語の性能を測るため、10億件のドキュメントを解析し、どれだけ効率的に処理できるかを競うものだ。松本氏は、分散型SNS「Bluesky」の投稿者情報や「いいね」履歴をClickHouseに格納し、他のデータベースと比較するプロジェクトを実施した。
その結果、元データの482GBをClickHouseでは99GBまで縮小。他のデータベースと比較すると、MongoDBは158GB、Elasticsearchは360GB、DuckDBは472GB、PostgreSQLは622GBと、ClickHouseの圧縮効率が際立った。

さらに、パフォーマンス検証では「いいね」の回数を集計し、多い順に並べるクエリを実行。ClickHouseは404msで処理を完了し、MongoDBの16分、Elasticsearchの5秒、DuckDBやPostgreSQLの1時間と比較して、圧倒的な高速性を証明した。その他のパフォーマンスでもClickHouseが他を上回った。

最後に松本氏は、ClickHouseのマネージドサービスが無料で試用できるとし「日本ではAWSを利用してClickHouseの検証が可能。30日間、300ドル分まで無料で利用でき、多くのデータを扱うことができる。数テラバイト規模のデータ解析も可能なため、ぜひアカウントを作成し、実際にデータを取り込んで解析を試してみてほしい」と呼びかけた。