カタログデータの同期と削除
ステップ 1: 新規カタログの作成
カタログ用の新しいクラウドデータ取り込み (CDI) の連携を作成する前に、連携に使用する新規カタログを作成するか、既存のカタログを指定する必要があります。新規カタログを作成する方法はいくつかあり、いずれも CDI 連携に使用できます。
- CSV をアップロードする
- Braze ダッシュボードでカタログを作成する
- カタログ作成エンドポイントを使用してカタログを作成する
カタログスキーマへの変更 (新しいフィールドの追加、フィールドタイプの変更など) は、更新されたデータが CDI を通じて同期される前に、カタログダッシュボードから行う必要があります。データウェアハウスのデータと Braze のスキーマとの競合を避けるために、同期が一時停止されているとき、または実行がスケジュールされていないときにこれらの更新を行うことをお勧めします。
ステップ 2: クラウドデータ取り込みとカタログデータの連携
カタログ同期の設定は、ユーザーデータ CDI 連携のプロセスに厳密に従います。
- Snowflake でソーステーブルを設定します。次の例の名前を使用することも、独自のデータベース、スキーマ、およびテーブルの名前を選択することもできます。テーブルの代わりに、ビューまたはマテリアライズドビューを使用することもできます。
1 2 3 4 5 6 7 8 9 10 11
CREATE DATABASE BRAZE_CLOUD_PRODUCTION; CREATE SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION; CREATE OR REPLACE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC ( UPDATED_AT TIMESTAMP_NTZ(9) NOT NULL DEFAULT SYSDATE(), --ID of the catalog item to be created or updated ID VARCHAR(16777216) NOT NULL, --Catalog fields and values that should be added or updated PAYLOAD VARCHAR(16777216) NOT NULL, --The catalog item associated with this ID should be deleted DELETED BOOLEAN );
-
ロール、ウェアハウス、およびユーザーを設定し、適切な権限を付与します。既存の同期からの認証情報をすでに持っている場合はそれらを再利用できますが、必ずアクセスをカタログソーステーブルに拡張してください。 ```json CREATE ROLE BRAZE_INGESTION_ROLE;
GRANT USAGE ON DATABASE BRAZE_CLOUD_PRODUCTION TO ROLE BRAZE_INGESTION_ROLE; GRANT USAGE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION TO ROLE BRAZE_INGESTION_ROLE; GRANT SELECT ON TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC TO ROLE BRAZE_INGESTION_ROLE;
CREATE WAREHOUSE BRAZE_INGESTION_WAREHOUSE; GRANT USAGE ON WAREHOUSE BRAZE_INGESTION_WAREHOUSE TO ROLE BRAZE_INGESTION_ROLE;
CREATE USER BRAZE_INGESTION_USER; GRANT ROLE BRAZE_INGESTION_ROLE TO USER BRAZE_INGESTION_USER; ```
- Snowflake アカウントにネットワークポリシーがある場合は、CDI サービスが接続できるように Braze IP を許可リストに登録します。IP のリストについては、「クラウド データの取り込み」を参照してください。
- Braze ダッシュボードで [テクノロジーパートナー] > [Snowflake] に移動し、新規の同期を作成します。
- 接続の詳細を入力し (または既存の認証情報報を再利用する)、ソーステーブルを入力します。
- 設定フローのステップ 2 に進み、[カタログ] 同期タイプを選択し、連携名とスケジュールを入力します。連携名は、以前に作成したカタログの名前と正確に一致する必要があることに注意してください。
- 同期頻度を選択し、次のステップに進みます。
- ダッシュボードに表示されている公開キーを、Snowflake に Braze を接続するために作成したユーザーに追加します。このステップを完了するには、Snowflake で
SECURITYADMIN
以上のアクセスを持つ人が必要です。 - [テスト接続] をクリックして、すべてが意図どおりに動作することを確認します。
- 同期を保存し、同期されたカタログデータをすべてのパーソナライゼーションのユースケースに使用します。
- Redshift でソーステーブルを設定します。次の例の名前を使用することも、独自のデータベース、スキーマ、およびテーブルの名前を選択することもできます。テーブルの代わりに、ビューまたはマテリアライズドビューを使用することもできます。
1 2 3 4 5 6 7 8 9 10 11
CREATE DATABASE BRAZE_CLOUD_PRODUCTION; CREATE SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION; CREATE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC ( updated_at timestamptz default sysdate not null, --ID of the catalog item to be created or updated id varchar not null, --Catalog fields and values that should be added or updated payload varchar(max), --The catalog item associated with this ID should be deleted deleted boolean )
-
ユーザーを設定し、適切な権限を付与します。既存の同期からの認証情報をすでに持っている場合はそれらを再利用できますが、必ずアクセスをカタログソーステーブルに拡張してください。
1 2 3
CREATE USER braze_user PASSWORD '{password}'; GRANT USAGE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION to braze_user; GRANT SELECT ON TABLE CATALOGS_SYNC TO braze_user;
- ファイアウォールや他のネットワークポリシーがある場合は、Redshift インスタンスに Braze ネットワークへのアクセスを許可する必要があります。Braze ダッシュボードの地域に対応する以下の IP からのアクセスを許可します。IP のリストについては、「クラウド データの取り込み」を参照してください。
- オプションで、ソーステーブルを保持する新規のプロジェクトまたはデータセットを設定します。次のフィールドを持ち、CDI 連携に使用するテーブルを 1 つ以上作成します。
フィールド名 | タイプ | モード |
---|---|---|
UPDATED_AT | タイムスタンプ | 必須 |
PAYLOAD | JSON | 必須 |
ID | 文字列 | 必須 |
DELETED | ブール値 | 任意 |
- ユーザーを設定し、適切な権限を付与します。既存の同期からの認証情報をすでに持っている場合はそれらを再利用できますが、必ずアクセスをカタログソーステーブルに拡張してください。
サービスアカウントには次の権限が必要です。
- BigQuery 接続ユーザー: Braze に接続を許可します。
- BigQuery ユーザー: クエリの実行、データセットメタデータの読み取り、およびテーブルの一覧表示を行うためのアクセスを Braze に提供します。
- BigQuery データビューアー: データセットとその内容を表示するためのアクセスを Braze に提供します。
- BigQuery ジョブユーザー: ジョブを実行するためのアクセスを Braze に提供します。
サービスアカウントを作成して権限を付与したら、JSON キーを生成します。詳細については、キーの作成と削除を参照してください。これは後で Braze ダッシュボードに更新します。
- ネットワークポリシーを設定している場合は、Braze に Big Query インスタンスへのネットワークアクセスを許可する必要があります。IP のリストについては、「クラウド データの取り込み」を参照してください。
- Databricks でソース テーブルを設定します。次の例の名前を使用することも、独自のデータベース、スキーマ、およびテーブルの名前を選択することもできます。テーブルの代わりに、ビューまたはマテリアライズドビューを使用することもできます。
フィールド名 | タイプ | モード |
---|---|---|
UPDATED_AT | タイムスタンプ | 必須 |
PAYLOAD | JSON | 必須 |
ID | 文字列 | 必須 |
DELETED | ブール値 | 省略 (NULL) 可 |
- Databricks ワークスペースでパーソナルアクセストークンを作成します。
-
a. Databricks ユーザー名を選択し、ドロップダウンメニューから [ユーザー設定] を選択します。
-
b. [アクセストークン] タブで、[新しいトークンの生成] を選択します。
-
c. 「Braze CDI」など、このトークンの識別に役立つコメントを入力します。
-
d. [有効期間 (日)] ボックスを空白のままにして、トークンの有効期間を有効期間なしに変更します。[生成] を選択します。
-
e. 表示されたトークンをコピーして、[完了] を選択します。
-
f. 認証情報の作成ステップで Braze ダッシュボードへの入力が必要になるまで、トークンを安全な場所に保管してください。
- ネットワークポリシーを設定している場合は、Brazeに Databricks インスタンスへのネットワークアクセスを許可する必要があります。IP のリストについては、「{:start=”3”}クラウド データの取り込み{:start=”3”}」を参照してください。
連携の仕組み
同期が実行されるたびに、Braze は、UPDATED_AT
が最後に同期されたタイムスタンプ以降にあるすべての行を取得します。同期が実行されるたびに完全に更新されるソーステーブルを設定するには、カタログデータからビューを作成することをお勧めします。例えば、product_id
、price
を含む製品データ (product_catalog_1
) のテーブルと 3 つの追加属性がある場合、以下のビューを同期できます。
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE VIEW BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC AS
SELECT
CURRENT_TIMESTAMP as UPDATED_AT,
product_id as id,
TO_JSON(
OBJECT_CONSTRUCT (
'attribute_1',
attribute_1,
'attribute_2',
attribute_2,
'attribute_3',
attribute_3)
)as PAYLOAD FROM "product_catalog_1";
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC AS
SELECT
CURRENT_TIMESTAMP as UPDATED_AT,
Product_id as id,
JSON_SERIALIZE(
OBJECT (
'attribute_1',
attribute_1,
'attribute_2',
attribute_2,
'attribute_3',
attribute_3)
) as PAYLOAD FROM "product_catalog_1";
1
2
3
4
5
6
7
8
9
10
11
CREATE view IF NOT EXISTS BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC AS (SELECT
last_updated as UPDATED_AT,
product_id as ID,
TO_JSON(
STRUCT(
attribute_1,
attribute_2,
attribute_3,
)
) as PAYLOAD
FROM `BRAZE_CLOUD_PRODUCTION.INGESTION.product_catalog_1`);
1
2
3
4
5
6
7
8
9
10
11
CREATE view IF NOT EXISTS BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC AS (SELECT
last_updated as UPDATED_AT,
product_id as ID,
TO_JSON(
STRUCT(
attribute_1,
attribute_2,
attribute_3,
)
) as PAYLOAD
FROM `BRAZE_CLOUD_PRODUCTION.INGESTION.product_catalog_1`);
- 連携からフェッチされたデータは、指定した
id
に基づいて、ターゲットカタログ内のアイテムの作成または更新に使用されます。 - DELETED が
true
に設定されている場合、対応するカタログアイテムが削除されます。 - 同期でデータポイントは消費されませんが、同期されたすべてのデータはカタログの合計使用量にカウントされます。この使用量は保存されている合計データに基づいて測定されるため、変更されたデータのみの同期について心配する必要はありません。