ClickHouse Cloudとは
ClickHouse Cloudは、オープンソースのカラムナOLAPデータベース「ClickHouse」の公式クラウドサービスです。インフラ管理や運用をサービス提供者に任せられるため、ビジネス価値の創出に集中できる環境が手に入ります。
大量のデータを高速に処理し、複雑なクエリもミリ秒単位で実行できるリアルタイム分析基盤として、今回はClickHouse Cloudを実際に使ってみましょう。
ClickHouse Cloudを使ってみよう
まずはアカウント作成から
まずはClickHouse Cloudのサイトに行き、アカウントを登録しましょう。
アカウント登録のやり方
トップページ左中央にある 「クラウドの無料トライアルを開始します」 をクリックし、以下のいずれかの方法でサインアップします。
- メールアドレスによる登録
- Google SSOによる登録
- Microsoft SSOによる登録
メール登録の場合は、届いた確認メール内のリンクをクリックして有効化します。
初回ログインとサービス作成
アカウントを有効化して初めてログインすると、オンボーディングウィザードが自動的に起動します。主に以下の設定を行います。
- リージョンの選択:レイテンシを最小化するため、ユーザーやデータソースに近いリージョンを選びましょう。
- サービス名の設定:プロジェクト名や用途に応じた分かりやすい名前を付けます。
ウィザードに従って設定を進めると、数分でClickHouse Cloudサービスが起動します。
リソース構成とスケール設定
新規組織の場合、デフォルトで以下の構成になっています。
- レプリカ数:3レプリカ
- 各レプリカのリソース:4 vCPU、16 GiB RAM
- オートスケーリング:垂直オートスケーリングが自動的に有効
必要に応じて、最小・最大リソースの設定やスケーリング範囲の調整が可能です。コンピュートとストレージが分離したアーキテクチャにより、処理能力とストレージ容量を独立してスケールできます。
ClickHouse Cloudに接続してみよう
接続方法は「 WebブラウザからSQLコンソール 」と「 CLIやアプリケーションからの接続 」があります。
WebベースのSQLコンソール
WebブラウザからSQLコンソールにアクセスする方法です。SQLコンソールでは、以下のことができます。
- SQLクエリの直接実行
- データベースとテーブルの参照
- クエリ結果の可視化
- クエリ履歴の確認
SQLコンソールは追加のツールインストールが不要なので、初めての接続や動作確認にぴったりです。
CLIやアプリケーションからの接続
より本格的に運用したい場合は、以下の設定により、アプリケーションやCLIからも使えます。
- ホスト:コンソールから取得したホスト情報
- ポート:8443(TLS必須)
- データベース名:デフォルトは「default」
- ユーザー名:デフォルトは「default」
- パスワード:サービス作成時に設定したパスワード
ホストとポート情報は、コンソールでサービスを選択し、サイドバーのConnect ボタンからHTTPS を選択すると取得できます。
./clickhouse client --host HOSTNAME.REGION.CSP.clickhouse.cloud
プログラミング言語からの接続には、公式のクライアントライブラリ(Python、Java、Go、Node.jsなど)が提供されています。
データを追加 (取り込み) してみよう
ClickHouse Cloudでは、多様なデータソースからデータを取り込むための手段が複数用意されています。
ClickPipesによるデータ統合
ClickPipesは、ClickHouse Cloud専用の管理型取り込みパイプラインです。直感的なUIで数クリックするだけで設定が完了します。
対応データソース:
- オブジェクトストレージ:Amazon S3、Google Cloud Storage、DigitalOcean Spaces、Azure Blob Storage
- データベースCDC:PostgreSQL、MySQL、MongoDB
- ストリーミング:Apache Kafka、Confluent Cloud、Redpanda、AWS MSK、Amazon Kinesis、Azure Event Hubs、WarpStream
スキーマの自動推論、継続的なデータ取り込み、高いスループットとスケーラビリティを提供します。
その他のデータ取り込み方法
SQLコンソールによる手動挿入
標準的なINSERT文で少量のデータやテストデータを追加できます。
INSERT INTO table_name (column1, column2, column3)
VALUES (value1, value2, value3);
ClickHouseクライアントの利用
バッチ処理やスクリプトからの自動化に便利です。
clickhouse-client --query="INSERT INTO table_name FORMAT CSV" < data.csv
一度に数万〜数百万行をまとめて挿入(バッチ挿入)することで、挿入のオーバーヘッドを最小化できます。
ファイルアップロード
SQLコンソールやWebインターフェースから、JSON、CSV、TSV形式のファイルを直接アップロードできます。
プログラミング言語からの挿入
公式のクライアントライブラリを使用して、アプリケーションから直接データを挿入できます。
運用とチューニングのコツ
ClickHouse Cloudを本番環境で効果的に使いこなすためには、パフォーマンス最適化、監視、セキュリティの観点が大切です。
パフォーマンスと最適化
クエリ最適化の基本
- 必要なカラムのみをSELECTし、I/Oを削減
- WHERE句を活用し、早期にデータを絞り込む
- 適切なGROUP BYとORDER BYの使用
インデックス戦略
- プライマリインデックス:適切なORDER BY句の設定が重要
- データスキップインデックス:非プライマリキー列に適用し、フィルター処理を高速化
データ挿入の最適化
- 一度に大量の行を挿入し、スループットを最大化
- 非同期挿入でリソースオーバーヘッドを削減
- 数万〜数百万行単位でのバッチ挿入がおすすめ
スキーマ設計のコツ
- UPDATE/DELETEは重い操作なので、設計段階でなるべく減らす
- 不要なNULL許容カラムを避けると、ストレージと処理効率が向上
適切なテーブルエンジンの選択
用途に応じた適切なMergeTree系エンジンを選ぶことで、効率的なデータ管理が可能です。
- ReplacingMergeTree:マージ処理で重複キーの古い行を新しい行に置き換えるエンジン。version 列を指定すると、その値を使って新旧を判定できる。
- SummingMergeTree:ORDER BY キーが一致する行をマージ時に SUM 集計して1行にまとめるエンジン。特定のカラムだけを集計対象に指定することも可能。
- AggregatingMergeTree:sumState や uniqState などの「集計状態」を保持し、マージ時に状態を結合し、最終出力時に Merge 関数で値を復元する。大規模集計を高速化できる。
OPTIMIZE TABLE FINALは慎重に使用
OPTIMIZE TABLE <table> FINAL は、
対象パーティション内のデータパーツを強制的にマージし、 ReplacingMergeTree や CollapsingMergeTree の処理を即時適用するコマンドです。
この処理は大量の I/O と CPU を消費するため、特に ClickHouse Cloud では 過度な実行がコスト増・パフォーマンス劣化につながります。 以下のような「本当に必要な場合」に限定してください。
- ReplacingMergeTree で重複排除を即時に確定させたいとき
- CollapsingMergeTree の collapse を強制的に適用したいとき
- クエリ前にデータの最終状態を確実に一貫させたいとき
通常はバックグラウンドマージが自動的に実行されるため、FINAL の使用は最小限に抑えることが推奨されます。
監視とセキュリティ
Monitoringタブ(ClickHouse Cloud)
ClickHouse CloudのWebコンソールには「Monitoring」タブが用意されており、サービスの状態をリアルタイムに近い頻度で監視できます。以下のメトリクスを可視化したダッシュボードで確認できます。
- クエリ/秒
- CPU使用率(コア)
- 実行中のクエリ
- 実行中のマージ
- 選択バイト/秒
- IO待機
- CPU待機
- OS CPU使用率(ユーザースペース)
- OS CPU使用率(カーネル)
- ディスクからの読み取り
- ファイルシステムからの読み取り
- メモリ(トラッキング済み)
- 挿入された行/秒
- 合計MergeTreeパーツ
- パーティションの最大パーツ数
システムテーブル
-
system.metrics:現在の瞬間的なメトリクス -
system.events:累積イベントカウンター -
system.query_log:クエリ履歴とパフォーマンス情報
外部監視システムとの統合
Prometheus、Graphite、HTTPヘルスチェック(/pingエンドポイント)に対応しています。
セキュリティとアクセス制御
ClickHouse Cloudは、組織レベル、サービスレベル、SQLコンソールレベルの3段階のロールベースアクセス制御(RBAC)を提供しています。また、SSO、CMEK、監査ログ、コンプライアンス認定(GDPR、HIPAA、PCI DSSなど)もサポートしています。
困ったときは (トラブルシューティング)
接続できない場合
- ホスト名とポート番号、パスワードは正しいか
- ネットワーク設定(ファイアウォールやセキュリティグループ)は適切か
- TLS設定が有効になっているか(ポート8443を使用)
クエリが遅い場合
-
system.query_logテーブルでクエリの実行時間とリソース使用量を確認 - EXPLAIN文で実行計画を分析
- インデックスやパーティショニングの見直し
データ取り込みがうまくいかない場合
- ClickPipesのステータスをコンソールで確認
- スキーマの互換性とエラーログを確認
公式ドキュメントとサポート
- 公式ドキュメント:詳細なリファレンスとチュートリアル
- ナレッジベース、コミュニティフォーラム、サポートチケット(有償プラン)を活用
まとめ
ClickHouse Cloudは、サーバーレス運用と自動スケーリングにより、インフラ管理の悩みから解放され、高速な分析基盤を手軽に構築できます。
無料トライアルで実際に動かしてみると、スピード感と運用の手軽さを実感できるはずです。さらに深く学びたい方は、公式ドキュメントもご覧ください。


