Once the dataset is enabled for Upsert functionality via API, can it also be used for Streaming ingestion?
Solved! Go to Solution.
Topics help categorize Community content and increase your ability to discover relevant content.
Hello @BellaSnow5378
Can you please try this payload for upsert againt the data collection. Notice the xdmEntity is changed to xdmUpdate
{
"header": {
"msgType": "xdmEntityUpdate",
"msgId": "{{guid}}",
"xactionId": "{{current_timestamp}}{{guid}}",
"createdAt": "{{epoch_time}}",
"originalTimestamp": "{{epoch_time}}",
"datasetId": "<dataSetID>",
"dataStreamId": "",
"imsOrgId": "<IMSORG>",
"xdmSchema": {
"name": "_xdm.context.profile",
"version": "1.0"
},
"source": {
"name": "<sourceName>"
}
},
"body": {
"xdmEntityUpdates": {
"_<tenant>": {
<Attributes are here>
}
}
}
}
Views
Replies
Total Likes
Hello @BellaSnow5378
Yes you can use streaming ingesting after a dataSet has been enabled for upsert, but please be aware there are some limitations and inbound payload changes.
Please refer to this article.
https://experienceleague.adobe.com/en/docs/experience-platform/data-prep/upserts
Views
Replies
Total Likes
Hi @brekrut
Problem Statement :
Once data is ingested through streaming for a particular profile. Ex. (name :xyz , country :spain )in this we need to update the name of an attribute value . For that profile without getting the data override /deleted of other attributes .Is there any way to update one field and retain all the data for that profile .
Is there any way to do this and if yes can you please let me know the steps .
Views
Replies
Total Likes
Hello @BellaSnow5378
If you are streaming data for into a dataSet which has been enabled for upsert, you will need to use the merge operation as part of the inbound payload.
When a dataSet is not configured for upsert the last write of data upon the dataset will be reflected upon profile.
Views
Replies
Total Likes
Hi @brekrut
Still facing the same issue
Steps i followed
Created Two dataset
Views
Replies
Total Likes
Hello @BellaSnow5378
Can you please try this payload for upsert againt the data collection. Notice the xdmEntity is changed to xdmUpdate
{
"header": {
"msgType": "xdmEntityUpdate",
"msgId": "{{guid}}",
"xactionId": "{{current_timestamp}}{{guid}}",
"createdAt": "{{epoch_time}}",
"originalTimestamp": "{{epoch_time}}",
"datasetId": "<dataSetID>",
"dataStreamId": "",
"imsOrgId": "<IMSORG>",
"xdmSchema": {
"name": "_xdm.context.profile",
"version": "1.0"
},
"source": {
"name": "<sourceName>"
}
},
"body": {
"xdmEntityUpdates": {
"_<tenant>": {
<Attributes are here>
}
}
}
}
Views
Replies
Total Likes
Enabling dataset for Profile, using the API (isUpsertEnabled) is only for enabling upsert on batch ingestion.
To use the Streaming Upserts, you could either use XDM compatible or non XDM payloads.
Although, your payload looks like XDM payload, for streaming upsert, you could adopt XDM inCompatible ingestion, and follow the https://experienceleague.adobe.com/en/docs/experience-platform/data-prep/upserts#:~:text=this%20exam... and remove the XDM Entity object(in the above) and make sure to have the mapping in the data prep (Dataflow).