Data type support & mapping for MariaDB and MySQL sources
MariaDB / MySQL source type | BigQuery | Databricks | MySQL | Oracle | PostgreSQL | Snowflake | Spanner | SQL Server / Azure Synapse |
---|---|---|---|---|---|---|---|---|
bigint / bigint unsigned | int64 / numeric | bigint | bigint / bigint unsigned | int | bigInt / double precision | integer | int64 / float64 | bigInt / numeric(38) |
binary | bytes | binary | binary(s) | blob | bytea | binary | bytes | binary(s) |
bit / bit(n) | not supported | not supported | bit / bit(n) | blob | bit / bit varying(s) | binary | string | varchar(n) |
blob | bytes | binary | longblob | blob | bytea | binary | bytes(65535) bytes(max) | varbinary(p) if <= 8000 varbinary(max) if > 8000 |
char(s) | string | string | character(s) if s<255 longtext if s>255 | character(s) if s<=2000 clob if s>2000 | character(s) | character(s) | string(s) | character(s) if s<=8000 varchar(max) if s>8000 |
date | date | date | date | date | date | date | date | date |
datetime | datetime | timestamp | datetime | timestamp | timestamp without time zone | datetime | timestamp | datetime2 |
decimal | numeric | double | decimal(10,0) | number(10,0) | numeric(10,0) | numeric(10,0) | float64 | numeric(10,0) |
decimal(p,s) | numeric if p<=38 and s<=8 string if p>38 or s>9 | double if p<=38 string if p>38 | decimal(p,s) if p<=65 and s<=30 text if p>65 or s>30 | number(p,s) if p<=38 and s<=127 varchar2(1000) if p>38 or s>127 | numeric(p,s) | numeric(p,s) if p<=38 snf s<=37 varchar if p>38 or s>37 | float64 if p<=308 and s<=15 string(max) if p>308 pr s>15 | decimal(p,s) if p<=38 and s<=38 varchar(8000) if p>38 or s>38 |
decimal(p) | numeric if p<=38 string if p>38 | double if p<=38 string if p>38 | decimal(p) if p<=65 text if p>65 | number(p) if p<=38 varchar2(1000) if p>38 | numeric(p) | numeric(p) if p<=38 varchar if p>38 | float64 if p<=308 string(max) if p>308 | decimal(p) if p<=38 varchar(8000) if p>38 |
double | float64 | double | double | double precision | double precision | double precision | float64 | double precision |
double(p,s) | float64 | double | double | double precision | double precision | double precision | float64 if p<=308 and s<=15 string(max) if p>308 or s>15 | float |
enum | not supported | not supported | not supported | not supported | not supported | varchar | not supported | not supported |
float | float64 | double | decimal | float | double precision | float | float64 | float |
float(p,s) | float64 | float | float(p) if p<=38 double if p>38 | float(p) | double precision | float(p) if p<=38 float if p>38 | float64 | float(p) if p<=53 varchar(8000) if p>53 |
int / int unsigned | int64 | bigint | int / int unsigned | int | bigInt | integer | int64 | integer |
json | string | string | json | clob | json | variant | string(max) | varchar if <= 8000 varchar(max) > 8000 |
longblob | bytes | binary | longblob | blob | bytea | binary | bytes(max) | varbinary(p) if <= 8000 varbinary(max) for > 8000 |
longtext | string | string | tinytext / longtext | clob | text | varchar | string(max) | character(s) if s<=8000 varchar(max) if s>8000 |
mediumblob | bytes | binary | longblob | blob | bytea | binary | bytes(max) | varbinary(p) if <= 8000 varbinary(max) for > 8000 |
mediumInt / mediumInt unsigned | int64 | bigint | mediumInt / mediumInt unsigned | int | integer | integer | int64 | integer |
mediumtext | string | string | tinytext / longtext | clob | text | varchar | string(max) | character(s) if s<=8000 varchar(max) if s>8000 |
smallint / smallint unsigned | int64 | bigint | smallint / smallint unsigned | int | smallint | integer | int64 | smallint |
text | string | string | text | clob | text | varchar | string(s) | varchar if s<=8000 varchar(max) if s>8000 |
time | time | timestamp | time | varchar2(200) | time | time | string(max) | time |
timestamp | timestamp | timestamp | timestamp | timestamp with time zone | timestamp without time zone | timestamp with timezone | timestamp | datetimeOffset |
tinyblob | bytes | binary | longblob | blob | bytea | binary | bytes(255) bytes(max) | varbinary(p) if <= 8000 varbinary(max) for > 8000 |
tinyint / tinyint unsigned | int64 | bigint | tinyint / tinyint unsigned | blob | smallint | integer | int64 | tinyInt |
tinyint(1) | in Striim 4.2.0.3 and earlier: boolean in Striim 4.2.0.4 and later: int64 | in Striim 4.2.0.3 and earlier: bigint in Striim 4.2.0.4 and later: bigint | tinyint(1) | in Striim 4.2.0.3 and earlier: not supported in Striim 4.2.0.4 and later: int | in Striim 4.2.0.3 and earlier: boolean in Striim 4.2.0.4 and later: smallint | in Striim 4.2.0.3 and earlier: binary in Striim 4.2.0.4 and later: integer | in Striim 4.2.0.3 and earlier: string in Striim 4.2.0.4 and later: int64 | in Striim 4.2.0.3 and earlier: not supported in Striim 4.2.0.4 and later: tinyint |
tinytext | string | string | tinytext | clob | text | varchar | string(s) | character(s) if s<=8000 varchar(max) if s>8000 |
varbinary(s) | bytes | binary | varbinary(s) | blob | character varying(s) | varbinary | bytes(s) | varbinary(s) if s<=8000 varbinary(max) if s>8000 |
varchar(s) | string | string | varchar(s) | varchar2(s) if s<=4000 clob if s>4000 | character varying(s) | varchar(s) | string(s) | varchar(s) if s<=8000 varchar(max) if s>8000 |
year | not supported | not supported | not supported | not supported | not supported | numeric(38,0) | not supported | not supported |
MySQL spatial types are not supported. See Using Data Types from Other Database Engines for a list of supported data type aliases (such as boolean and numeric). |