Target data type support & mapping for BigQuery sources
The table below details how Striim maps the data types of a BigQuery source to the data types of a target such as Azure Synapse, BigQuery, Databricks, and so on when you create an application using a wizard with Auto Schema Creation, perform an initial load using Database Reader with Create Schema enabled, or run the schema conversion utility, or when Striim schema evolution creates or alters target tables.
Columns of the STRUCT data type are not supported directly, but if the target table contains individual columns with the same name and data type as the fields in the STRUCT column, it will work. Alternatively, add the parameter FlattenObjects=false
to the connection URL, to send STRUCT values as single JSON strings, and map them to a target column that can store JSON strings.
If your screen is not wide enough to display the whole table, click in a cell and drag left to view the right-hand columns.
BigQuery Data Type | Azure Synapse | BigQuery | Databricks | Db2 for z/OS | Fabric Mirror | MariaDB | MySQL | Oracle | PostgreSQL | Snowflake | Spanner | Spanner PG Dialect | SQL Server | Yellowbrick |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
BIGNUMERIC | varchar(8000) | string | string | numeric | string | TEXT | TEXT | number | numeric(p,s) | VARCHAR | STRING(MAX) | numeric | varchar(8000) | character varying |
BIGNUMERIC(p,0) | numeric(p,s), if (p) <= 38, if (s) <= 38 | numeric, if (p) <= 29, if (s) <= 9 | decimal(p,s), if (p) <= 38, if (s) <= 37 | numeric(p,s), if (p) <= 31, if (s) <= 30 | decimal, if (p) <= 38 | decimal(p,s), if (p) <= 65, if (s) <= 30 | decimal(p,s), if (p) <= 65, if (s) <= 30 | number(p,s), if (p) <= 38, if (s) <= 127 | numeric(p,s), if (p) <= 1000, if (s) <= 1000 | numeric(p,s), if (p) <= 38, if (s) <= 37 | NUMERIC, if (p) <= 38, if (s) <= 9 | numeric, if (p) <= 131072, if (s) <= 16384 | numeric(p,s), if (p) <= 38, if (s) <= 38 | decimal(p,s), if (p) <= 38, if (s) <= 38 |
BIGNUMERIC(p,s) | varchar(8000) numeric(p,s), if (p) <= 38, if (s) <= 38 | string numeric, if (p) <= 29, if (s) <= 9 | string decimal(p,s), if (p) <= 38, if (s) <= 37 | numeric(p,s), if (p) <= 31, if (s) <= 30 | string decimal, if (p) <= 38 | TEXT decimal(p,s), if (p) <= 65, if (s) <= 30 | TEXT decimal(p,s), if (p) <= 65, if (s) <= 30 | number(p,s), if (p) <= 38, if (s) <= 127 | numeric(p,s), if (p) <= 1000, if (s) <= 1000 | numeric(p,s), if (p) <= 38, if (s) <= 37 VARCHAR | NUMERIC, if (p) <= 38, if (s) <= 9 STRING(MAX) | numeric, if (p) <= 131072, if (s) <= 16384 | varchar(8000) numeric(p,s), if (p) <= 38, if (s) <= 38 | character varying decimal(p,s), if (p) <= 38, if (s) <= 38 |
BOOL | BIT | boolean | boolean | Not supported | boolean | bool | bool | CHAR(5) | boolean | BOOLEAN | BOOL | boolean | BIT | boolean |
BYTES | varbinary(8000) | bytes(p) | binary | blob | bytes | varbinary(65535) | varbinary(65535) | BLOB | bytea | VARBINARY | BYTES(MAX) | bytea | varbinary(max) | character varying |
BYTES(p) | varbinary(p), if (p) <= 8000 | bytes(p), if (p) <= 9223372036854775807 | binary | varbinary(4046), if (p) <= 1011 | bytes | varbinary(p), if (p) <= 65535 | varbinary(p), if (p) <= 65535 | BLOB | bytea, if (p) <= 2147483647 | VARBINARY | BYTES(p), if (p) <= 10485760 | bytea, if (p) <= 1048576 | varbinary(p), if (p) <= 8000 | character varying(p), if (p) <= 64000 |
DATE | date | date | date | date | date | date | date | date | date | date | DATE | date | date | date |
DATETIME | datetime2 | datetime | timestamp | timestamp | timestamp-millis | datetime | datetime | timestamp | timestamp(s) without time zone | datetime | TIMESTAMP | timestamptz | datetime2 | timestamp |
FLOAT64 | float(p) | float64 | float | real | double | float(p) | float(p) | float(p) | double precision | float | FLOAT64 | float4 | float(p) | real |
GEOGRAPHY | varchar(p) | string | string | varchar(p) | string | varchar(p) | varchar(p) | VARCHAR2(p) | character varying(p) | VARCHAR(p) | STRING(p) | varchar(p) | varchar(p) | character varying(p) |
INT64 | bigint | int64 | bigint | bigint | long | bigint | bigint | int | bigint | integer | INT64 | int | bigint | bigint |
INTERVAL | varchar(p) | string | string | varchar(p) | string | varchar(p) | varchar(p) | VARCHAR2(p) | character varying(p) | VARCHAR(p) | STRING(p) | varchar(p) | varchar(p) | character varying(p) |
JSON | varchar(8000) | string | string | clob | string | json | json | clob | json | VARIANT | STRING(MAX) | jsonb | varchar(max) | character varying |
NUMERIC | numeric(p,s) | bignumeric | decimal(p,s) | numeric | decimal | decimal(p,s) | decimal(p,s) | number(p,s) | numeric(p,s) | numeric(p,s) | NUMERIC | numeric | numeric(p,s) | decimal(p,s) |
NUMERIC(p,0) | numeric(p,s), if (p) <= 38, if (s) <= 38 | numeric, if (p) <= 29, if (s) <= 9 | decimal(p,s), if (p) <= 38, if (s) <= 37 | numeric(p,s), if (p) <= 31, if (s) <= 30 | decimal, if (p) <= 38 | decimal(p,s), if (p) <= 65, if (s) <= 30 | decimal(p,s), if (p) <= 65, if (s) <= 30 | number(p,s), if (p) <= 38, if (s) <= 127 | numeric(p,s), if (p) <= 1000, if (s) <= 1000 | numeric(p,s), if (p) <= 38, if (s) <= 37 | NUMERIC, if (p) <= 38, if (s) <= 9 | numeric, if (p) <= 131072, if (s) <= 16384 | numeric(p,s), if (p) <= 38, if (s) <= 38 | decimal(p,s), if (p) <= 38, if (s) <= 38 |
NUMERIC(p,s) | numeric(p,s), if (p) <= 38, if (s) <= 38 | numeric, if (p) <= 29, if (s) <= 9 bignumeric, if 29 <= (p) <= 39, if 9 <= (s) <= 38 | decimal(p,s), if (p) <= 38, if (s) <= 37 | numeric(p,s), if (p) <= 31, if (s) <= 30 | decimal, if (p) <= 38 | decimal(p,s), if (p) <= 65, if (s) <= 30 | decimal(p,s), if (p) <= 65, if (s) <= 30 | number(p,s), if (p) <= 38, if (s) <= 127 | numeric(p,s), if (p) <= 1000, if (s) <= 1000 | numeric(p,s), if (p) <= 38, if (s) <= 37 | NUMERIC, if (p) <= 38, if (s) <= 9 | numeric, if (p) <= 131072, if (s) <= 16384 | numeric(p,s), if (p) <= 38, if (s) <= 38 | decimal(p,s), if (p) <= 38, if (s) <= 38 |
STRING | varchar(8000) | string | string | clob(p) | string | longtext | longtext | clob | character varying | VARCHAR | STRING(MAX) | text | varchar(max) | character varying |
TIME | time | time | string | time | time-millis | time(s) | time(s) | VARCHAR2(150) | time(s) | time | STRING(150) | varchar(150) | time | time |
TIMESTAMP | datetimeoffset | timestamp | timestamp | timestamp with time zone | string | timestamp | timestamp | timestamp with time zone | timestamp(s) with time zone | timestamp with time zone | TIMESTAMP | timestamptz | datetimeoffset | timestamptz |