Metadata Column __hevo_id
What is __hevo_id?
Hevo requires a primary key to perform updates in the Destination and ensure exactly-once delivery semantics, which means data is loaded precisely once for Sources that generate mutable and immutable data, respectively. Hevo’s architecture guarantees at-least-once delivery semantics by default. But, by having primary keys in the Events, Hevo is able to replicate your data in the Destination exactly once.
For each Event Type in the Destination, Hevo generates a __hevo_id
column that acts as a primary key. This column is generated in the following scenarios:
-
The Source did not provide any primary key by default.
-
The combined length of the composite key provided by the Source exceeds the maximum length allowed in a Destination column.
For Event Types and Events created through Transformations, the __hevo_id
column is not generated by default. Suppose an Event Type contains the __hevo_id
column and you use Transformations to split this Event Type into multiple Event Types. In that case, you need to specifically include the __hevo_id
column as a property of the new Event Type. Hevo automatically copies the value of the __hevo_id
column to the generated Event Types. Further, if you want to use this column as a primary key for data deduplication, you must manually define this through the Schema Mapper page.
You can choose to not create primary keys or load the __hevo_id
column to the Destination tables if you are not affected by some duplicates in the loaded data or if you have other processes to remove duplicate Events later. You can do this by modifying the schema mapping to ignore the primary key and the __hevo_id
column.
How is __hevo_id generated?
The following table describes how the __hevo_id
column is generated for different Sources as Events get loaded into your Destination:
Source | __hevo_id generated from | Examples |
---|---|---|
AdRoll | The hash of multiple fields from reports | SHA-256 hash value of a combination of fields for each report. |
Appsflyer | The hash of each Event payload | SHA-256 hash value of each Event ingested. |
Amazon S3 | fileName_rowNumber | The file name and row number of each record in the file. Example, Inside Sales_231. |
CleverTap | The hash of each Event payload | SHA-256 hash value of each Event ingested. |
Azure Blob Storage | fileName_rowNumber | The file name and row number of each record in the file. Example, Inside Sales_231. |
Facebook Ads | The hash of multiple fields from reports | SHA-256 hash value of a combination of fields for each report. |
Firebase Analytics | The hash of multiple fields from reports | SHA-256 hash value of a combination of fields for each report. |
Google Ads | The hash of multiple fields from reports | SHA-256 hash value of a combination of fields for each report. |
Google Analytics | The hash of multiple fields from reports | SHA-256 hash value of a combination of fields for each report. |
Google Analytics 4 | The hash of multiple fields from reports | SHA-256 hash value of a combination of fields for each report. |
Google Analytics 360 | The hash of multiple fields from reports | SHA-256 hash value of a combination of fields for each report. |
Google BigQuery | The hash of each Event payload | SHA-256 hash value of each Event ingested. |
Google Drive | fileName_rowNumber | The file name and row number of each record in the file. Example, Inside Sales_231. |
Google Sheets | rowNumber | The row number of each record in the file. Example, 231. |
Microsoft Ads | The hash of multiple fields from core objects | SHA-256 hash value of a combination of fields for each report. |
Mixpanel | The hash of each Event-payload | SHA-256 hash value of each Event ingested. |
MongoDB | The hash of the _id fields’ data type and value |
SHA-256 hash value of the data type of the _id field and its value. Example, hash of Integer-24. |
Pendo | The hash of multiple fields from objects | SHA-256 hash value of a combination of fields for each object. |
Shopify | The hash of multiple fields from objects | SHA-256 hash value of a combination of fields for each object. |
Stripe | The hash of multiple fields from objects | SHA-256 hash value of a combination of fields for each object. |
Taboola | The hash of multiple fields from reports | SHA-256 hash value of a combination of fields for each report. |
Webhook | The hash of multiple fields from objects | SHA-256 hash value of a combination of fields for each object. |
YouTube Analytics | The hash of each Event payload | SHA-256 hash value of each Event ingested. |