Data Prep を使用した Real-Time Customer Profile への部分行の更新の送信

IMPORTANT
  • DCS インレットを介したプロファイル更新のエクスペリエンスデータモデル(XDM)エンティティ更新メッセージ(JSON PATCH操作を含む)の取り込みは非推奨(廃止予定)になりました。 このガイドで説明されている手順に従ってください。

  • また、HTTP API ソースを使用して 生データを DCS インレットに取り込むしたり、プロファイルの更新のためにデータを XDM 準拠のメッセージに変換するために必要なデータマッピングを指定したりすることもできます。

  • アップサートをストリーミングで配列を使用する場合は、操作の明確な目的を定義するために、upsert_array_append または upsert_array_replace を明示的に使用する必要があります。 これらの関数がない場合、エラーが発生することがあります。

Data Prep でストリーミングアップサートを使用して、Real-Time Customer Profile データに部分行の更新を送信すると同時に、単一の API リクエストで新しい ID リンクを作成および確立します。

アップサートをストリーミングすると、データの形式を保持しながら、取り込み時にデータを Real-Time Customer Profile のPATCHリクエストに変換できます。 指定した入力に基づいて、1 つの API ペイロード Data Prep 送信し、そのデータをPATCHと Identity Service の両方の CREATE リクエスト Real-Time Customer Profile 変換できます。

Data Prep は、ヘッダーパラメーターを使用して、挿入とアップサートを区別します。 アップサートを使用する行には、すべてヘッダーが必要です。 ID 記述子を使用したアップサートも、使用しないアップサートも可能です。 ID でアップサートを使用している場合は、ID データセットの設定の節で説明されている設定手順に従う必要があります。 ID を指定せずにアップサートを使用している場合は、リクエストで ID 設定を指定する必要はありません。 詳しくは、ID を使用しないアップサートのストリーミングの節を参照してください。

NOTE
アップサート機能を活用するには、データ取り込み時に XDM 互換の設定をオフにし、Data Prep Mapper を使用して受信ペイロードを再マッピングすることをお勧めします。

このドキュメントでは、Data Prep でのアップサートのストリーミング方法について説明します。

はじめに

この概要では、Adobe Experience Platform の次のコンポーネントに関する十分な知識が必要です。

  • Data Prep:Data Prep を使用すると、データエンジニアは Experience Data Model (XDM)との間でデータのマッピング、変換、検証をおこなうことができます。
  • Identity Service:デバイスやシステム間で ID を橋渡しすることで、個々の顧客とその行動をより確実に把握することができます。
  • リアルタイム顧客プロファイル:複数のソースから集約されたデータに基づいて、統合された顧客プロファイルをリアルタイムに提供します。
  • ソース:Experience Platform を使用すると、データを様々なソースから取得しながら、Platform サービスを使用して受信データの構造化、ラベル付け、拡張を行うことができます。

Data Prep でのストリーミングアップサートの使用 streaming-upserts-in-data-prep

NOTE
次のソースは、ストリーミングアップサートの使用をサポートしています。

ストリーミングアップサートの高レベルなワークフロー

Data Prep でのアップサートのストリーミングは、次のように動作します。

  • 最初に、データセットを作成し、Profile 用できるようにしておく必要があります。 詳しくは、 データセットの有効化 Profile に関するガイドを参照してください。

  • 新しい ID をリンクする必要がある場合は、Profile しいデータセットとして 同じスキーマを持つ 追加のデータセットを作成する必要もあります。

  • データセットの準備が整ったら、受信リクエストを Profile のデータセットにマッピングするためのデータフローを作成する必要があります。

  • 次に、必要なヘッダーを含めるように受信リクエストを更新する必要があります。 これらのヘッダーは、以下を定義します。

    • Profile で実行する必要があるデータ操作:createmerge、および delete
    • Identity Service で実行されるオプションの ID 操作:create

ID データセットの設定 configure-the-identity-dataset

新しい ID をリンクする必要がある場合は、追加のデータセットを作成して、受信ペイロードに渡す必要があります。 ID データセットを作成する場合は、次の要件が満たされていることを確認する必要があります。

  • ID データセットには、関連付けられたスキーマが Profile データセットとして必要です。 スキーマの不一致により、システム動作に一貫性がなくなる場合があります。
  • ただし、ID データセットが Profile データセットと異なることを確認する必要があります。 データセットが同じ場合、データは更新されず、上書きされます。
  • 初期データセットは Profile に対して有効にする必要がありますが、ID データセットは Profile に対して 有効にしない ください。 そうしないと、データは更新されずに上書きされてしまいます。 ただし、Identity Service に対しては、ID データセット 有効にする必要があります です。

