Skip to main content

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.

For fixed-length data types, Striim interprets the length parameter as one character = one byte, which can result in errors if the data uses multi-byte characters. To avoid this issue, manually increase the size of the data type in the target, or change the target data type to blob or clob.

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

Iceberg

MariaDB

Microsoft Fabric

MySQL

Oracle

PostgreSQL

Snowflake

Spanner

Spanner PG Dialect

SQL Server

Vertica

Yellowbrick

BIGNUMERIC

varchar(8000)

string

string

varchar(1000)

string

string

TEXT

varchar(max)

TEXT

number

numeric(p,s)

VARCHAR

STRING(MAX)

numeric

varchar(8000)

numeric(p,s)

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) <= 38, if (s) <= 38

decimal(p,s), if (p) <= 65, if (s) <= 30

decimal(p,s), if (p) <= 38, if (s) <= 38

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

numeric(p,s), if (p) <= 1024, if (s) <= 1024

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

varchar(1000)

string

decimal, if (p) <= 38

string

decimal(p,s), if (p) <= 38, if (s) <= 38

TEXT

decimal(p,s), if (p) <= 65, if (s) <= 30

varchar(max)

decimal(p,s), if (p) <= 38, if (s) <= 38

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

numeric(p,s), if (p) <= 1024, if (s) <= 1024

character varying

decimal(p,s), if (p) <= 38, if (s) <= 38

BOOL

BIT

boolean

boolean

Not supported

boolean

boolean

bool

BIT

bool

CHAR(5)

boolean

BOOLEAN

BOOL

boolean

BIT

boolean

boolean

BYTES

varbinary(8000)

bytes(p)

binary

blob

bytes

binary

varbinary(65535)

varbinary(max)

varbinary(65535)

BLOB

bytea

VARBINARY

BYTES(MAX)

bytea

varbinary(max)

Not supported

character varying

BYTES(p)

varbinary(p), if (p) <= 8000

bytes(p), if (p) <= 9223372036854775807

binary

varbinary(4046), if (p) <= 1011

bytes

binary

varbinary(p), if (p) <= 65535

varbinary(p), if (p) <= 8000

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

varbinary(p), if (p) <= 65000

character varying(p), if (p) <= 64000

DATE

date

date

date

date

date

date

date

date

date

date

date

date

DATE

date

date

date

date

DATETIME

datetime2

datetime

timestamp

timestamp

timestamp-millis

timestamp_ntz

datetime

datetime2(6)

datetime

timestamp

timestamp(s) without time zone

datetime

TIMESTAMP

timestamptz

datetime2

timestamp(s)

timestamp

FLOAT64

float(p)

float64

float

double

double

double

float(p)

float(p)

float(p)

float(p)

real

float

FLOAT64

float4

float(p)

float(p)

real

GEOGRAPHY

varchar(p)

string

string

varchar(p)

string

varchar(p)

varchar(p)

varchar(p)

varchar(p)

VARCHAR2(p)

character varying(p)

VARCHAR(p)

STRING(p)

varchar(p)

varchar(p)

varchar(p)

character varying(p)

INT64

bigint

int64

bigint

bigint

long

long

bigint

bigint

bigint

int

bigint

integer

INT64

int

bigint

integer

bigint

INTERVAL

varchar(p)

string

string

varchar(p)

string

varchar(p)

varchar(p)

varchar(p)

varchar(p)

VARCHAR2(p)

character varying(p)

VARCHAR(p)

STRING(p)

varchar(p)

varchar(p)

varchar(p)

character varying(p)

JSON

varchar(8000)

string

string

clob

string

string

json

varchar(max)

json

clob

json

VARIANT

STRING(MAX)

jsonb

varchar(max)

long varchar(10000000)

character varying

NUMERIC

numeric(p,s)

bignumeric

decimal(p,s)

varchar(1000)

decimal

decimal(p,s)

decimal(p,s)

decimal(p,s)

decimal(p,s)

number(p,s)

numeric(p,s)

numeric(p,s)

NUMERIC

numeric

numeric(p,s)

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) <= 38, if (s) <= 38

decimal(p,s), if (p) <= 65, if (s) <= 30

decimal(p,s), if (p) <= 38, if (s) <= 38

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

numeric(p,s), if (p) <= 1024, if (s) <= 1024

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

varchar(1000)

decimal, if (p) <= 38

decimal(p,s), if (p) <= 38, if (s) <= 38

decimal(p,s), if (p) <= 65, if (s) <= 30

decimal(p,s), if (p) <= 38, if (s) <= 38

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

numeric(p,s), if (p) <= 1024, if (s) <= 1024

decimal(p,s), if (p) <= 38, if (s) <= 38

STRING

varchar(8000)

string

string

clob(p)

string

varchar(p)

longtext

varchar(max)

longtext

clob

character varying

VARCHAR

STRING(MAX)

text

varchar(max)

Not supported

character varying

TIME

time

time

string

time

time-millis

string

time(s)

time(6)

time(s)

VARCHAR2(150)

time(s)

time

STRING(150)

varchar(150)

time

time(s)

time

TIMESTAMP

datetimeoffset

timestamp

timestamp

timestamp with time zone

string

timestamp

timestamp

datetime2(6)

timestamp

timestamp with time zone

timestamp(s) with time zone

timestamp with time zone

TIMESTAMP

timestamptz

datetimeoffset

timestamp(s) with time zone

timestamptz