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

Screenshot 2025-11-09 at 12.41.47 PM.png
Screenshot 2025-11-09 at 12.41.47 PM.png

概要

このガイドでは、Redshift 管理者向けに、Klaviyo 用に Amazon Redshift を準備し、必要最小限のアクセス権を付与し、接続を完了して、スケジュールに従ってプロファイルデータをインポートできるようにする手順を説明します。次の内容を学習します:

  1. KLAVIYO_TMP と KLAVIYO_IMPORT_FROM_DWH のスキーマを作成
  2. Klaviyo 専用のサービスユーザーを作成する
  3. 最小権限のアクセス権限を付与する
  4. (任意)権限と接続を検証する
  5. Redshift を Klaviyo に接続して同期の作成を開始する

データウェアハウスのインポートの仕組み(対応オブジェクトやテーブル構造のベストプラクティスを含む)の背景については、Klaviyo のデータウェアハウスのインポートについて理解する を参照してください。

必須のスキーマを作成する

Redshift が Klaviyo に使用するデータベースに 2 つのスキーマを作成します。

auto
-- Run as a Redshift DB admin or a role with CREATE SCHEMA
CREATE SCHEMA IF NOT EXISTS klaviyo_import_from_dwh;
CREATE SCHEMA IF NOT EXISTS klaviyo_tmp;
  • KLAVIYO_IMPORT_FROM_DWH – 同期の準備が整った最終的なテーブルまたはビューをここに配置します。セットアップ中、Klaviyo によりこのスキーマ内のオブジェクトが一覧表示されて選択できるため、インポートする予定のテーブルのみを含めてください。
  • KLAVIYO_TMP – 同期ジョブ中に一時/ステージング テーブルとして使用するために Klaviyo が排他的に使用します。ここではデータを変更しないでください。Klaviyo はこのスキーマを自動的に管理し、クリーンアップします。

Klaviyoサービスユーザーを作成

Klaviyo 用に専用のデータベース ユーザーを作成し、独立してローテーションできる強力なパスワードを設定します。

auto
-- Replace with your own names and a strong password
CREATE USER klaviyo_data_transfer_user WITH PASSWORD 'REPLACE_WITH_STRONG_PASSWORD';

サービス ユーザーの権限付与を管理するロールを作成します:

auto
CREATE ROLE klaviyo_data_transfer_role;
GRANT ROLE klaviyo_data_transfer_role TO klaviyo_data_transfer_user;

ユーザー名とパスワードは安全に保管してください。Klaviyo を Redshift に接続する際に使用します。

必要な権限を付与します(最小権限)。

auto
-- 1) Allow temporary tables
GRANT TEMPORARY ON DATABASE your_database TO ROLE klaviyo_data_transfer_role;

-- 2) Permissions on the staging schema Klaviyo manages
GRANT USAGE  ON SCHEMA klaviyo_tmp TO ROLE klaviyo_data_transfer_role;
GRANT CREATE ON SCHEMA klaviyo_tmp TO ROLE klaviyo_data_transfer_role;

-- 3) Read-only access to your import schema
GRANT USAGE ON SCHEMA klaviyo_import_from_dwh TO ROLE klaviyo_data_transfer_role;
GRANT SELECT ON ALL TABLES IN SCHEMA klaviyo_import_from_dwh TO ROLE klaviyo_data_transfer_role;
-- Remember to grant access to new tables in the future

-- 3a) Grant SELECT on specific views (repeat as needed)
GRANT SELECT ON VIEW klaviyo_import_from_dwh.example_view_name TO ROLE klaviyo_data_transfer_role;

(Optional) 設定を確認する

Klaviyo ユーザーとしていくつかの簡単なチェックを実行し、付与が正しいことを確認します。

auto
-- Switch to the target database
SET search_path TO klaviyo_tmp;

-- 4.1 Validate create/read in KLAVIYO_TMP
CREATE TABLE IF NOT EXISTS permission_check (id INT);
INSERT INTO permission_check VALUES (1);
SELECT COUNT(*) FROM permission_check;  -- expect 1
DROP TABLE permission_check;

-- 4.2 Confirm visibility of import tables
SET search_path TO klaviyo_import_from_dwh;
SELECT tablename FROM pg_table_def
WHERE schemaname = 'klaviyo_import_from_dwh'
LIMIT 25;

-- 4.3 Confirm SELECT on a source table or view
SELECT * FROM klaviyo_import_from_dwh.EXAMPLE_TABLE;

ネットワークアクセス

Klaviyo が Redshift エンドポイントに到達できる必要があります。

  • 公開 Redshift エンドポイント:ファイアウォールまたはセキュリティグループで、Klaviyo の静的 IP を許可リストに追加します。
  • プライベート エンドポイント (例: PrivateLink):内部ネットワーク パスとセキュリティ ポリシーを通じて接続性を確保してください。

