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

WARNING
DCS インレットを介したプロファイル更新のエクスペリエンスデータモデル(XDM)エンティティ更新メッセージ(JSON PATCH操作を含む)への取り込みは非推奨(廃止予定)になりました。 別の方法として、 生データを DCS インレットに取り込む、プロファイルの更新のためにデータを XDM 準拠のメッセージに変換するために必要なデータマッピングを指定できます。

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 変換できます。

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 データセットの設定

新しい 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 設定のないペイロード

新しい 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