マッピングセットの概要
マッピングセットは、あるスキーマから別のスキーマへとデータを変換する一連のマッピングです。このドキュメントでは、入力スキーマ、出力スキーマ、マッピングなど、マッピングセットの構成方法に関する情報を提供します。
はじめに
この概要では、Adobe Experience Platform の次のコンポーネントに関する十分な知識が必要です。
- Data Prep:Data Prep を使用すると、データエンジニアはエクスペリエンスデータモデル(XDM)との間でデータのマッピング、変換、検証をおこなうことができます。
- データフロー:データフローは、Platform 間でデータを移動するデータジョブを表します。データフローは異なるサービスをまたいで設定され、ソースコネクタからターゲットデータセット、Identity および Profile、Destinations へとデータを移動できます。
- Adobe Experience Platform Data Ingestion:Experience Platform にデータを送信するメソッド。
- Experience Data Model (XDM) System:顧客体験データを編成する際に Experience Platform に使用される標準化されたフレームワーク。
マッピングセットの構文
マッピングセットは、ID、名前、入力スキーマ、出力スキーマ、および関連付けられたマッピングのリストで構成されます。
次の JSON は、一般的なマッピングセットの例を示しています。
{
"id": "cbb0da769faa48fcb29e026a924ba29d",
"name": "Demo Mapping Set",
"inputSchema": {
"id": "a167ff2947ff447ebd8bcf7ef6756232",
"version": 0
},
"outputSchema": {
"schemaRef": {
"id": "https://ns.adobe.com/{TENANT_ID}/schemas/6dd1768be928c36d58ad4897219bb52d491671f966084bc0",
"contentType": "application/vnd.adobe.xed-full+json;version=1"
}
},
"mappings": [
{
"sourceType": "ATTRIBUTE",
"source": "Id",
"destination": "_id",
"name": "Id",
"description": "Identifier field"
},
{
"sourceType": "ATTRIBUTE",
"source": "FirstName",
"destination": "person.name.firstName"
},
{
"sourceType": "ATTRIBUTE",
"source": "LastName",
"destination": "person.name.lastName"
}
]
}
id
name
inputSchema
outputSchema
mappings
sourceType
リストされた各マッピングについて、sourceType
属性はマッピングするソースのタイプを示します。ATTRIBUTE
、STATIC
、EXPRESSION
のいずれかです。
ATTRIBUTE
は、ソースパス内の任意の値に対して使用されます。STATIC
は、宛先パスに挿入される値に使用されます。この値は一定で、ソーススキーマの影響を受けません。EXPRESSION
は、実行時に解決される式に使用されます。使用可能な式のリストは、マッピング関数ガイドに記載されています。
source
source
属性はマッピングするフィールドを示します。ソースの設定方法について詳しくは、 ソースの概要を参照してください。destination
destination
属性はフィールド(source
フィールドから抽出された値が配置されるフィールドのパス)を示します。宛先の設定方法について詳しくは、 宛先の概要を参照してください。mappings.name
mappings.description
マッピングソースの設定
マッピングでは、source
はフィールド、式、または静的な値にすることができます。指定されたソースタイプに基づいて、様々な方法で値を抽出できます。
列データのフィールド
CSV ファイルなど、列データのフィールドをマッピングする場合は、ソースタイプ ATTRIBUTE
を使用します。フィールド名に .
が含まれている場合は、\
を使用して値をエスケープします。このマッピング例を次に示します。
サンプル CSV ファイル:
Full.Name, Email
John Smith, js@example.com
サンプルマッピング
{
"source": "Full.Name",
"destination": "pi.name",
"sourceType": "ATTRIBUTE"
}
変換済みデータ
{
"pi": {
"name": "John Smith"
}
}
ネストされたデータのフィールド
JSON ファイルなど、ネストされたデータ内のフィールドをマッピングする場合は、ソースタイプ ATTRIBUTE
を使用します。フィールド名に .
が含まれている場合は、\
を使用して値をエスケープします。このマッピング例を次に示します。
サンプル JSON ファイル
{
"customerInfo": {
"name": "John Smith",
"email": "js@example.com"
}
}
サンプルマッピング
{
"source": "customerInfo.name",
"destination": "pi.name",
"sourceType": "ATTRIBUTE"
}
変換済みデータ
{
"pi": {
"name": "John Smith"
}
}
配列内のフィールド
配列内のフィールドをマッピングする場合は、インデックスを使用して特定の値を取得できます。これをおこなうには、ATTRIBUTE
ソースタイプと、マッピングする値のインデックスを使用します。このマッピング例を次に示します。
サンプル JSON ファイル
{
"customerInfo": {
"emails": [
{
"name": "John Smith",
"email": "js@example.com"
},
{
"name": "Jane Smith",
"email": "jane@example.com"
}
]
}
}
サンプルマッピング
{
"source": "customerInfo.emails[0].email",
"destination": "pi.email",
"sourceType": "ATTRIBUTE"
}
変換済みデータ
{
"pi": {
"email": "js@example.com"
}
}
配列から配列、またはオブジェクトからオブジェクト
ATTRIBUTE
ソース型を使用して、ある配列から別の配列、またはあるオブジェクトを別のオブジェクトに直接マッピングすることもできます。このマッピング例を次に示します。
サンプル JSON ファイル
{
"customerInfo": {
"emails": [
{
"name": "John Smith",
"email": "js@example.com"
},
{
"name": "Jane Smith",
"email": "jane@example.com"
}
]
}
}
サンプルマッピング
{
"source": "customerInfo.emails",
"destination": "pi.emailList",
"sourceType": "ATTRIBUTE"
}
変換済みデータ
{
"pi": {
"emailList": [
{
"name": "John Smith",
"email": "js@example.com"
},
{
"name": "Jane Smith",
"email": "jane@example.com"
}
]
}
}
配列に対する反復操作
ATTRIBUTE
ソース型を使用すると、配列を反復的にループし、ワイルドカードインデックス([*]
)を使用してターゲットスキーマにマッピングできます。このマッピング例を次に示します。
サンプル JSON ファイル
{
"customerInfo": {
"emails": [
{
"name": "John Smith",
"email": "js@example.com"
},
{
"name": "Jane Smith",
"email": "jane@example.com"
}
]
}
}
サンプルマッピング
{
"source": "customerInfo.emails[*].name",
"destination": "pi[*].names",
"sourceType": "ATTRIBUTE"
}
変換済みデータ
{
"pi": [
{
"names": {
"name": "John Smith"
}
},
{
"names": {
"name": "Jane Smith"
}
}
]
}
定数値
定数または静的な値をマッピングする場合は、STATIC
ソースタイプを使用します。STATIC
ソースタイプを使用する場合、source
は、destination
に割り当てる、ハードコーディングされた値を表します。このマッピング例を次に示します。
サンプル JSON ファイル
{
"name": "John Smith",
"email": "js@example.com"
}
サンプルマッピング
{
"source": "CUSTOMER",
"destination": "userType",
"sourceType": "STATIC"
}
変換済みデータ
{
"userType:": "CUSTOMER"
}
式
式をマッピングする場合は、ソースタイプ EXPRESSION
を使用します。使用可能な関数のリストは、マッピング関数ガイドに記載されています。EXPRESSION
ソースタイプを使用する場合、source
は解決する関数を表します。このマッピング例を次に示します。
サンプル JSON ファイル
{
"firstName": "John",
"lastName": "Smith",
"email": "js@example.com"
}
サンプルマッピング
{
"source": "concat(upper(lastName), upper(firstName), now())",
"destination": "pi.created",
"sourceType": "EXPRESSION"
}
変換済みデータ
{
"pi": {
"created": "SMITHJOHNFri Sep 25 15:17:31 PDT 2020"
}
}
マッピングの宛先の設定
マッピングにおいて、destination
は source
から抽出された値が挿入される場所を表します。
ルートレベルのフィールド
source
値を変換後のデータのルートレベルにマッピングする場合は、次の例に従います。
サンプル JSON ファイル
{
"customerInfo": {
"name": "John Smith",
"email": "js@example.com"
}
}
サンプルマッピング
{
"source": "customerInfo.name",
"destination": "name",
"sourceType": "ATTRIBUTE"
}
変換済みデータ
{
"name": "John Smith"
}
ネストされたフィールド
source
値を、変換後のデータでネストされたフィールドにマッピングする場合は、次の例に従います。
サンプル JSON ファイル
{
"name": "John Smith",
"email": "js@example.com"
}
サンプルマッピング
{
"source": "name",
"destination": "pi.name",
"sourceType": "ATTRIBUTE"
}
変換済みデータ
{
"pi": {
"name": "John Smith"
}
}
特定の配列インデックスのフィールド
source
値を、変換後のデータで特定のインデックスにマッピングする場合は、次の例に従います。
サンプル JSON ファイル
{
"customerInfo": {
"name": "John Smith",
"email": "js@example.com"
}
}
サンプルマッピング
{
"source": "customerInfo.name",
"destination": "piList[0]",
"sourceType": "ATTRIBUTE"
}
変換済みデータ
{
"piList": ["John Smith"]
}
反復配列操作
配列を繰り返しループして値をターゲットにマッピングする場合は、ワイルドカードインデックス([*]
)を使用できます。この例を次に示します。
{
"customerInfo": {
"emails": [
{
"name": "John Smith",
"email": "js@example.com"
},
{
"name": "Jane Smith",
"email": "jane@example.com"
}
]
}
}
サンプルマッピング
{
"source": "customerInfo.emails[*].name",
"destination": "pi[*].names",
"sourceType": "ATTRIBUTE"
}
変換済みデータ
{
"pi": [
{
"names": {
"name": "John Smith"
}
},
{
"names": {
"name": "Jane Smith"
}
}
]
}
次の手順
このドキュメントでは、マッピングセット内で個別マッピングを設定する方法など、マッピングセットの構築方法を理解する必要があります。他の Data Prep 機能の詳細については、Data Prep の概要を参照してください。Data Prep API 内でのマッピングセットの使用方法については、『Data Prep 開発者ガイド』を参照してください。