Panoramica sui set di mappatura
Un set di mappatura è un set di mappature che trasforma i dati da uno schema a un altro. Questo documento fornisce informazioni sulla composizione dei set di mappatura, inclusi schema di input, schema di output e mappature.
Introduzione
Questa panoramica richiede una buona conoscenza dei seguenti componenti di Adobe Experience Platform:
- Preparazione dati: la preparazione dati consente ai data engineer di mappare, trasformare e convalidare i dati da e verso Experience Data Model (XDM).
- Flussi dati: i flussi di dati sono una rappresentazione dei processi di dati che spostano i dati in Platform. I flussi di dati sono configurati tra servizi diversi, consentendo di spostare i dati dai connettori di origine ai set di dati di destinazione, a Identity e Profile, e a Destinations.
- Adobe Experience Platform Data Ingestion: metodi tramite i quali i dati possono essere inviati a Experience Platform.
- Experience Data Model (XDM) System: il quadro standardizzato mediante il quale Experience Platform organizza i dati sull’esperienza del cliente.
Sintassi del set di mappatura
Un set di mappatura è composto da un ID, un nome, uno schema di input, uno schema di output e un elenco di mappature associate.
Il seguente codice JSON è un esempio di un set di mappatura tipico:
{
"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
Per ogni mappatura elencata, i relativi sourceType
attributo indica il tipo di origine da mappare. Può essere uno di ATTRIBUTE
, STATIC
, o EXPRESSION
:
ATTRIBUTE
viene utilizzato per qualsiasi valore presente nel percorso di origine.STATIC
viene utilizzato per i valori inseriti nel percorso di destinazione. Questo valore rimane costante e non è influenzato dallo schema di origine.EXPRESSION
viene utilizzato per un’espressione che verrà risolta durante il runtime. Un elenco delle espressioni disponibili è disponibile nella sezione guida alle funzioni di mappatura.
source
source
attributo indica il campo che si desidera mappare. Ulteriori informazioni su come configurare l’origine sono disponibili nella sezione panoramica sulle origini.destination
destination
attributo indica il campo, o il percorso del campo, in cui il valore estratto dal campo source
il campo verrà inserito. Ulteriori informazioni su come configurare le destinazioni sono disponibili nella sezione panoramica sulla destinazione.mappings.name
mappings.description
Configurazione delle origini di mappatura
In una mappatura, il source
può essere un campo, un’espressione o un valore statico. In base al tipo di origine fornito, il valore può essere estratto in vari modi.
Campo nei dati a colonne
Quando mappi un campo in dati a colonne, ad esempio un file CSV, utilizza ATTRIBUTE
tipo di origine. Se il campo contiene .
all’interno del nome, utilizza \
per applicare l’escape al valore. Di seguito è riportato un esempio di questa mappatura:
File CSV di esempio:
Full.Name, Email
John Smith, js@example.com
Mappatura di esempio
{
"source": "Full.Name",
"destination": "pi.name",
"sourceType": "ATTRIBUTE"
}
Dati trasformati
{
"pi": {
"name": "John Smith"
}
}
Campo nei dati nidificati
Quando mappi un campo in dati nidificati, ad esempio un file JSON, utilizza ATTRIBUTE
tipo di origine. Se il campo contiene .
all’interno del nome, utilizza \
per applicare l’escape al valore. Di seguito è riportato un esempio di questa mappatura:
File JSON di esempio
{
"customerInfo": {
"name": "John Smith",
"email": "js@example.com"
}
}
Mappatura di esempio
{
"source": "customerInfo.name",
"destination": "pi.name",
"sourceType": "ATTRIBUTE"
}
Dati trasformati
{
"pi": {
"name": "John Smith"
}
}
Campo all’interno di un array
Quando mappi un campo all’interno di un array, puoi recuperare un valore specifico utilizzando un indice. A tale scopo, utilizza ATTRIBUTE
tipo di origine e indice del valore da mappare. Di seguito è riportato un esempio di questa mappatura:
File JSON di esempio
{
"customerInfo": {
"emails": [
{
"name": "John Smith",
"email": "js@example.com"
},
{
"name": "Jane Smith",
"email": "jane@example.com"
}
]
}
}
Mappatura di esempio
{
"source": "customerInfo.emails[0].email",
"destination": "pi.email",
"sourceType": "ATTRIBUTE"
}
Dati trasformati
{
"pi": {
"email": "js@example.com"
}
}
Matrice per matrice o oggetto per oggetto
Utilizzo di ATTRIBUTE
tipo di origine, puoi anche mappare direttamente un array a un array o un oggetto a un oggetto. Di seguito è riportato un esempio di questa mappatura:
File JSON di esempio
{
"customerInfo": {
"emails": [
{
"name": "John Smith",
"email": "js@example.com"
},
{
"name": "Jane Smith",
"email": "jane@example.com"
}
]
}
}
Mappatura di esempio
{
"source": "customerInfo.emails",
"destination": "pi.emailList",
"sourceType": "ATTRIBUTE"
}
Dati trasformati
{
"pi": {
"emailList": [
{
"name": "John Smith",
"email": "js@example.com"
},
{
"name": "Jane Smith",
"email": "jane@example.com"
}
]
}
}
Operazioni iterative sugli array
Utilizzo di ATTRIBUTE
tipo di origine, è possibile eseguire un ciclo iterativo tra gli array e mapparli su uno schema di destinazione utilizzando un indice con caratteri jolly ([*]
). Di seguito è riportato un esempio di questa mappatura:
File JSON di esempio
{
"customerInfo": {
"emails": [
{
"name": "John Smith",
"email": "js@example.com"
},
{
"name": "Jane Smith",
"email": "jane@example.com"
}
]
}
}
Mappatura di esempio
{
"source": "customerInfo.emails[*].name",
"destination": "pi[*].names",
"sourceType": "ATTRIBUTE"
}
Dati trasformati
{
"pi": [
{
"names": {
"name": "John Smith"
}
},
{
"names": {
"name": "Jane Smith"
}
}
]
}
Valore costante
Se desideri mappare una costante o un valore statico, utilizza STATIC
tipo di origine. Quando si utilizza STATIC
tipo di origine, il source
rappresenta il valore hardcoded che desideri assegnare al destination
. Di seguito è riportato un esempio di questa mappatura:
File JSON di esempio
{
"name": "John Smith",
"email": "js@example.com"
}
Mappatura di esempio
{
"source": "CUSTOMER",
"destination": "userType",
"sourceType": "STATIC"
}
Dati trasformati
{
"userType:": "CUSTOMER"
}
Espressioni
Se desideri mappare un’espressione, utilizza EXPRESSION
tipo di origine. Un elenco delle funzioni accettate è disponibile nella guida alle funzioni di mappatura. Quando si utilizza EXPRESSION
tipo di origine, il source
rappresenta la funzione da risolvere. Di seguito è riportato un esempio di questa mappatura:
File JSON di esempio
{
"firstName": "John",
"lastName": "Smith",
"email": "js@example.com"
}
Mappatura di esempio
{
"source": "concat(upper(lastName), upper(firstName), now())",
"destination": "pi.created",
"sourceType": "EXPRESSION"
}
Dati trasformati
{
"pi": {
"created": "SMITHJOHNFri Sep 25 15:17:31 PDT 2020"
}
}
Configurazione delle destinazioni di mappatura
In una mappatura, il destination
è la posizione in cui il valore estratto dal valore source
verrà inserito.
Campo a livello di radice
Quando desideri mappare il source
al livello principale dei dati trasformati, segui l’esempio seguente:
File JSON di esempio
{
"customerInfo": {
"name": "John Smith",
"email": "js@example.com"
}
}
Mappatura di esempio
{
"source": "customerInfo.name",
"destination": "name",
"sourceType": "ATTRIBUTE"
}
Dati trasformati
{
"name": "John Smith"
}
Campo nidificato
Quando desideri mappare il source
a un campo nidificato nei dati trasformati, segui l’esempio seguente:
File JSON di esempio
{
"name": "John Smith",
"email": "js@example.com"
}
Mappatura di esempio
{
"source": "name",
"destination": "pi.name",
"sourceType": "ATTRIBUTE"
}
Dati trasformati
{
"pi": {
"name": "John Smith"
}
}
Campo in un indice di array specifico
Quando desideri mappare il source
valore a un indice specifico in un array nei dati trasformati, segui l’esempio seguente:
File JSON di esempio
{
"customerInfo": {
"name": "John Smith",
"email": "js@example.com"
}
}
Mappatura di esempio
{
"source": "customerInfo.name",
"destination": "piList[0]",
"sourceType": "ATTRIBUTE"
}
Dati trasformati
{
"piList": ["John Smith"]
}
Funzionamento iterativo dell'array
Se si desidera eseguire un ciclo iterativo tra le matrici e mappare i valori alla destinazione, è possibile utilizzare un indice con caratteri jolly ([*]
). Di seguito è riportato un esempio:
{
"customerInfo": {
"emails": [
{
"name": "John Smith",
"email": "js@example.com"
},
{
"name": "Jane Smith",
"email": "jane@example.com"
}
]
}
}
Mappatura di esempio
{
"source": "customerInfo.emails[*].name",
"destination": "pi[*].names",
"sourceType": "ATTRIBUTE"
}
Dati trasformati
{
"pi": [
{
"names": {
"name": "John Smith"
}
},
{
"names": {
"name": "Jane Smith"
}
}
]
}
Passaggi successivi
Una volta letto questo documento, sarai in grado di comprendere come vengono costruiti i set di mappatura, e come configurare le singole mappature all’interno di un set di mappatura. Per ulteriori informazioni su altre funzioni di preparazione dati, consulta la sezione Panoramica sulla preparazione dati. Per informazioni su come utilizzare i set di mappatura nell’API di preparazione dati, consulta la sezione Guida per gli sviluppatori sulla preparazione dati.