Présentation des jeux de mappages
Un jeu de mappages est un ensemble de mappages qui transforme les données d’un schéma en un autre. Ce document fournit des informations sur la composition des jeux de mappages, y compris le schéma d’entrée, le schéma de sortie et les mappages.
Prise en main
Cette présentation d’ nécessite une compréhension professionnelle des composants suivants d’Adobe Experience Platform :
- Préparation de données : la préparation des données permet aux ingénieur(e)s de données de mapper, de transformer et de valider les données vers et à partir du modèle de données d’expérience (XDM).
- Flux de données : les flux de données sont une représentation des tâches de données qui déplacent ces dernières dans Platform. Les flux de données sont configurés sur différents services, ce qui permet de déplacer les données des connecteurs sources vers des jeux de données cibles, vers Identity et Profile, et vers Destinations.
- Adobe Experience Platform Data Ingestion : méthodes par lesquelles les données peuvent être envoyées à Experience Platform.
- Experience Data Model (XDM) System : cadre normalisé selon lequel Experience Platform organise les données de l’expérience client.
Syntaxe du jeu de mappages
Un jeu de mappages se compose d’un identifiant, d’un nom, d’un schéma d’entrée, d’un schéma de sortie et d’une liste des mappages associés.
Le fichier JSON suivant est un exemple de jeu de mappages type :
{
"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
Pour chaque mappage répertorié, son attribut sourceType
indique le type de source à mapper. Peut être l’une des valeurs suivantes : ATTRIBUTE
, STATIC
ou EXPRESSION
:
ATTRIBUTE
est utilisé pour toute valeur trouvée dans le chemin d’accès source.STATIC
est utilisé pour les valeurs injectées dans le chemin d’accès de destination. Cette valeur reste constante et n’est pas affectée par le schéma source.EXPRESSION
est utilisé pour une expression qui sera résolue au moment de l’exécution. Vous trouverez une liste des expressions disponibles dans le guide des fonctions de mappage.
source
source
indique le champ que vous souhaitez mapper. Vous trouverez plus d’informations sur la configuration de votre source dans la présentation des sources.destination
destination
indique le champ, ou le chemin d’accès au champ, où sera placée la valeur extraite du champ source
. Vous trouverez plus d’informations sur la configuration de vos destinations dans la présentation de destination.mappings.name
mappings.description
Configuration des sources de mappage
Dans un mappage, la valeur source
peut être un champ, une expression ou une valeur statique. En fonction du type de source donné, la valeur peut être extraite de différentes manières.
Champ dans les données en colonnes
Lors du mappage d’un champ dans les données en colonnes, comme un fichier CSV, utilisez le type de source ATTRIBUTE
. Si le champ contient .
dans son nom, utilisez \
pour ignorer la valeur. Voici un exemple de ce mappage :
Exemple de fichier CSV :
Full.Name, Email
John Smith, js@example.com
Exemple de mappage
{
"source": "Full.Name",
"destination": "pi.name",
"sourceType": "ATTRIBUTE"
}
Données transformées
{
"pi": {
"name": "John Smith"
}
}
Champ dans les données imbriquées
Lors du mappage d’un champ dans des données imbriquées, comme un fichier JSON, utilisez le type de source ATTRIBUTE
. Si le champ contient .
dans son nom, utilisez \
pour ignorer la valeur. Voici un exemple de ce mappage :
Exemple de fichier JSON
{
"customerInfo": {
"name": "John Smith",
"email": "js@example.com"
}
}
Exemple de mappage
{
"source": "customerInfo.name",
"destination": "pi.name",
"sourceType": "ATTRIBUTE"
}
Données transformées
{
"pi": {
"name": "John Smith"
}
}
Champ dans un tableau
Lors du mappage d’un champ dans un tableau, vous pouvez récupérer une valeur spécifique à l’aide d’un index. Pour ce faire, utilisez le type de source ATTRIBUTE
et l’index de la valeur que vous souhaitez mapper. Voici un exemple de ce mappage :
Exemple de fichier JSON
{
"customerInfo": {
"emails": [
{
"name": "John Smith",
"email": "js@example.com"
},
{
"name": "Jane Smith",
"email": "jane@example.com"
}
]
}
}
Exemple de mappage
{
"source": "customerInfo.emails[0].email",
"destination": "pi.email",
"sourceType": "ATTRIBUTE"
}
Données transformées
{
"pi": {
"email": "js@example.com"
}
}
Tableau à tableau ou objet à objet
En utilisant le type de source ATTRIBUTE
, vous pouvez également mapper directement un tableau à un tableau ou un objet à un objet. Voici un exemple de ce mappage :
Exemple de fichier JSON
{
"customerInfo": {
"emails": [
{
"name": "John Smith",
"email": "js@example.com"
},
{
"name": "Jane Smith",
"email": "jane@example.com"
}
]
}
}
Exemple de mappage
{
"source": "customerInfo.emails",
"destination": "pi.emailList",
"sourceType": "ATTRIBUTE"
}
Données transformées
{
"pi": {
"emailList": [
{
"name": "John Smith",
"email": "js@example.com"
},
{
"name": "Jane Smith",
"email": "jane@example.com"
}
]
}
}
Opérations itératives sur les tableaux
En utilisant le type de source ATTRIBUTE
, vous pouvez lire en boucle itérative les tableaux et les mapper à un schéma cible à l’aide d’un index de caractères génériques ([*]
). Voici un exemple de ce mappage :
Exemple de fichier JSON
{
"customerInfo": {
"emails": [
{
"name": "John Smith",
"email": "js@example.com"
},
{
"name": "Jane Smith",
"email": "jane@example.com"
}
]
}
}
Exemple de mappage
{
"source": "customerInfo.emails[*].name",
"destination": "pi[*].names",
"sourceType": "ATTRIBUTE"
}
Données transformées
{
"pi": [
{
"names": {
"name": "John Smith"
}
},
{
"names": {
"name": "Jane Smith"
}
}
]
}
Valeur constante
Si vous souhaitez mapper une valeur constante ou une valeur statique, utilisez le type de source STATIC
. Lors de l’utilisation du type de source STATIC
, la valeur source
représente la valeur codée en dur que vous souhaitez affecter à destination
. Voici un exemple de ce mappage :
Exemple de fichier JSON
{
"name": "John Smith",
"email": "js@example.com"
}
Exemple de mappage
{
"source": "CUSTOMER",
"destination": "userType",
"sourceType": "STATIC"
}
Données transformées
{
"userType:": "CUSTOMER"
}
Expressions
Si vous souhaitez mapper une expression, utilisez le type de source EXPRESSION
. Vous trouverez une liste des fonctions acceptées dans le guide des fonctions de mappage. Lors de l’utilisation du type de source EXPRESSION
, source
représente la fonction que vous souhaitez résoudre. Voici un exemple de ce mappage :
Exemple de fichier JSON
{
"firstName": "John",
"lastName": "Smith",
"email": "js@example.com"
}
Exemple de mappage
{
"source": "concat(upper(lastName), upper(firstName), now())",
"destination": "pi.created",
"sourceType": "EXPRESSION"
}
Données transformées
{
"pi": {
"created": "SMITHJOHNFri Sep 25 15:17:31 PDT 2020"
}
}
Configuration des destinations de mappage
Dans un mappage, destination
est l’emplacement où la valeur extraite de source
sera insérée.
Champ au niveau racine
Lorsque vous souhaitez mapper la valeur source
au niveau racine de vos données transformées, suivez l’exemple ci-dessous :
Exemple de fichier JSON
{
"customerInfo": {
"name": "John Smith",
"email": "js@example.com"
}
}
Exemple de mappage
{
"source": "customerInfo.name",
"destination": "name",
"sourceType": "ATTRIBUTE"
}
Données transformées
{
"name": "John Smith"
}
Champ imbriqué
Lorsque vous souhaitez mapper la valeur source
à un champ imbriqué dans vos données transformées, suivez l’exemple ci-dessous :
Exemple de fichier JSON
{
"name": "John Smith",
"email": "js@example.com"
}
Exemple de mappage
{
"source": "name",
"destination": "pi.name",
"sourceType": "ATTRIBUTE"
}
Données transformées
{
"pi": {
"name": "John Smith"
}
}
Champ à un index de tableau spécifique
Lorsque vous souhaitez mapper la valeur source
à un index spécifique dans un tableau de vos données transformées, suivez l’exemple ci-dessous :
Exemple de fichier JSON
{
"customerInfo": {
"name": "John Smith",
"email": "js@example.com"
}
}
Exemple de mappage
{
"source": "customerInfo.name",
"destination": "piList[0]",
"sourceType": "ATTRIBUTE"
}
Données transformées
{
"piList": ["John Smith"]
}
Opération de tableau itératif
Lorsque vous souhaitez lire en boucle itérative les tableaux et mapper les valeurs à la cible, vous pouvez utiliser un index de caractère générique ([*]
). Voici un exemple :
{
"customerInfo": {
"emails": [
{
"name": "John Smith",
"email": "js@example.com"
},
{
"name": "Jane Smith",
"email": "jane@example.com"
}
]
}
}
Exemple de mappage
{
"source": "customerInfo.emails[*].name",
"destination": "pi[*].names",
"sourceType": "ATTRIBUTE"
}
Données transformées
{
"pi": [
{
"names": {
"name": "John Smith"
}
},
{
"names": {
"name": "Jane Smith"
}
}
]
}
Étapes suivantes
En lisant ce document, vous devriez à présent comprendre comment les jeux de mappages sont construits, et notamment comment configurer des mappages individuels dans un jeu de mappages. Pour plus d’informations sur les autres fonctionnalités de la préparation des données, consultez la présentation de la préparation des données. Pour savoir comment utiliser les jeux de mappages dans l’API Data Prep, consultez le guide de développement de la préparation des données.