Data Types
Hevo offers integration with a large number of Sources and Destinations for creating Pipelines. To enable this, we support a variety of data types and data type conversions.
For a Source field value to be loaded to the Destination, its data type must be supported by the Destination column. If this is not so, Hevo tries to change the data type of the Source data to successfully load it to the Destination. For example, the uuid data type is converted to varchar to ensure compatibility with data warehouses such as Snowflake, Google BigQuery, and Amazon Redshift that do not support uuid as a native data type.
Some Sources such as PostgreSQL support custom data types; however, these are ignored during ingestion. To successfully ingest such data, contact Hevo Support. If the Source data contains arrays and multi-dimension arrays, these are loaded as strings.
Inferring and Assigning Data Types
Hevo assigns an appropriate data type for a column before loading it to the Destination. This is done in the following two ways, depending on the Source:
-
The data type of the fields is not explicitly defined by the Source: Any Sources, especially SaaS-based ones, do not enforce any specific data types beyond String and Number. In such cases, Hevo infers the data type from the field value, and assigns the most appropriate data type to accommodate that value.
For example, if a Source field has 2 as its value, then Hevo infers the data type as int.
-
The Source specifies the data type of every field explicitly: JDBC Sources such as MySQL, and Oracle and some SaaS Sources specify the data type of every column in the database. For these, Hevo uses the data type specified by the Source.
Dealing with Data Type Incompatibilities
There can be cases where the data type of a Source field is incompatible with the Destination. To accommodate the data, one of the following approaches may be used:
-
Convert to String
-
Use Implicit conversion: The first value that is loaded into the Destination column decides the data type of the Destination column. For example, if the first value is a string and the next is a number, the number is loaded as a string value.
-
Use Data Type Promotion: If Auto Mapping is enabled, the data type of the Destination column is promoted to accommodate maximum variations in the Source data type. Read Schema Mapper Compatibility Table. For example, if the first value is an integer and the next is a string, the column’s data type is promoted from int to string. The data type can be changed to only a broader definition. Read Handling Different Data Types in Source Data.
If Auto Mapping is disabled you must manually change the data type of the field. Read How can I change the data type of a Destination table column?