Data types
Understanding Prequel data types
Understanding Prequel data types
Because data from any source can be synced to any destination, and because data types are not necessarily synonymous across data stores, a common mapping must be used to specify the source data type and predict the destination data type. As part of Prequel configuration, the expected data type must be defined ahead of time: for Export, this means specifying what data type the source will export, or for Import, specifying what data type to enforce in the destination.
Source type mapping
If you are configuring a source and need to decide what PREQUEL
type to use, reference this table.
Prequel Type | Supported | Athena | BigQuery | Clickhouse | Databricks | MongoDB | MySQL | Postgres | Redshift | Snowflake | SQL Server |
---|---|---|---|---|---|---|---|---|---|---|---|
bytes | ✔️ | binary | bytes | blob, mediumblob, longblob | binary | binData | binary, varbinary, blob, mediumblob, longblob | bytea | VARBYTE, VARBINARY, BINARY VARYING | binary, varbinary | binary, image, varbinary |
string | ✔️ | char, varchar, string | string | string, fixedstring, text, mediumtext, longtext, varchar | string | String, ObjectId | string, char, text, longtext, varchar | char, character, character varying, text, uuid, varchar | CHAR, CHARACTER, NCHAR, BPCHAR, CHARACTER VARYING, NVARCHAR, TEXT | CHAR, CHARACTER, NCHAR, BPCHAR, CHARACTER VARYING, NVARCHAR, TEXT | char, varchar, text, nvarchar, ntext, nchar |
boolean | ✔️ | boolean | bool | bool, boolean | boolean | Boolean | boolean | boolean | boolean | boolean | bit |
integer | ✔️ | smallint, integer | smallint, int64, bigint | int, int8, int16, int32 | smallint, int | Int32 | smallint, mediumint, int | smallint, integer | smallint, integer | smallint, integer | smallint, int |
bigint | ✔️ | bigint | int64, bigint | int64, bigint | bigint | Int64, Long | bigint | bigint | bigint | bigint | bigint |
decimal | ✔️ | decimal | decimal, numeric | decimal, numeric | decimal, dec, numeric | Decimal128 | decimal, numeric | decimal, numeric | decimal, numeric | decimal, numeric | decimal, numeric |
float | ✔️ | real, float | float64 | float32, float64, double | float, double | Double | float, double | real, double precision | real, float4, float8, double precision | real, float4, float8, double precision | float, real |
timestamp | ✔️ | timestamp | timestamp | datetime, Datetime64 | timestamp | Date, Timestamp | timestamp | timestamp, timestamptz | timestamp, timestamptz | timestamp, timestamp_ntz, timestamp_tz, timestamp_ltz | datetime2 |
date | ✔️ | date | date | date | date | date | date | date | date | date | |
json | ✔️ | varchar, string | json | string* | string | Object | json | json, jsonb | varchar(MAX) | varchar, variant | nvarchar(MAX) |
time * | ✖️ | varchar, string | time | time | string | time | time | time | time | time |
Precision limitations for floating point types
Due to technical constraints, Prequel is unable to guarantee the absence of a loss of precision for any floating point (eg
float
) type. For use-cases in which precision is key, such as when transferring financial data, we strongly recommend leveraging fixed precision types instead such asdecimal
.
* An asterisk indicates partial support. Ask us about any specific data type limitations.
Destination type mapping
If you are predicting what data type your Recipient destination will receive, reference this table.
Prequel Type | Supported | Athena | BigQuery | Clickhouse | Databricks | MySQL | Postgres | Redshift | Snowflake | SQL Server |
---|---|---|---|---|---|---|---|---|---|---|
bytes | ✔️ | string | bytes | blob | binary | binary | bytea | VARBYTE(MAX)* | binary | blob |
string | ✔️ | string | string | string | string | text | text | varchar(MAX) | text | nvarchar(MAX) |
boolean | ✔️ | boolean | bool | boolean | boolean | boolean | boolean | boolean | boolean | bit |
integer | ✔️ | integer | int64 | integer | int | int | integer | bigint | integer | int |
bigint | ✔️ | bigint | bigint | bigint | bigint | bigint | bigint | bigint | bigint | bigint |
decimal | ✔️ | decimal | decimal | decimal | decimal | decimal | decimal | decimal | decimal | decimal |
float | ✔️ | float | float64 | double | double | double | double precision | double precision | float | |
timestamp | ✔️ | timestamp | timestamp | Datetime64 | timestamp | timestamp | timestamptz | timestamptz | timestamp_tz | datetime2 |
date | ✔️ | date | date | date | date | date | date | date | date | date |
json | ✔️ | string | json | string* | string | json | jsonb | varchar(MAX) | variant | nvarchar(MAX) |
* An asterisk indicates partial or incomplete support. Ask us about any specific data type limitations.
Updated 18 days ago