アドバンストKlaviyoデータプラットフォームはKlaviyoの標準マーケティングアプリケーションには含まれておらず、関連機能にアクセスするにはサブスクリプションが必要です。このプランの購入方法については、請求ガイドをご覧ください。

このページで学べること

Klaviyoが独自のDatabricksワークスペース内のDeltaテーブルにプロファイル、イベント、メトリックデータを継続的に書き込むように、Databricksを送信同期先として設定する方法をご覧ください。接続すると、データチームはKlaviyoデータをレイクハウスの他のデータと組み合わせて、分析、モデリング、レポート作成に活用できます。

代わりにDatabricksからKlaviyoにデータを取り込むことをご検討ですか?KlaviyoとDatabricksの接続をご覧ください。

始める前に

次のものが揃っていることを確認してください。

  • Unity Catalogが有効になっているDatabricksワークスペース。Hiveメタストアのみのワークスペースはサポートされていません。Hiveメタストアを使用している場合は、Hiveメタストアフェデレーションを検討してください。
  • VARIANT列とセッションスコープの一時テーブルに対応し、Klaviyoがデータを書き込めるようにするSQLウェアハウスServerless SQLウェアハウスを推奨します。ClassicおよびProのウェアハウスは起動に数分かかる場合があり、同期が遅れる可能性があります。
  • 使用するカタログで、スキーマ、テーブル、付与(grant)を作成する権限(またはDatabricks管理者のサポート)。
  • Klaviyoで外部連携を管理する権限。
  • ワークスペースでIPアクセスリストを使用してインバウンドトラフィックを制限している場合は、Klaviyoの送信IPアドレスを許可リストに追加してください:
    • 184.72.183.187/32
    • 52.206.71.52/32
    • 3.227.146.32/32
    • 44.198.39.11/32
    • 35.172.58.121/32
    • 3.228.37.244/32
    • 54.88.219.8/32
    • 3.214.211.176/32

Klaviyoアカウントごとに設定できるデータウェアハウスのエクスポート先は1つのみです。すでに別のウェアハウス(例:SnowflakeまたはS3)にエクスポートしている場合は、Databricksを追加する前にそのエクスポート先を削除する必要があります。

ステップ1:Klaviyoデータのスキーマを作成する

Databricksでは、スキーマはカタログ内にあります。Klaviyoが書き込むテーブルを格納するための専用スキーマを作成してください。この記事全体で使用するSQLの例では、カタログにmain、スキーマにKLAVIYO_EXPORTを使用しています。別の名前を使用する場合は、すべてのSQLの例で置き換え、ステップ5でKlaviyoに同じ名前を入力してください。

sql
USE CATALOG main;  -- or your organization's designated catalog
CREATE SCHEMA IF NOT EXISTS KLAVIYO_EXPORT;

手順2:宛先テーブルを作成する

手順1で作成したスキーマで、次のスクリプトを実行してください。Klaviyoは3つのテーブルに書き込みます:

  • klaviyo_profile:標準フィールド、場所、カスタムプロパティを含む、プロファイルごとに1行。
  • klaviyo_event: プロファイルとメトリックに紐付けられたイベント(例:「注文の確定」または「メールの開封」)ごとに1行。
  • klaviyo_metric:メトリックごとに1行。各イベントのメトリック名とソース外部連携を参照するために使用します。

カスタムプロファイルプロパティとイベントプロパティはVARIANT列に格納されるため、数百個の個別列を管理しなくても、ネストされたJSONを直接クエリできます。

sql
USE SCHEMA main.KLAVIYO_EXPORT;

