【第236回】 Data Cloud : データエクステンション連携の更新方法を理解する
Marketing Cloud を Data Cloud に接続した後、最初に行うべき重要な作業は、データストリームにデータエクステンションを接続することです。これにより、データエクステンション内のレコードが Data Cloud にインポートされ、Data Cloud 上で活用できるようになります。
ただし、データの抽出方法には いくつかの選択肢があり、Data Cloud の初級管理者にとって悩みの種となることも少なくありません。そこで、本記事では、データエクステンションの抽出方法について詳しく解説し、理解を深めることを目的としています。
データエクステンションの抽出方法
まず、データエクステンションの抽出方法には、以下の 2 種類があります。
フル更新
デルタ抽出(差分抽出)
これが Data Cloud 側でインポートされる時は、以下のような用語に置き換えられます。

また、デルタ抽出には以下の 2 種類があり、以下のような言い方をします。
数値 CDC
日時 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. データエクステンションの抽出方法の変更
Marketing Cloud のデータエクステンションから作成したデータストリームでは、抽出方法の設定を後から編集することはできません。
回避策
設定を変更する必要がある場合、以下のいずれかの方法で回避します。
新しいデータエクステンションの作成する方法
既存のデータエクステンションの代わりに使用する新しく名前を変更したデータエクステンションを作成します。
この新しいデータエクステンションを使用して Data Cloud に新しいデータストリームを作成し、機能を代替してください。
既存データエクステンションの名前を変更する方法
Marketing Cloud 内で既存のデータエクステンションの名前を変更します。
Data Cloud の既存データストリームを削除した後で、新しくデータストリームを作成し、名前を変更したデータエクステンションを取り込みます。
注意点について
新しいデータエクステンションを既存のものと同じ名前で作成すると、以前に選択されていた抽出方法が自動的に適用され、データストリームの作成画面の時点で変更ができません。
この仕組みは、Data Cloud のデータストリームとデータエクステンションの関係を理解するうえで非常に重要です。特にデータストリームがファイルベースの仕組みに基づいていることを意識する必要があります。
背景と仕組み
データストリームは、作成時に指定されたデータエクステンション名を基に管理され、その名前はファイル名として扱われます。データエクステンション名とファイル名が一致していることは、データストリームの定義を見ると確認できます。

仮に Marketing Cloud 側でデータエクステンション名を変更しても関連するデータストリーム内のファイル名は自動的に更新されません。また、手動での変更もできません。
そして、データストリームを削除しても、その設定情報は保持され続けるということがポイントになります。同じ名前のデータエクステンションを再び選択してデータストリームを作成すると、過去に設定されたファイル名と紐づいて、抽出方法が設定時に自動的に再適用されます。
ファイルベースであることを理解することの重要性
データエクステンション由来のデータストリームは、一見ファイルベースではないように見えますが、実際にはファイルベースと同等の設計です。そのため、以下の点に留意する必要があります。
データストリームはファイル名で管理されるため、データエクステンション名がシステム内で重要なキーとなる。
一度作成されたデータストリーム設定は、削除後も関連付けが残る。
データエクステンション名の変更は運用上の混乱を招くため、データストリーム作成後はデータエクステンション名の変更を避ける。
ここから示唆される重要なポイント
データストリームとデータエクステンションはファイルベースの仕組みで結びついているため、データエクステンション名の変更を避ける必要があります。このことは、Marketing Cloud 管理者とも共有してください。
さて、いかがでしたでしょうか。
私のイメージとして、データエクステンションの管理フォルダは、Amazon S3 でいうところの「バケットとフォルダ」のようなものだと考えています。S3 でも、ファイル名を変更すると連携が途切れるのは当然のことです。それと同様に、データエクステンション名を変更することは避けるべきです。
では、別のデータエクステンションの名前を元のデータエクステンション名と入れ替えた場合はどうなるでしょうか? その場合、フィールド構造が一致していれば、別のデータエクステンションが連携されます。これはまさに、ファイル連携の挙動に似ていますね。
これらの仕組みをしっかり理解し、正しく運用することで、効率的でトラブルの少ないデータ管理が可能になります。
2. 現在のハイウォーターマークを確認する方法
ハイウォーターマーク(HWM)とは、デルタ抽出の時に記録される数値や日時の「最大値」を指します。これまで学習した通り、デルタ抽出には以下の 2 種類があります。
数値 CDC(例:請求番号)
日時 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 回 がありますが、このデータファクトリーユーティリティー関連のオートメーションは カウントされない とされています。覚えておいてください。

今回は以上です。
