Klaviyo と BigQuery(リバース ETL)の接続
アドバンストKDPはKlaviyoの標準マーケティングアプリケーションには含まれておらず、関連機能にアクセスするにはサブスクリプションが必要です。このプランの購入方法については、請求ガイドをご覧ください。
環境の設定と接続
概要: 次の手順に従って、Klaviyo 用に BigQuery を準備します。必須のスキーマ(データセット/プロジェクト内)を作成し、専用のサービスアカウントとキーを設定し、必要最小限の権限を割り当て、設定を検証してから、BigQuery を Klaviyo に接続します。
Klaviyo におけるデータウェアハウスのインポートの仕組み(スキーマ構造、必要なテーブル、フィールドのマッピングなど)の詳細については、Klaviyo におけるデータウェアハウスのインポートの仕組みをご覧ください。
1) 必要なスキーマ/データセットを作成する
BigQuery で、Klaviyo に使用するプロジェクト内に 2 つのデータセットを作成します。
CREATE SCHEMA `KLAVIYO_IMPORT_FROM_DWH`;
CREATE SCHEMA `KLAVIYO_TMP`;KLAVIYO_IMPORT_FROM_DWH: このデータセットで作成されたテーブルとビューは、Klaviyo が読み取り/書き込みできるようになります。KLAVIYO_TMP: 同期操作中に使用される一時的またはステージング用のデータ。
2) Klaviyoサービスアカウントとキーを作成
Google サービスアカウントを作成します(例:KLAVIYO_DATA_TRANSFER_USER) は、Klaviyo がこの外部連携でのみ使用します。このアカウントの JSON キーをダウンロードし、安全に保管します。
- GCP コンソールで [IAM & 管理者] → [サービス アカウント] に移動します。
- Klaviyo 専用の新しいサービス アカウントを作成(または既存のものを選択)してください。
- [Keys] タブで、タイプが JSON の新しいキーを作成します。このキー ファイルは安全に保管してください。Klaviyo で接続を設定する際に必要になります。
3) 必要な権限を割り当てる
作成した 2 つのデータセットをスコープとして、サービス アカウントに次のロールを付与します。
データセット | 最小必須ロール | 説明 |
|---|---|---|
|
| Klaviyo が一時テーブル、ジョブなどを作成および管理できるようにします。 |
|
| Klaviyo がテーブルから読み取れるようにします。 |
-- Example commands in GCP CLI (replace placeholders):
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
--member="serviceAccount:KLAVIYO_DATA_TRANSFER_USER@YOUR_PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/bigquery.dataEditor" \
--condition=None \
--dataset="KLAVIYO_TMP"
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
--member="serviceAccount:KLAVIYO_DATA_TRANSFER_USER@YOUR_PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/bigquery.dataViewer" \
--condition=None \
--dataset="KLAVIYO_IMPORT_FROM_DWH"4)設定を確認(任意)
4.1 データセットが存在することを確認する
SELECT schema_name
FROM `YOUR_PROJECT_ID.INFORMATION_SCHEMA.SCHEMATA`
WHERE schema_name IN ('KLAVIYO_IMPORT_FROM_DWH','KLAVIYO_TMP');4.2 サービスアカウントのアクセスを確認
サービス アカウントキーを使用して BigQuery CLI または API で認証し、簡単なクエリを実行します:
bq --project_id=YOUR_PROJECT_ID \
--dataset_id=KLAVIYO_IMPORT_FROM_DWH \
query --use_legacy_sql=false \
'SELECT COUNT(*) FROM `YOUR_PROJECT_ID.KLAVIYO_IMPORT_FROM_DWH.some_table` LIMIT 1'4.3 各データセットの権限を確認する
SELECT *
FROM `YOUR_PROJECT_ID.KLAVIYO_IMPORT_FROM_DWH.INFORMATION_SCHEMA.OBJECT_PRIVILEGES`
WHERE grantee = 'KLAVIYO_DATA_TRANSFER_USER@YOUR_PROJECT_ID.iam.gserviceaccount.com';4.4 任意:作成/読み取り操作を検証
-- Test create in KLAVIYO_TMP
CREATE TABLE `YOUR_PROJECT_ID.KLAVIYO_TMP.test_permissions` (id INT64);
DROP TABLE `YOUR_PROJECT_ID.KLAVIYO_TMP.test_permissions`;
-- Test select in KLAVIYO_IMPORT_FROM_DWH
SELECT * FROM `YOUR_PROJECT_ID.KLAVIYO_IMPORT_FROM_DWH.some_existing_table` LIMIT 1;ヒント:Klaviyo に提供するものと同じサービスアカウントとキーを使用して、これらのチェックを実行します。監査のために結果のコピーを保管してください。
5) Klaviyo を BigQuery に接続する
BigQuery 環境を設定したら、Klaviyo で接続を完了します。
- Klaviyo で、左側のサイドバーから 詳細 → 同期 に移動します。
- [同期を作成] をクリックします。
- データをデータウェアハウスにインポートまたはエクスポート を選択します。
- データウェアハウスとして BigQuery を選択します。
- [BigQuery に接続] をクリックします。
プロンプトが表示されたら、次の接続構成の詳細を入力してください:
フィールド | 説明 | 入手方法 |
|---|---|---|
プロジェクト ID | Google Cloud プロジェクト ID。 | プロジェクト ページ上部の GCP コンソールで確認できます。 |
データセット | Klaviyo テーブル(例: | ステップ 1 で作成したデータセットを使用します。接続を設定する際にそのデータセットを選択してください。 |
サービス アカウント キー(JSON) | サービス アカウント用にダウンロードした JSON キー ファイル。 | ステップ 2 で作成した JSON キー ファイルの内容をアップロードするか、貼り付けてください。 |
接続後:Klaviyo が接続を検証し、データセットへのアクセスをテストしたうえで、同期を設定できるようになります。これには、Klaviyo へのデータのインポートと、BigQuery への Klaviyo データのエクスポートの両方が含まれます。
次のステップ: 正常に接続したら、Klaviyo で最初のインポートまたはエクスポートの同期を作成し、BigQuery との間でデータの移動を開始します。