CREATE TABLE klaviyo_profile (
  id                 STRING NOT NULL,
  external_id        STRING,
  email              STRING,
  phone_number       STRING,
  first_name         STRING,
  last_name          STRING,
  title              STRING,
  organization       STRING,
  properties         VARIANT,
  image              STRING,
  created            TIMESTAMP,
  updated            TIMESTAMP,
  location_address1  STRING,
  location_address2  STRING,
  location_city      STRING,
  location_country   STRING,
  location_latitude  STRING,
  location_longitude STRING,
  location_region    STRING,
  location_zip       STRING,
  PRIMARY KEY (id)
)
TBLPROPERTIES ('delta.feature.variantType-preview' = 'supported');

CREATE TABLE klaviyo_event (
  id               STRING NOT NULL,
  metric_id        STRING NOT NULL,
  profile_id       STRING,
  event_properties VARIANT,
  datetime         TIMESTAMP,
  uuid             STRING,
  PRIMARY KEY (id)
)
TBLPROPERTIES ('delta.feature.variantType-preview' = 'supported');

CREATE TABLE klaviyo_metric (
  id                   STRING NOT NULL,
  name                 STRING NOT NULL,
  integration_id       STRING,
  integration_name     STRING,
  integration_category STRING,
  created              TIMESTAMP,
  updated              TIMESTAMP,
  PRIMARY KEY (id)
);

テーブル名は完全に一致している必要があります。Klaviyoは、セットアップ時に提供されたスキーマ内でklaviyo_profile、klaviyo_event、klaviyo_metricを検索します。

手順3:サービスプリンシパルとアクセストークンを作成する

Klaviyoは、個人用アクセストークン(PAT)を使用してDatabricksへの認証を行います。個人のアカウントではなく、この外部連携専用で使用するサービスプリンシパルを作成することを推奨します。

  1. Klaviyo用にサービスプリンシパル(またはワークスペースユーザー)を作成します。
  2. パーソナルアクセストークンを生成してください:
  3. トークンは安全な場所に保管してください。ステップ5でKlaviyoに貼り付けます。

アクセストークンはパスワードと同様に扱ってください。トークンを持っている人は誰でも、関連付けられたアカウントの権限でDatabricksにアクセスできます。定期的に、またスタッフの変更後にローテーションしてください。

すでにDatabricksからのインポート用にサービスプリンシパルを作成している場合は、それを再利用できます。手順4でエクスポート権限を追加するだけです。

ステップ4:権限を付与

Klaviyoサービスプリンシパルに、カタログ、スキーマ、SQLウェアハウスへのアクセス権を付与してください。klaviyo_service_userを、サービスプリンシパルのアプリケーションIDまたはユーザー名に置き換えてください。

sql
GRANT USE CATALOG ON CATALOG main TO `klaviyo_service_user`;
GRANT USE SCHEMA, SELECT, MODIFY ON SCHEMA main.KLAVIYO_EXPORT TO `klaviyo_service_user`;

権限

目的

USE CATALOG

Klaviyoがエクスポートスキーマを含むカタログにアクセスできるようにします。

USE SCHEMA

Klaviyoがエクスポートスキーマにアクセスできるようにします。

SELECT

Klaviyoが既存の行を読み取り、重複ではなくレコードを更新できるようにします。

MODIFY

Klaviyoが宛先テーブルの行を挿入、更新、削除できるようにします。

また、使用予定のSQLウェアハウスで、サービスプリンシパルにCan use権限を付与してください。DatabricksでSQL Warehousesに移動し、ウェアハウスを選択して、Permissionsをクリックし、サービスプリンシパルを追加してください。

設定を確認する(任意)

Klaviyoに付与するのと同じIDとトークンを使用して、テーブルと権限付与を確認してください。

sql
SHOW TABLES IN main.KLAVIYO_EXPORT;
SHOW GRANTS ON SCHEMA main.KLAVIYO_EXPORT;

3つのテーブルすべてが表示され、サービスプリンシパルがUSE SCHEMA、SELECT、MODIFYで一覧に表示されているはずです。