ID データセットに関連付けられたスキーマの必須フィールド identity-dataset-required-fileds

スキーマに必須フィールドが含まれている場合、Identity Service が ID のみを受け取ることができるように、データセットの検証を抑制する必要があります。 disabled の値を acp_validationContext パラメーターに適用することで、検証を抑制できます。 以下の例を参照してください。

curl -X POST 'https://platform.adobe.io/data/foundation/catalog/dataSets/62257bef7a75461948ebcaaa' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -d '{
    "tags": {
        "acp_validationContext": [
            "disabled"
        ],
        "unifiedProfile": [
            "enabled:false"
        ],
        "unifiedIdentity": [
            "enabled:true"
        ]
    }
}'
TIP
ID データセットに関連付けられたスキーマに必須フィールドがない場合は、追加の設定を行う必要はありません。

受信ペイロード構造

以下に、新しい ID リンクを確立する受信ペイロード構造の例を示します。

ID 設定を持つペイロード

{
  "header": {
    "flowId": "923e2ac3-3869-46ec-9e6f-7012c4e23f69",
    "imsOrgId": "{ORG_ID}",
    "datasetId": "621fc19ab33d941949af16c8",
    "operations": {
        "data": "create" (default)/"merge"/"delete",
        "identity": "create",
        "identityDatasetId": "621fc19ab33d941949af16d9"
    }
  }
... //The raw data attributes are included here as the key/value pairs of the "body" property.
}
パラメーター
説明
flowId
データフローを識別する一意の ID。 このデータフロー ID は、Amazon Kinesis、Azure Event Hubs、HTTP API のいずれかで作成されたソース接続に対応している必要があります。 また、このデータフローには、ターゲットデータセットとして Profile 対応データセットが必要です。 メモ:Profile 対応のターゲットデータセットの ID も、datasetId パラメーターとして使用されます。
imsOrgId
組織に対応する ID。
datasetId
データフローの Profile 対応ターゲットデータセットの ID。 メモ:これは、データフローで見つかった Profile 対応のターゲットデータセット ID と同じ ID です。
operations
このパラメーターは、受信リクエストに基づ Data Prep て実行されるアクションの概要を示します。
operations.data
Real-Time Customer Profile で実行する必要があるアクションを定義します。
operations.identity
データに対して許可される操作を Identity Service で定義します。
operations.identityDatasetId
(任意)新しい ID をリンクする必要がある場合にのみ必須の ID データセットの ID。

サポートされる操作

Real-Time Customer Profile では、次の操作がサポートされています。

運用
説明
create
デフォルトの操作。 これにより、Real-Time Customer Profile 用の XDM エンティティ作成メソッドが生成されます。
merge
これにより、Real-Time Customer Profile の XDM エンティティ更新メソッドが生成されます。
delete
これにより、Real-Time Customer Profile の XDM エンティティ削除メソッドが生成され、Profile store からデータが永続的に削除されます。

Identity Service では、次の操作がサポートされています。

運用
説明
create
このパラメーターで許可されている操作のみ。 createoperations.identity の値として渡されると、Data Prep は Identity Service の XDM エンティティ作成リクエストを生成します。 ID が既に存在する場合、その ID は無視されます。 注意: operations.identitycreate に設定されている場合は、identityDatasetId も指定する必要があります。 コンポーネントによって内部で生成された XDM エンティティ作成メッセージ Data Prep、このデータセット ID に対して生成されます。

ID 設定のないペイロード payload-without-identity-configuration

新しい ID をリンクする必要がない場合は、identity パラメーターと identityDatasetId パラメーターを操作で省略できます。 これにより、データは Real-Time Customer Profile にのみ送信され、Identity Service はスキップされます。 以下のペイロードの例を参照してください。

{
  "header": {
    "flowId": "923e2ac3-3869-46ec-9e6f-7012c4e23f69",
    "imsOrgId": "{ORG_ID}",
    "datasetId": "621fc19ab33d941949af16c8",
    "operations": {
        "data": "create"/"merge"/"delete",
    }
  }
... //The raw data attributes are included here as the key/value pairs of the "body" property.
}

プライマリ ID の動的な受け渡し

XDM を更新する場合は、スキーマが Profile に対して有効になっており、プライマリ ID が含まれている必要があります。 XDM スキーマのプライマリ ID は、次の 2 つの方法で指定できます。

  • XDM スキーマのプライマリ ID として静的フィールドを指定します。
  • ID フィールドの 1 つをプライマリ ID として、XDM スキーマの ID マップフィールドグループを使用して指定します。

