Expand my Community achievements bar.

SOLVED

How to merge / overwrite an time-series event

Avatar

Level 3

Hi there, 

 

We have an XDM ExperienceEvent schema, and I wonder if we can overwrite / update / merge an existing event? Here is the detail:

 

For example:

 

Event 1:

_id:  123456
timestamp: 2024-02-23T22:07:01Z
status: ["created"]

 

In the profile -> event, we see the same event as above.

Then event 2 happened the very next day with the same _id, but different timestamp:

Event 2:

_id:  123456
timestamp: 2024-02-24T12:05:22Z
status: ["updated"]

 

We would like to see an event under the profile:

 

_id:  123456
timestamp: 2024-02-24T12:05:22Z
status: ["created","updated"]

 

 

I wonder if that is possible to update / merge a previous event by posting an event with the same _id? Or are there any other solutions like merge_id? I saw there is a field eventMergeId, but according to the doc here: https://experienceleague.adobe.com/en/docs/experience-platform/xdm/classes/experienceevent , it's only for event from Web SDK

1 Accepted Solution

Avatar

Correct answer by
Employee

Hi @xliu ,

The Experience Event Class _id field uniquely identifies individual events ingested into the platform. This field is used to track the uniqueness of an individual event in UPS, preventing duplication of events. 

Note:

1) Duplicate events in Profile Service are dropped if the event with the same _id already exists in the Profile Store, though the ingestion to datalake does not fail.

2) Updating of attribute in Profile store is only possible with Profile Class attributes.

eventMergeId is used only for WebSDK data and stores the batch Id of the ingested event.

 

Solution: You can use the data available in the Event dataset and create an Object Array using Query Service (with all available Statuses) and route the data to a Individual Class Dataset (Status Column as Object Array).

 

Regards,

Kumar Saurabh

 

View solution in original post

1 Reply

Avatar

Correct answer by
Employee

Hi @xliu ,

The Experience Event Class _id field uniquely identifies individual events ingested into the platform. This field is used to track the uniqueness of an individual event in UPS, preventing duplication of events. 

Note:

1) Duplicate events in Profile Service are dropped if the event with the same _id already exists in the Profile Store, though the ingestion to datalake does not fail.

2) Updating of attribute in Profile store is only possible with Profile Class attributes.

eventMergeId is used only for WebSDK data and stores the batch Id of the ingested event.

 

Solution: You can use the data available in the Event dataset and create an Object Array using Query Service (with all available Statuses) and route the data to a Individual Class Dataset (Status Column as Object Array).

 

Regards,

Kumar Saurabh