How to merge / overwrite an time-series event | Community
Skip to main content
Level 3
March 27, 2024
Solved

How to merge / overwrite an time-series event

  • March 27, 2024
  • 1 reply
  • 806 views

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

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Kumar29917170hcyp

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

 

1 reply

Kumar29917170hcypAdobe EmployeeAccepted solution
Adobe Employee
March 27, 2024

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