見出し画像

【第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 のトップページはこちら