手順5:KlaviyoでDatabricksに接続する

  1. Klaviyoで、[アドバンスト] > [データ管理] > [同期]と進みます。
  2. すでに同期がある場合は、同期を作成をクリックしてください。
  3. データをデータウェアハウスにエクスポートを選択します。
  4. Databricksを選択し、次にDatabricksに接続をクリックしてください。
  5. 接続の詳細を入力してください:

フィールド

説明

確認場所

名前

この接続を識別するための名前です。

Klaviyoエクスポートなど、内容がわかる名前を入力してください。

サーバーホスト名

Databricksワークスペースのホスト。

Databricksにログインしているときの、ブラウザのアドレスバー。例: abc-12345678.cloud.databricks.com

HTTP パス

Klaviyoが使用するSQLウェアハウスのHTTPパス。

SQLウェアハウス > ウェアハウスを選択 > 接続の詳細。例: /sql/1.0/warehouses/1234abcd5678efgh

カタログ

エクスポートスキーマを含むカタログ。

手順1で使用したカタログ(例:main)。

スキーマ

3つのKlaviyoテーブルを含むスキーマ。

ステップ1で作成したスキーマ(例:KLAVIYO_EXPORT)。

アクセストークン

作成したサービスプリンシパルまたはワークスペースユーザーのパーソナルアクセストークン。

手順3で生成したトークン。

同期を設定するには次へをクリックしてください。

また、[外部連携] > [アプリを探す]に移動してDatabricksを検索すると、KlaviyoのアプリマーケットプレイスでDatabricksを見つけることもできます。

ステップ6:データ同期を設定します

KlaviyoがDatabricksに送信する内容と、同期するタイミングを選択してください。

データオブジェクト

プロファイル、イベント、または両方を同期するように選択します。メトリックデータはイベントと一緒に同期されるため、各イベントのメトリック名とソースを参照できます。

Klaviyoからすべてのデータを同期すると、Databricksのコンピュートおよびストレージのコストが増加する可能性があります。

除外する外部連携

Databricksに送信したくないイベントがある外部連携を選択してください。これはイベントデータのみに適用されます。プロファイルは除外されません。

選択的同期

「注文の確定」など、同期するイベントのメトリックを選択してください。除外していない外部連携からすべてのイベントを同期するには、選択的同期を空のままにしてください。このフィールドは、イベントデータオブジェクトを選択した場合にのみ表示されます。

同期の頻度

毎回で、新規および更新されたデータを同期する頻度を選択します:1、2、4、6、12、または24時間ごと。デフォルトは1時間です。スケジュールの開始日、開始時間、タイムゾーンを設定してください。

履歴データ

初回同期時に送信する履歴データの量を選択してください:

  • 30 日
  • 90 日
  • 1 年
  • 全期間

大規模な過去データの同期は完了までに時間がかかる場合があり、Databricksのコストが増加する可能性があります。最近のデータのみが必要な場合は、より短い期間から始めることを検討してください。

ステップ7:同期を確認し、接続して、モニタリングする

  1. 次へをクリックしてレビューを開きます。接続の詳細、共有データ、除外する外部連携、選択したメトリック、初期データ同期範囲を確認してください。
  2. [接続]をクリックします。Klaviyoは接続をテストし、テストが成功した場合はエクスポートを作成します。

セットアップが成功すると、Klaviyoは確認メッセージを表示し、同期中に戻ります。エクスポートは有効になっており、そこで同期ステータスを監視できます。

接続テストが失敗した場合は、エラーの詳細を確認してください。接続の詳細を修正するには認証情報を編集をクリックし、次にデータ設定で次へをクリックして確認に戻り、再度接続をクリックしてください。

同期をモニタリングするには、Advanced > Data management > Syncingに移動し、Exportとマークされた行でDatabricksをクリックしてください。次のタブを使用してください:

  • 履歴: 初回バックフィルのステータス。
  • 定期:選択した周期での同期のステータス(データの鮮度(DatabricksテーブルがKlaviyoからどれだけ遅れているか)を含む)。
  • 設定:接続の詳細、データの選択、同期の頻度、過去データの範囲を表示および編集します。保存するには、変更するセクションで情報を更新をクリックしてください。

