メインコンテンツへスキップ
見出し画像
Photo byfuten_seisuke

【第236回】 Data Cloud : データエクステンション連携の更新方法を理解する

    Marketing Cloud を Data Cloud に接続した後、最初に行うべき重要な作業は、データストリームにデータエクステンションを接続することです。これにより、データエクステンション内のレコードが Data Cloud にインポートされ、Data Cloud 上で活用できるようになります。

    ただし、データの抽出方法には いくつかの選択肢があり、Data Cloud の初級管理者にとって悩みの種となることも少なくありません。そこで、本記事では、データエクステンションの抽出方法について詳しく解説し、理解を深めることを目的としています。

    データエクステンションの抽出方法

    まず、データエクステンションの抽出方法には、以下の 2 種類があります。

    • フル更新

    • デルタ抽出(差分抽出)

    これが Data Cloud 側でインポートされる時は、以下のような用語に置き換えられます。

    画像

    また、デルタ抽出には以下の 2 種類があり、以下のような言い方をします。

    1. 数値 CDC

    2. 日時 CDC

    CDC(Change Data Capture)とは「差分データ抽出」を意味します。


    フル更新

    この フル更新 は Marketing Cloud で言うところの「上書き」を意味します。一度すべてのデータを削除し、新しいデータに置き換えます。

    • 利用条件:データ行数が 1 億行以下 である場合のみ利用可能

    • 注意点:ファイルが大きい場合はデルタ抽出を利用してください

    ※ 以前は、下記の通り 1,000 万行のハードリミットでしたが、現在は 1 億行に変更されています。この件を Salesforce サポートに確認してみましたが、2024 年 11 月中旬に変更されたそうです。

    画像

    デルタ抽出

    デルタ抽出 には 数値 CDC と日時 CDC が存在します。Marketing Cloud で言うところの「追加・更新」を意味します。

    こちらの方法では、レコードの削除はされない のがポイントです。

    ※ 現時点において、デルタ抽出(Upsert)を選択した場合は、レコードを削除する手段はなく、データストリームを再作成する必要 があります。

    数値でデルタ抽出

    数値 CDC を利用する場合:(例:請求番号など)

    • 数値型項目を基準にデータを昇順に並び替えます。

    • ハイウォーターマーク(最大値)を基準に差分を抽出します。

    • 新しいデータが最大値を超えた場合、その差分が次回抽出時に送信されます。

    日付でデルタ抽出

    日時 CDC を利用する場合:(例:最終更新日など)

    • 日時型項目を基準にデータを昇順に並び替えます。

    • ハイウォーターマーク(最新日時)を基準に差分を抽出します。

    • 新しいデータが最新日時を超えた場合、その差分が次回抽出時に送信されます。


    抽出モードの使用事例

    上の説明だけですと少しイメージが持ちづらいので、Salesforce のヘルプドキュメントの例に従って、私の方でも再度まとめてみます。

    以下の説明では、次の項目名を持つデータエクステンションを使用します。

    画像

    データ例

    Day 1:初期データ

    画像

    Day 2:更新後のデータ

    画像

    Day 1 から Day 2 の違いは、新たに 4、5 のレコードが挿入され、さらに 請求番号 2 のレコードに更新がかかっており、「請求状況」と「請求更新日」が変更されています。


    抽出方法の比較

    オプション 1:フル更新

    • Day 1:全レコード(3 行)をすべて送信する

    • Day 2:全レコード(5 行)をすべて送信する

    結果:最新データをすべて含む結果となる

    オプション 2:数値 CDC(請求番号)

    • Day 1:全レコード(3 行)をすべて送信する(HWM:3)

    • Day 2:請求番号 4 と 5 のみ送信する(HWM:5)

    結果:請求番号 2 の更新が反映されない

    オプション 3:日時CDC(請求更新日)

    • Day 1:全レコード(3 行)をすべて送信する(HWM:2019/12/01)

    • Day 2:請求番号 2、4、5 のみ送信する(HWM:2019/12/02)

    結果:最新データをすべて含む結果となる

    オプション 4:日時CDC(請求作成日)

    • Day 1:全データ(3行)をすべて送信する(HWM:2019/12/01)

    • Day 2:請求番号 4 と 5 のみ送信する(HWM:2019/12/02)

    結果:請求番号 2 の更新が反映されない


    結論

    画像

    以上のような結果が得られました。

    デルタ抽出の場合は、抽出の度に HWM(ハイウォーターマーク:最大値)が記録され、次の抽出対象はその最大値以上のレコードに限定されます。

    そして、フル更新では 3 + 5 で合計 8 行が処理されましたが、日時CDC(更新日)の場合は 3 + 3 の計 6 行で更新が完了しました。

    そのため、スケーラビリティを考慮すると、日時CDC(更新日)を使用するのが最も効率的な抽出方法と言えるでしょう。


    それでは、ここからは 抽出方法に纏わるいくつかの Tips を書いてみたいと思います。ここでは、以下をテーマにしています。

    1. データエクステンションの抽出方法の変更

    2. 現在のハイウォーターマークを確認する方法

    3. 更新不具合のトラブルシューティング


    1. データエクステンションの抽出方法の変更

    Marketing Cloud のデータエクステンションから作成したデータストリームでは、抽出方法の設定を後から編集することはできません。

    回避策

    設定を変更する必要がある場合、以下のいずれかの方法で回避します。

    1. 新しいデータエクステンションの作成する方法

      • 既存のデータエクステンションの代わりに使用する新しく名前を変更したデータエクステンションを作成します。

      • この新しいデータエクステンションを使用して Data Cloud に新しいデータストリームを作成し、機能を代替してください。

    2. 既存データエクステンションの名前を変更する方法

      • Marketing Cloud 内で既存のデータエクステンションの名前を変更します。

      • Data Cloud の既存データストリームを削除した後で、新しくデータストリームを作成し、名前を変更したデータエクステンションを取り込みます。

    注意点について

    新しいデータエクステンションを既存のものと同じ名前で作成すると、以前に選択されていた抽出方法が自動的に適用され、データストリームの作成画面の時点で変更ができません。

    この仕組みは、Data Cloud のデータストリームとデータエクステンションの関係を理解するうえで非常に重要です。特にデータストリームがファイルベースの仕組みに基づいていることを意識する必要があります。

    背景と仕組み

    • データストリームは、作成時に指定されたデータエクステンション名を基に管理され、その名前はファイル名として扱われます。データエクステンション名とファイル名が一致していることは、データストリームの定義を見ると確認できます。

    画像
    • 仮に Marketing Cloud 側でデータエクステンション名を変更しても関連するデータストリーム内のファイル名は自動的に更新されません。また、手動での変更もできません。

    • そして、データストリームを削除しても、その設定情報は保持され続けるということがポイントになります。同じ名前のデータエクステンションを再び選択してデータストリームを作成すると、過去に設定されたファイル名と紐づいて、抽出方法が設定時に自動的に再適用されます。

    ファイルベースであることを理解することの重要性

    データエクステンション由来のデータストリームは、一見ファイルベースではないように見えますが、実際にはファイルベースと同等の設計です。そのため、以下の点に留意する必要があります。

    1. データストリームはファイル名で管理されるため、データエクステンション名がシステム内で重要なキーとなる。

    2. 一度作成されたデータストリーム設定は、削除後も関連付けが残る。

    3. データエクステンション名の変更は運用上の混乱を招くため、データストリーム作成後はデータエクステンション名の変更を避ける。

    ここから示唆される重要なポイント

    • データストリームとデータエクステンションはファイルベースの仕組みで結びついているため、データエクステンション名の変更を避ける必要があります。このことは、Marketing Cloud 管理者とも共有してください。

    さて、いかがでしたでしょうか。

    私のイメージとして、データエクステンションの管理フォルダは、Amazon S3 でいうところの「バケットとフォルダ」のようなものだと考えています。S3 でも、ファイル名を変更すると連携が途切れるのは当然のことです。それと同様に、データエクステンション名を変更することは避けるべきです。

    では、別のデータエクステンションの名前を元のデータエクステンション名と入れ替えた場合はどうなるでしょうか? その場合、フィールド構造が一致していれば、別のデータエクステンションが連携されます。これはまさに、ファイル連携の挙動に似ていますね。

    これらの仕組みをしっかり理解し、正しく運用することで、効率的でトラブルの少ないデータ管理が可能になります。


    2. 現在のハイウォーターマークを確認する方法

    ハイウォーターマーク(HWM)とは、デルタ抽出の時に記録される数値や日時の「最大値」を指します。これまで学習した通り、デルタ抽出には以下の 2 種類があります。

    1.  数値 CDC(例:請求番号)

    2.  日時 CDC(例:最終更新日)

    このハイウォーターマークが「現在どの値であるか」を調べる方法が、実はあります。ここで登場するのが、なんと Email Studio です! ✨

    確認手順

    手順 1
    Email Studio のメニューから、インタラクション > データファクトリユーティリティーを開きます。

    画像

    手順 2
    データファクトリユーティリティーのリストが表示されます。この中からお好きなユーティリティーをクリックしてください。結果的に同じ内容が表示されるため、どのユーティリティーでも問題ありません。

    画像

    手順 3
    「Ctrl + F」などを使って、該当データストリームの情報を探します。Table の列が、データストリームで使用しているデータエクステンション名です。

    画像
    • 1 ページに最大 250 件表示されます。該当するデータが見つからない場合は、ページネーションで切り替えて探してください。

    • データストリームが作成された時点で、自動的にこのデータファクトリーユーティリティーと、それを自動化するオートメーションが作成されています。

    画像

    ちなみに、データストリームを削除しても、上記のデータファクトリーユーティリティーと、それを自動化するオートメーションは削除されません。

    確認すべき項目

    • Extract Last Value:現在のハイウォーターマーク(HWM)の値

    • Column Name:デルタ抽出で使用されている項目名

    • Extract Type:抽出タイプ(フル更新 or デルタ抽出)

    • Table:データエクステンション名(=ファイル名)

    画像

    ちょっとした Tips

    デルタ更新で連携が失敗する場合、該当レコードの数値や日付がハイウォーターマーク以下になっていないかを確認してください。これが原因でレコードが抽出されない可能性があります。

    このプロセスをしっかり理解しておくことで、データの連携やトラブルシューティングが効率的に進められるでしょう。


    3. 更新不具合のトラブルシューティング

    フル更新を選択している場合に、1 日に対して 24 回分の履歴レコードが残るが、その内の 1 時間分だけ更新が実行され、他は 0 レコードで更新が成功するのは仕様であり、これは不具合ではありません。

    画像

    また、データストリーム作成後、使用開始できるようになるまで 24 時間程度かかります。初回の数行が 0 レコードで更新が成功するのも仕様です。

    画像

    このように、いくつかの仕様により更新が実行されないことはありますが、1 日待っても更新がされないということがあったとき、どこを見てトラブルシューティングをすれば良いでしょうか。いくつか考えてみます。

    ① データエクステンションの名前を変更していないか確認する

    まず前述の通り、データストリーム作成時に命名されていたデータエクステンション名は変更してはいけません。このデータエクステンションは「ファイル名」に該当することは既に述べましたが、ファイル名とデータエクステンション名の不一致が発生すると、連携が停止します。

    以下の箇所を確認して、あるべきファイル名を確認し、Marketing Cloud 側のデータエクステンション名が変更されていないか確認して下さい。

    画像

    データエクステンション名を元に戻すことで、連携は再び開始されます。

    ② オートメーションを停止していないか確認する

    これも前述の通りになりますが、データストリームが作成された時点で、自動的にこのデータファクトリーユーティリティーとそれを自動化するオートメーションが作成されています。このオートメーションを停止してしまうと、連携もストップします。

    画像

    このオートメーションに関しては、Data Cloud 側のインポートをトリガーするものではありませんので、例えば、「一回実行」しても何も意味がありません。よって、このオートメーションを「一時停止」することに意味はないです。また、スケジュールの時間帯も絶対に変更しないように注意してください。それによっても、不具合が発生します。

    オートメーションが一時停止、または削除されていないか確認して下さい。

    ③ 0 レコードで更新していないかを確認する

    この内容に関しては、以下の記事でも触れました。データエクステンションを 0 レコードにしたとしても、データストリームが 0 レコードになることはなく、更新が発生しない結果、レコード数も維持されるという件ですね。

    データエクステンションのレコード数が「0」でないか確認してください。


    おまけ:Upsert(更新/挿入)でインポートされているデータエクステンションデータの削除について

    現状の制約

    • Upsert(更新/挿入)モード では、データエクステンション内のデータを削除することは サポートされていません。

    • フル更新モード を使用する場合、中身が全て入れ替わるため、削除が可能です。

    それでもデータエクステンションデータの削除が必要な場合は、MC側でデータエクステンションの不要なレコードを削除した上で、新しいデータストリームを作成するしかありません。


    いかがでしたでしょうか。

    今回、データファクトリーユーティリティーの中身を初めて見たという人も多いのではないでしょうか。

    ちなみに余談ですが、このデータファクトリーユーティリティー関連のオートメーションは Marketing Cloud 側では課金対象にはなりません。一般的なエディションである Corporate エディションでは、オートメーションの回数制限:45,000 回 がありますが、このデータファクトリーユーティリティー関連のオートメーションは カウントされない とされています。覚えておいてください。

    画像

    今回は以上です。


    Click here for English version

    次の記事はこちら

    前回の記事はこちら

    私の note のトップページはこちら

     
     
    Salesforce Marketing Cloud、Agentforce、Data Cloud、Salesforce 認定資格に関する実践的な情報を発信しています。これらの記事が、皆さまの学習や日々の業務に少しでもお役に立てば幸いです。