Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

BigQuery と ClickHouse Cloud のインテグレーション

ClickHouse Cloud でのプライベートプレビュー

BigQuery ClickPipe は、BigQuery から ClickHouse Cloud へデータを取り込むための、フルマネージドで耐障害性に優れた仕組みです。プライベートプレビューでは、BigQuery のデータセットを探索やプロトタイピング向けに一括で読み込めるよう、初期ロード レプリケーション方式をサポートしています。将来的には CDC もサポートされる予定です。それまでは、初期ロード完了後に BigQuery のエクスポートデータを ClickHouse Cloud に継続的に同期する方法として、Google Cloud Storage ClickPipe の利用を推奨します。

BigQuery ClickPipes は、ClickPipes UI を使用して手動でデプロイおよび管理できるほか、OpenAPITerraform を使用してプログラムからデプロイおよび管理することもできます。

機能

初期ロード

BigQuery ClickPipe は、BigQuery の データセット 内で選択したテーブルを、1 回のバッチ操作で ClickHouse の宛先テーブルにロードします。インジェストタスクが完了すると、ClickPipe は自動的に自動停止します。初期ロードのインジェストプロセスでは、ステージング用にユーザーが用意した Google Cloud Storage (GCS) バケットが必要です。今後は、この中間バケットは ClickPipes によって提供および管理される予定です。

CDC (変更データキャプチャ)

CDC はプライベートプレビューではサポートされていませんが、今後サポートされる予定です。それまでは、初期ロードの完了後に BigQuery のデータエクスポートを ClickHouse Cloud に継続的に同期する方法として、Google Cloud Storage ClickPipe の使用を推奨します。

データ型マッピング

BigQuery のデータ型

BigQuery データ型 ClickHouse データ型 詳細
BOOL Bool
INT64 Int64
FLOAT64 Float64
NUMERIC Decimal(P, S) 精度は最大 38、スケールは最大 9。精度/スケールは保持されます。
BIGNUMERIC Decimal(P, S) 精度は最大 76、スケールは最大 38。精度/スケールは保持されます。
STRING String
BYTES String
JSON String (JSON)
DATE Date
TIME String マイクロ秒精度。
DATETIME DateTime マイクロ秒精度。
TIMESTAMP DateTime64(6) マイクロ秒精度。
GEOGRAPHY String
GEOMETRY String
UUID String
ARRAY<T> Array(T)
ARRAY<DATE> Array(Date)
STRUCT (RECORD) String

アクセス制御

認証

サービスアカウントの認証情報

ClickPipes は、サービスアカウントキーを使用して Google Cloud プロジェクトに認証します。ClickPipes が BigQuery からデータをエクスポートし、ステージング用の GCS バケットにロードしてから ClickHouse に読み込めるように、必要最小限の権限のみを持つ専用のサービスアカウントを作成することを推奨します。

BigQuery と Cloud ストレージ の権限を持つサービスアカウントキーの作成

権限

BigQuery

サービス アカウントには、次の BigQuery ロールが必要です。

アクセス範囲をさらに絞り込むには、ロールがアクセスできるリソースを制限するために IAM 条件 を使用することを推奨します。たとえば、dataViewer ロールを、同期対象のテーブルを含む特定のデータセットのみに制限できます。

resource.name.startsWith("projects/<PROJECT_ID>/datasets/<DATASET_NAME>")

Cloud ストレージ

サービス アカウントには、次の Cloud ストレージ ロールが必要です。

アクセス範囲をさらに絞るには、IAM 条件を使用して、ロールがアクセスできるリソースを制限することを推奨します。たとえば、objectAdmin ロールと bucketViewer ロールを、ClickPipes の同期用に作成した専用バケットのみに制限できます。

resource.name.startsWith("projects/_/buckets/<BUCKET_NAME>")
Navigation