セキュリティグループを使用している場合は、Klaviyo の IP 範囲に対して Redshift ポート(デフォルト 5439)への受信アクセスを許可してください:

auto
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

インポートテーブルを準備する(構造とパフォーマンス)

正確で効率的な増分同期を行うために、インポート予定のすべてのテーブルが次の規則に従っていることを確認してください。

  • タイムスタンプ列:行ごとの作成または最終更新のタイムスタンプ(例:inserted_at、updated_at、modified_at)を含めます。
  • 単調更新:行が変更されるたびにタイムスタンプが増加する必要があります。
  • タイムゾーン: UTC を使用するか、タイムゾーン情報を含めてください。見つからない場合、Klaviyo は UTC とみなします。
  • 一貫した識別子: 重複を避けるために、インポート テーブル全体で同じプロファイル識別子(email、phone、external_id など)を使用してください。
  • 同意形式:同意データを同期する場合は、ファイルまたは SFTP アップロードで使用される有効な値/形式と同じものに従ってください。
  • パフォーマンス:効率的な増分読み取りのために、タイムスタンプ列のソートキーまたは dist キーを検討してください。
  • Views: 単純な SELECT が Klaviyo ユーザーで機能する限り、テーブルまたはビューからインポートできます。

Redshift を Klaviyo に接続する

  1. Klaviyo で左側のサイドバーを開き、詳細 → 同期に移動します。
  2. [同期を作成] をクリックします。
  3. [データウェアハウスからデータをインポート] を選択します。
  4. Redshift を選択します。
  5. [Redshift に接続] をクリックして、次の接続の詳細を入力してください。

フィールド

説明

ホスト

Redshift エンドポイント(例:example-cluster.abc123.us-east-1.redshift.amazonaws.com)

ポート

5439(またはカスタム ポート)

データベース

klaviyo_tmp とを含むデータベース、および klaviyo_import_from_dwh

ユーザー名 / パスワード

Klaviyoサービスのユーザー認証情報

接続後、Klaviyo は認証情報とネットワーク接続をテストします。検証が完了すると、同期を作成し、klaviyo_import_from_dwh からテーブルまたはビューを選択できます。

トラブルシューティングのヒント

接続テストに失敗します

  • ファイアウォールまたはセキュリティ グループのルールで、Klaviyo の IP が正しいポートで Redshift エンドポイントに到達できることを確認してください。
  • SSL 設定と、正しいエンドポイント(クラスターとワークグループ)、リージョン、ポートを使用していることを確認します。

テーブルが表示されない

  • テーブルが klaviyo_import_from_dwh にあることを確認してください。
  • Klaviyo ユーザーがスキーマに対して USAGE を、テーブルまたはビューに対して SELECT を持っていることを確認してください。

同期される新しい行がありません。

  • タイムスタンプ列が行の変更時に更新され、UTC を使用しているか、タイムゾーン情報が含まれていることを確認してください。

実行時の権限エラー

  • Klaviyo ユーザーとして検証 SQL を再実行します。
  • 必要に応じて、付与またはデフォルト権限を再適用してください。

セキュリティとメンテナンス

  • サービス ユーザーのパスワードは定期的に、またスタッフ変更後にローテーションしてください。
  • Klaviyo ユーザーを上記 2 つのスキーマに制限し、必要な場合にのみ USAGE を付与します。
  • 正確な GRANT ステートメントと許可リストに追加した IP 範囲を記録した簡潔な運用手順書を保管してください。

FAQ

複数の Redshift データベースからインポートできますか?
はい。各データベースで 2 つのスキーマを作成し、それぞれのオブジェクトを個別の同期として接続します。

マテリアライズドビューを使用できますか?
はい。マテリアライズド ビューに対して Klaviyo ユーザーに SELECT を付与します。

付録:シンプルなインポート テーブル用の DDL の例

auto
CREATE TABLE klaviyo_import_from_dwh.profile_base (
  external_id   VARCHAR(128),
  email         VARCHAR(320),
  phone         VARCHAR(32),
  first_name    VARCHAR(128),
  last_name     VARCHAR(128),
  country       VARCHAR(64),
  inserted_at   TIMESTAMP
);

-- ensure monotonically increasing timestamp on inserts/updates
-- (use your ETL/ELT to set inserted_at = GETDATE() at load time)
この記事は役に立ちましたか?
この記事へのフィードバックは、上記のボタン・記入欄よりご提供ください。 サポートへの連絡方法.

Klaviyo の詳細を見る

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

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

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

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