Klaviyo と Databricks を接続する
アドバンストKDPはKlaviyoの標準マーケティングアプリケーションには含まれておらず、関連機能にアクセスするにはサブスクリプションが必要です。このプランの購入方法については、請求ガイドをご覧ください。
Databricksのインポートを設定する
概要:次の手順に従って、DatabricksをKlaviyoへのインポート用に準備してください。必要なスキーマ(カタログ内)を作成し、Klaviyo専用のアカウントとアクセストークンを設定し、必要な権限を割り当て、設定を検証してから、Klaviyoでインポート同期を作成します。
重要:Databricksは、KlaviyoへのデータのインポートとKlaviyoデータのDatabricksへのエクスポートの両方をサポートしています。インポートとエクスポートを個別に設定してください。
- プロファイルとイベントはKlaviyoにインポートし、Databricksにエクスポートできます。
- Unity Catalog が必要です。Hive metastore (HMS) を使用する Databricks インスタンスに接続するには、Hive metastore federation をご検討ください。
Klaviyo でのデータウェアハウスのインポートの仕組み(スキーマ構造、必要なテーブル、フィールド マッピングを含む)の詳細については、Klaviyo でのデータウェアハウスのインポートの仕組み および データウェアハウスのイベント インポートについて理解する。 を参照してください。
Klaviyoデータの宛先としてDatabricksを設定するには、KlaviyoデータをDatabricksにエクスポートする方法をご覧ください。
開始する前に、Klaviyoがクエリを実行するDatabricks SQLウェアハウスを選択してください。スキーマを作成してアクセス権を付与するには権限が必要です。Databricks管理者のサポートを受けることもできます。
1)必要なスキーマを作成する
Databricksでは、スキーマ(データベースと呼ばれることもあります)はカタログ内に存在します。この例ではmainカタログを使用しています。以降の手順全体で、これをご自身のカタログに置き換えてください。
USE CATALOG main; -- or your organization’s designated catalog
CREATE SCHEMA IF NOT EXISTS KLAVIYO_IMPORT_FROM_DWH;
CREATE SCHEMA IF NOT EXISTS KLAVIYO_TMP;KLAVIYO_IMPORT_FROM_DWH注:このスキーマで作成されたテーブルとビューは、新しい同期を設定する際に選択できるようになります。KLAVIYO_TMP: 同期中に使用される一時的なデータ/ステージング データ。
注:Klaviyoで接続をテストする前に、KLAVIYO_IMPORT_FROM_DWHでインポートしたいデータを含むテーブルまたはビューを少なくとも1つ作成してください。上記でリンクされているインポートガイドを使用して、その識別子とタイムスタンプフィールドを準備してください。
2) Klaviyoサービスアカウントとアクセストークンを作成する
Klaviyo は、パーソナル アクセス トークン(PAT)を持つ専用アカウントを使用して Databricks に対して認証します。可能な場合は非人間(サービス)アカウントを使用し、PAT は安全に保管してください(例: パスワードマネージャーまたはシークレットストア)。初期設定時にこのトークンを Klaviyo に提供します。
2.1 アカウントを作成
この外部連携で Klaviyo のみが使用する Databricks ワークスペースユーザーまたはサービスプリンシパルを作成します。
2.2 個人用アクセストークンを生成する
- ワークスペース ユーザー アカウント: Databricks ウェブ UI でトークンを生成します(Databricks のドキュメントを参照)。ワークスペース ユーザーの個人用アクセス トークンを作成する
- サービスプリンシパル:Databricksワークスペースの管理者に依頼して、Databricks CLIを使用して初期トークンを生成してもらってください(Databricksのドキュメントを参照):Databricks CLIを使用して個人用アクセストークンを作成する
重要:PAT は機密情報として取り扱ってください。トークンを持っている人は誰でも、関連付けられたアカウントの権限で Databricks にアクセスできます。
3)必要な権限を割り当てる
Klaviyo用に作成したDatabricksのIDに、カタログとステップ1で作成したスキーマへのアクセス権を付与します。klaviyo_service_userをDatabricksのユーザー名またはサービスプリンシパルのアプリケーションIDに置き換え、スキーマ名の先頭にカタログを付けてください(例:main)。
スキーマ | 最低限必要な権限 | 目的 |
|---|---|---|
|
| 同期中に、Klaviyo が一時テーブルを作成および管理できるようにします。 |
|
| Klaviyo がテーブルとビューを読み取れるようにします。 |
-- Grant access to the catalog
GRANT USE CATALOG ON CATALOG main TO `klaviyo_service_user`;
-- Grant permissions on temporary schema
GRANT ALL PRIVILEGES ON SCHEMA main.KLAVIYO_TMP TO `klaviyo_service_user`;
-- OR, grant granular privileges:
GRANT USE SCHEMA, MODIFY, SELECT, CREATE TABLE ON SCHEMA main.KLAVIYO_TMP TO `klaviyo_service_user`;
-- Grant read-only access to import schema
GRANT USE SCHEMA, SELECT ON SCHEMA main.KLAVIYO_IMPORT_FROM_DWH TO `klaviyo_service_user`;Klaviyoに入力するHTTP Pathを持つSQLウェアハウスに対して、同じDatabricks IDにCAN USE権限を付与してください。スキーマ権限では、ウェアハウスへのアクセスは付与されません。Databricks SQLウェアハウスの権限を参照してください。
ベストプラクティス: 最小権限の原則を適用し、必要な権限のみを付与してください。
4)設定を確認する(任意)
4.1 スキーマが存在することを確認する
Databricks SQL ノートブックまたはエディターで実行します:
SHOW SCHEMAS IN main; -- replace 'main' with your catalog if different次のように表示されます:
klaviyo_import_from_dwh
klaviyo_tmp4.2 認証をテスト(PAT を使用)
Klaviyo に提供する予定の同じトークンで Databricks CLI を使用します:
# Set your token and host (example for AWS)
export DATABRICKS_HOST="https://<your-workspace>.cloud.databricks.com"
export DATABRICKS_TOKEN="<your-PAT>"
# Run a simple API call
databricks current-user me想定される結果: ユーザーまたはサービス プリンシパルの詳細(例:表示名、ユーザー ID)を示す JSON 出力。HTTP 403 または認証エラーが発生した場合は、トークンとホスト URL を確認してください。
4.3 各スキーマの権限を確認する
SHOW GRANTS ON CATALOG main;
SHOW GRANTS ON SCHEMA main.klaviyo_tmp;
SHOW GRANTS ON SCHEMA main.klaviyo_import_from_dwh;Klaviyo用に作成したDatabricks IDに、カタログ上でUSE CATALOG、KLAVIYO_IMPORT_FROM_DWH上でUSE SCHEMAとSELECT、およびステップ3に記載されている一時スキーマの権限が付与されていることを確認してください。また、SQLウェアハウスに対するCAN USE権限も確認してください。
4.4 作成、書き込み、読み取り操作を検証する
KLAVIYO_TMP内のklaviyo_permissions_testには、未使用のテーブル名を使用してください。example_source_tableを、インポート予定のテーブルまたはビューに置き換えてください。
-- Test create, write, read, and drop in KLAVIYO_TMP
USE SCHEMA main.klaviyo_tmp;
CREATE TABLE klaviyo_permissions_test (id INT);
INSERT INTO klaviyo_permissions_test VALUES (1);
SELECT * FROM klaviyo_permissions_test;
DROP TABLE klaviyo_permissions_test;
-- List sources and test reading a table or view you plan to import
USE SCHEMA main.klaviyo_import_from_dwh;
SHOW TABLES;
SELECT * FROM example_source_table LIMIT 1;ヒント:
- Klaviyo と共有するのと同じ ID と PAT を使用して、これらの検証手順を実行します。
- 監査/トラブルシューティングのために、SQL の GRANT ステートメントと検証出力を保持してください。
- PAT は定期的に、またスタッフ変更後にローテーションしてください。
5)Databricksを接続して、インポート同期を作成する
Databricksを設定したら、Klaviyoでインポート設定を開いてください。
- Klaviyoで、[アドバンスト] > [データ管理] > [同期]と進みます。
- すでに接続がある場合は、[同期を作成]をクリックしてください。
- [データウェアハウスからデータをインポート] を選択します。
- データウェアハウスとして Databricks を選択します。
- [Databricks に接続] をクリックします。
プロンプトが表示されたら、次の接続の詳細を入力してください:
フィールド | 説明 | 確認場所 |
|---|---|---|
サーバーホスト名 | https://や末尾のスラッシュなしのDatabricksワークスペースのホスト名。 | Databricks にログインしているときに、ブラウザのアドレス バーで見つかります。 |
HTTP パス | クエリに使用する SQL Warehouse の HTTP パス。 | Databricks UI で:
例: |
カタログ | Klaviyo スキーマを含むカタログ(例: | 次を使用して検証します: SHOW CATALOGS; |
アクセストークン | ステップ 2 で作成した個人用アクセス トークン(PAT)。 | セットアップ中はトークンを安全に保管し、貼り付けます。 |
接続の詳細を入力したら、接続をテストし、インポート同期を完了してください。
- [次へ] をクリックします。接続をテストで、テストをクリックします。テストが失敗した場合は、接続の詳細または権限を修正してから、再度テストしてください。
- テストが成功したら、次へをクリックしてください。続行するには、
KLAVIYO_IMPORT_FROM_DWHにアクセス可能なテーブルまたはビューが少なくとも1つ必要です。 - 同期の名前を入力し、インポートするテーブルまたはビューを選択してください。プロファイルまたはイベントと、頻度:手動またはスケジュール実行を選択してください。スケジュール同期の場合は、間隔、開始日、開始時刻、タイムゾーンを設定してください。[次へ] をクリックします。
- プロパティをマッピングで、変更検出に使用するタイムスタンプ列を選択し、データタイプに必要なマッピングを完了してください。イベント同期の場合は、イベントタイプとイベントタイムスタンプも設定してください。変更の検出には別の列を使用してください。完了をクリックして、接続を保存し、インポートの同期を行います。
保存したインポートの同期は、同期中に表示されます。スケジュール同期では、選択した頻度が使用されます。手動同期の場合は、Databricks接続を開き、同期のアクションメニューから手動で実行を選択して、データのインポートを開始してください。