同期ステータス、同期の一時停止と再開、エラーログの確認の詳細については、Klaviyoでのデータウェアハウス同期について理解するをご覧ください。

DatabricksでKlaviyoデータをクエリする

使い始めるにあたっての例をいくつかご紹介します。

過去7日間のメトリック名別イベント数:

sql
SELECT m.name AS metric, COUNT(*) AS events
FROM main.KLAVIYO_EXPORT.klaviyo_event e
JOIN main.KLAVIYO_EXPORT.klaviyo_metric m ON e.metric_id = m.id
WHERE e.datetime >= current_timestamp() - INTERVAL 7 DAYS
GROUP BY m.name
ORDER BY events DESC;

propertiesのバリエーション列からカスタムプロファイルプロパティを読み取ります:

sql
SELECT id, email, properties:loyalty_tier::STRING AS loyalty_tier
FROM main.KLAVIYO_EXPORT.klaviyo_profile
WHERE properties:loyalty_tier IS NOT NULL;

「注文の確定」イベントから注文金額を取得します:

sql
SELECT e.profile_id, e.datetime, e.event_properties:`$value`::DOUBLE AS order_value
FROM main.KLAVIYO_EXPORT.klaviyo_event e
JOIN main.KLAVIYO_EXPORT.klaviyo_metric m ON e.metric_id = m.id
WHERE m.name = 'Placed Order';

トラブルシューティング

問題

確認事項

接続テストが認証エラーで失敗しました。

ホスト名にhttps://のプレフィックスや末尾のスラッシュがないこと、またアクセストークンが有効で期限切れになっていないことを確認してください。

接続テストが権限エラーで失敗しました

手順4の付与(grant)を確認します。USE CATALOGと、SQLウェアハウスに対する[使用可能]を含みます。

Klaviyoが宛先テーブルを見つけられません

Klaviyoのカタログとスキーマが手順2のスクリプトを実行した場所と一致していること、またテーブル名がklaviyo_profile、klaviyo_event、klaviyo_metricと完全に一致していることを確認してください。

VARIANTタイプに関するエラー

SQLウェアハウスがVARIANTをサポートするDatabricks SQLバージョンを実行していること、またテーブルが手順2に示されているTBLPROPERTIESで作成されていることを確認してください。

同期の開始に時間がかかっています

ClassicおよびProのSQLウェアハウスは、起動に数分かかる場合があります。サーバーレスSQLウェアハウスを使用するか、ウェアハウスの自動停止時間を延長してください。

リクエストはブロックされています

ワークスペースでIPアクセスリストを使用している場合は、事前準備に記載されているKlaviyoのIPアドレスを許可リストに追加してください。

Databricksエクスポートを削除する

エクスポートを削除すると、今後の同期が停止します。すでにDatabricksのテーブルに書き込まれているデータは削除されません。

  1. Klaviyoで外部連携に移動してください。
  2. Databricksエクスポート外部連携の横にあるメニューを開き、外部連携を削除を選択してください。
  3. 確認ダイアログで外部連携を削除をクリックしてください。

その他のリソース

この記事は役に立ちましたか?
この記事へのフィードバックは、上記のボタン・記入欄よりご提供ください。 サポートへの連絡方法.

Klaviyo の詳細を見る

コミュニティ
同業者、パートナー、Klaviyo のエキスパートとつながり、インスピレーションを得たり、インサイトを共有したり、あらゆる質問への回答を得たりできます。
パートナー
特定のタスクや継続的なマーケティング管理のためのサポートを、Klaviyo 認定エキスパートに依頼しましょう。
サポート

アカウントからサポートにアクセスしてください。

メールサポート (無料トライアルと有料アカウント) 24 時間 365 日利用可能

チャット/バーチャル アシスタント
利用可否は地域およびプランタイプによって異なります