静的フィールドを XDM スキーマのプライマリ ID フィールドとして指定します

次の例では、statehomePhone.number およびその他の属性が、それぞれ指定された値でアップサートされ、sampleEmail@gmail.com のプライマリ ID で Profile に入れられます。 次に、ストリーミング Data Prep コンポーネントによって XDM エンティティ更新メッセージが生成されます。 次に、XDM 更新メッセージ Real-Time Customer Profile プロファイルレコードをアップサートすることを確認します。

NOTE
この例では、ID に対して操作が定義されていないので、ID はリンクされません。
curl -X POST 'https://dcs.adobedc.net/collection/9aba816d350a69c4abbd283eb5818ec3583275ffce4880ffc482be5a9d810c4b' \
  -H 'Content-Type: application/json' \
  -H 'x-adobe-flow-id: d5262d48-0f47-4949-be6d-795f06933527' \
  -d '{
    "header": {
        "flowId" : "d5262d48-0f47-4949-be6d-795f06933527",
        "imsOrgId": "{ORG_ID}",
        "datasetId": "62259f817f62d71947929a7b",
        "operations": {
         "data": "create"
     }
    },
    {
        "body": {
        "homeAddress": {
            "country": "US",
            "state": "GA",
            "region": "va7"
        },
        "homePhone": {
            "number": "123.456.799"
        },
        "identityMap": {
            "Email": [{
                "id": "sampleEmail@gmail.com",
                "primary": true
            }]
        },
      "personalEmail": {
            "address": "sampleEmail@gmail.com",
            "primary": true
       },
      "personID": "346576345",
      "_id": "346576345",
      "timestamp": "2021-05-05T17:51:45.1880+02",
      "workEmail": "sampleWorkEmail@gmail.com"
  }
}'

ID フィールドの 1 つをプライマリ ID として、XDM スキーマの ID マップフィールドグループを使用して指定します

この例では、ヘッダーに、identityidentityDatasetId のプロパティを持つ operations 属性が含まれています。 これにより、データを Real-Time Customer Profile と結合したり、ID を Identity Service に渡したりすることもできます。

curl -X POST 'https://dcs.adobedc.net/collection/9aba816d350a69c4abbd283eb5818ec3583275ffce4880ffc482be5a9d810c4b' \
  -H 'Content-Type: application/json' \
  -H 'x-adobe-flow-id: d5262d48-0f47-4949-be6d-795f06933527' \
  -d '{
    "header": {
        "flowId" : "d5262d48-0f47-4949-be6d-795f06933527",
        "imsOrgId": "{ORG_ID}",
        "datasetId": "62259f817f62d71947929a7b",
        "operations": {
            "data": "merge",
            "identity": "create",
            "identityDatasetId": "6254a93b851ecd194b64af9e"
      }
    },
    {
       "body": {
        "homeAddress": {
            "country": "US",
            "state": "GA",
            "region": "va7"
        },
        "homePhone": {
            "number": "123.456.799"
        },
        "identityMap": {
            "Email": [{
                "id": "sampleEmail@gmail.com",
                "primary": true
            }]
        },
      "personalEmail": {
            "address": "sampleEmail@gmail.com",
            "primary": true
       },
      "personID": "346576345",
      "_id": "346576345",
      "timestamp": "2021-05-05T17:51:45.1880+02",
      "workEmail": "sampleWorkEmail@gmail.com"
  }
 }'

既知の制限と主な考慮事項

次に、Data Prep でアップサートをストリーミングする際に考慮すべき既知の制限事項のリストを示します。

  • ストリーミングアップサート方法は、部分行の更新を Real-Time Customer Profile に送信する場合にのみ使用してください。 部分行の更新は、データレイクによって使用 せん)。
  • ストリーミングアップサートのメソッドでは、ID の更新、置換、削除はサポートされていません。 存在しない場合は、新しい ID が作成されます。 したがって、identity 操作は常に create に設定する必要があります。 ID が既に存在する場合、操作は no-op です。
  • ストリーミングアップサート方式では、現在、Adobe Experience Platform Web SDK および Adobe Experience Platform Mobile SDK をサポートしていません。

次の手順

このドキュメントでは、アップサートをストリーミングして Real-Time Customer Profile データに部分行の更新を送信すると同時に、単一の API リクエストで ID を作成 Data Prep リンクする方法を説明しました。 その他の Data Prep 機能について詳しくは、Data Prep 概要を参照してください。 Data Prep API 内でのマッピングセットの使用方法については、Data Prep 開発者ガイドを参照してください。

recommendation-more-help
461cc884-c234-4a0c-ac75-6efbaafc1394