Metadata Column __hevo_id

Last updated on Aug 10, 2023

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.



See Also


Revision History

Refer to the following table for the list of key updates made to this page:

Date Release Description of Change
Aug-10-2023 NA Updated the __hevo_id__ table to list supported Sources only.
Mar-16-2023 NA Updated the page overview to add information about the __hevo_id column as a primary key post-Tranformation.
Jan-10-2023 NA Updated the page to add information about __hevo_id column generation for more Sources.
Jun-28-2021 NA Updated the hevo_id generation information for flat files (Google Sheets, CSV files from S3 or FTP/SFTP).
Jun-28-2021 1.61 Added a row for __hevo_id determination for MongoDB.

Tell us what went wrong