Upsert in streaming Data Prep consente di inviare aggiornamenti di riga parziali a Profile Service e allo stesso tempo creare e stabilire nuovi collegamenti di identità con una singola richiesta API.
Gli aggiornamenti in streaming consentono di mantenere il formato dei dati durante la traduzione Profile Service Richieste PATCH durante l’acquisizione. In base agli input forniti, Data Prep consente di inviare un singolo payload API e tradurre i dati in entrambi Profile Service PATCH e Identity Service Creare le richieste.
Questo documento fornisce informazioni su come eseguire lo streaming degli upsert in Data Prep.
Questa panoramica richiede una buona conoscenza dei seguenti componenti di Adobe Experience Platform:
Le seguenti sorgenti supportano l’utilizzo di aggiornamenti in streaming:
Upsert in streaming Data Prep funziona come segue:
create
, merge
, e delete
;create
.Se è necessario collegare nuove identità, devi creare e trasmettere un set di dati aggiuntivo nel payload in ingresso. Quando crei un set di dati di identità, devi assicurarti che siano soddisfatti i seguenti requisiti:
Se lo schema contiene campi obbligatori, la convalida del set di dati deve essere eliminata per abilitare Identity Service per ricevere solo le identità. È possibile sopprimere la convalida applicando la disabled
valore per acp_validationContext
parametro. Vedi l’esempio seguente:
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"]
}
}'
Non è necessario eseguire alcuna configurazione aggiuntiva se lo schema associato al set di dati di identità non dispone di campi obbligatori.
Di seguito è riportato un esempio di struttura di payload in ingresso che stabilisce nuovi collegamenti di identità.
{
"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.
}
Parametro | Descrizione |
---|---|
flowId |
Un ID univoco per identificare un flusso di dati. Questo ID del flusso di dati deve corrispondere alla connessione sorgente creata con Amazon Kinesis, Azure Event Hubs, o HTTP API. Questo flusso di dati deve avere anche Profileset di dati abilitato come set di dati di destinazione. Nota: ID del ProfileIl set di dati di destinazione abilitato viene utilizzato anche come datasetId parametro. |
imsOrgId |
L’ID che corrisponde alla tua organizzazione. |
datasetId |
ID del Profileset di dati di destinazione del flusso di dati abilitato. Nota: questo è lo stesso ID del ProfileID del set di dati di destinazione abilitato trovato nel flusso di dati. |
operations |
Questo parametro delinea le azioni che Data Prep utilizzerà in base alla richiesta in ingresso. |
operations.data |
Definisce le azioni da eseguire in Profile Service. |
operations.identity |
Definisce le operazioni consentite sui dati da Identity Service. |
operations.identityDatasetId |
(Facoltativo) L’ID del set di dati di identità necessario solo se è necessario collegare nuove identità. |
Le seguenti operazioni sono supportate da Profile Service:
Operazioni | Descrizione |
---|---|
create |
Operazione predefinita. Questo genera un metodo di creazione di entità XDM per Profile Service. |
merge |
Viene generato un metodo di aggiornamento dell’entità XDM per Profile Service. |
delete |
Viene generato un metodo di eliminazione dell’entità XDM per Profile Service e rimuove definitivamente i dati dal Profile Store. |
Le seguenti operazioni sono supportate da Identity Service:
Operazioni | Descrizioni |
---|---|
create |
L’unica operazione consentita per questo parametro. Se create viene passato come valore per operations.identity , quindi Data Prep genera una richiesta di creazione di entità XDM per Identity Service. Se l’identità esiste già, viene ignorata. Nota: Se operations.identity è impostato su create , quindi identityDatasetId è necessario specificare anche. L’entità XDM crea un messaggio generato internamente da Data Prep per questo id set di dati verrà generato un componente. |
Se non è necessario collegare nuove identità, puoi omettere identity
e identityDatasetId
parametri nelle operazioni. In questo modo i dati vengono inviati solo a Profile Service e salta la Identity Service. Per un esempio, consulta il payload seguente:
{
"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.
}
Per gli aggiornamenti XDM, lo schema deve essere abilitato per Profile e contengono un’identità primaria. Puoi specificare l’identità primaria di uno schema XDM in due modi:
Nell’esempio seguente, state
, homePhone.number
e gli altri attributi vengono inseriti con i rispettivi valori specificati nel Profile con l’identità primaria di sampleEmail@gmail.com
. Il messaggio di aggiornamento di un’entità XDM viene quindi generato dal flusso Data Prep componente. Profile Service quindi conferma che il messaggio di aggiornamento XDM esegue l’upsert del record del profilo.
In questo esempio, le identità non verranno collegate tra loro poiché non sono definite operazioni per l’identità.
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"
}
}'
In questo esempio, l’intestazione contiene operations
attributo con identity
e identityDatasetId
proprietà. Questo consente di unire i dati con Profile Service e anche per le identità da trasmettere a 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"
}
}'
Di seguito è riportato un elenco delle limitazioni note da considerare quando si esegue lo streaming degli aggiornamenti con Data Prep:
identity
L'operazione deve essere sempre impostata su create. Se esiste già un’identità, l’operazione è no-op.Una volta letto questo documento, sarai in grado di eseguire lo streaming degli upsert in Data Prep per inviare aggiornamenti di riga parziali al Profile Service e di creare e collegare le identità con una singola richiesta API. Per ulteriori informazioni su altri Data Prep , leggi le Data Prep panoramica. Per informazioni su come utilizzare i set di mappatura all'interno di Data Prep API, leggi le Data Prep guida per sviluppatori.