最初の BigQuery ClickPipe の作成
Private Preview のウェイトリストにはこちらから登録できます。
BigQuery ClickPipe は、BigQuery から ClickHouse Cloud へデータを取り込むための、フルマネージドで高い堅牢性を備えた手段を提供します。Private Preview では、探索やプロトタイピングのために BigQuery データセットを一括ロードするのに役立つ initial load レプリケーション方式をサポートしています。将来的には CDC(変更データキャプチャ) にも対応予定です。それまでは、initial load が完了した後に BigQuery のデータエクスポートを ClickHouse Cloud へ継続的に同期する手段として、Google Cloud Storage ClickPipe の利用を推奨します。
BigQuery ClickPipes は、ClickPipes UI を使用して手動でデプロイおよび管理できるほか、OpenAPI および Terraform を用いてプログラムから管理することもできます。
前提条件
-
GCP プロジェクトで service accounts および IAM roles を管理する権限を持っている必要があります。権限がない場合は管理者に依頼してください。公式ドキュメント に従い、必要最小限の permissions を付与した専用の service account を作成することを推奨します。
-
初期ロード処理には、ステージング用としてユーザーが用意した Google Cloud Storage (GCS) バケットが必要です。公式ドキュメント に従い、ClickPipe 専用のバケットを作成することを推奨します。将来的には、中間バケットは ClickPipes によって提供および管理される予定です。
データソースの選択
1. ClickHouse Cloud のメインナビゲーションメニューから Data sources を選択し、Create ClickPipe をクリックします。

2. BigQuery タイルをクリックします。

ClickPipe 接続のセットアップ
新しい ClickPipe をセットアップするには、BigQuery データウェアハウスへの接続方法と認証情報、さらにステージング用 GCS バケットの詳細を指定する必要があります。
1. ClickPipes 用に作成した service account の .json キーをアップロードします。service account に必要最小限の permissions が付与されていることを確認してください。

2. Replication method を選択します。Private Preview では、サポートされるオプションは Initial load only のみです。
3. 初期ロード中にデータをステージングするための GCS バケットへのパスを指定します。
4. Next をクリックして検証します。
ClickPipe の設定
BigQuery データセットのサイズや、同期したいテーブルの合計サイズによっては、ClickPipe のデフォルトのインジェスト設定を調整する必要がある場合があります。
テーブルの設定
1. BigQuery のテーブルをレプリケーションする ClickHouse データベースを選択します。既存のデータベースを選択することも、新規に作成することもできます。
2. レプリケーションするテーブルと、必要に応じてカラムを選択します。ここには、指定した service account がアクセスできる dataset のみが表示されます。

3. 選択した各テーブルに対して、Advanced settings > Use a custom sorting key からカスタムのソートキーを必ず定義します。将来的には、ソートキーは上流データベースの既存のクラスタリングキーまたはパーティショニングキーに基づいて自動的に推論される予定です。
ClickHouse でのクエリパフォーマンスを最適化するため、レプリケーションされるテーブルには必ず sorting key を定義する必要があります。定義しない場合、ソートキーは tuple() に設定され、プライマリ索引が作成されないため、そのテーブルに対するすべてのクエリで ClickHouse がフルテーブルスキャンを実行することになります。

権限の設定
最後に、内部 ClickPipes ユーザーの権限を設定します。
Permissions: ClickPipes は、宛先テーブルにデータを書き込む専用ユーザーを作成します。この内部ユーザーには、カスタムロールまたはあらかじめ定義されたロールのいずれかを選択できます:
Full access: クラスタへのフルアクセスを許可します。宛先テーブルで materialized views や Dictionary を使用する場合に必要です。Only destination: 宛先テーブルへの挿入権限のみを許可します。
セットアップの完了
Create ClickPipe をクリックしてセットアップを完了します。Overview ページにリダイレクトされ、初期ロードの進行状況を確認し、BigQuery ClickPipes の詳細を参照できます。
