メインコンテンツへスキップ
メインコンテンツへスキップ

ClickHouse Cloud アーキテクチャ

ClickHouse Cloud のアーキテクチャ

オブジェクトストレージをバックエンドにしたストレージ

  • 事実上無制限のストレージ容量
  • データを手動で共有する必要がない
  • 特にアクセス頻度の低いデータの保存において、コストを大幅に削減できる

コンピュート

  • 自動スケーリングとアイドリング: 事前にリソース容量を見積もる必要がなく、ピーク時を見越した過剰なプロビジョニングも不要
  • 自動アイドリングと再開: 利用者がいない間に未使用のコンピュートリソースを動かしておく必要がない
  • 標準でセキュアかつ高可用

管理

  • セットアップ、モニタリング、バックアップ、課金はすべてサービス側で実行されます。
  • コスト管理機能はデフォルトで有効になっており、Cloud コンソールから調整できます。

サービス分離

ネットワーク分離

すべてのサービスはネットワーク層で分離されています。

コンピュート分離

すべてのサービスは、それぞれの Kubernetes 名前空間内で個別のポッドとしてデプロイされており、ネットワークレベルで分離されています。

ストレージ分離

すべてのサービスは、共有バケット(AWS、GCP)またはストレージコンテナ(Azure)内の、サービス専用サブパスを使用します。

AWS の場合、ストレージへのアクセスは AWS IAM によって制御されており、各 IAM ロールはサービスごとに固有です。Enterprise サービスでは、保存データの高度な分離を提供するために CMEK を有効化できます。現時点では、CMEK は AWS サービスでのみサポートされています。

GCP および Azure の場合、サービスはオブジェクトストレージレベルで分離されており(すべてのサービスが独自のバケットまたはストレージコンテナを持ちます)。

コンピュート間分離

コンピュート間分離 により、同じオブジェクトストレージを共有しつつ、それぞれ固有のサービス URL を持つ複数のコンピュートグループを作成できます。これにより、同一データを共有しながら、読み取りと書き込みなどの異なるユースケース間でコンピュートリソースを分離できます。また、コンピュートグループごとに必要に応じて独立してスケーリングできるため、リソースをより効率的に活用できます。

同時実行制限

ClickHouse Cloud サービスでは、1 秒あたりのクエリ数(QPS)に上限はありません。ただし、レプリカごとの同時実行クエリ数には 1000 件という上限があります。QPS は最終的には、平均クエリ実行時間とサービス内のレプリカ数によって決まります。

自己管理型の ClickHouse インスタンスや他のデータベース/データウェアハウスと比較した場合、ClickHouse Cloud の大きな利点は、レプリカを追加する(水平スケーリング)ことで 同時実行数を簡単に増やせることです。