不同存储间数据传输的时候,类型匹配是个很让人头疼的事情,笔者总结了常用几种存储的类型对照,以供参考。有不准确的地方,欢迎批评指正~
Java类型 | MySQL类型 | ClickHouse类型 | Oracle类型 | Hive类型 | Flink SQL类型 |
---|
byte | tinyint | Int8 | NUMBER(3,0) | tinyint | TINYINT | short | smallint | Int16 | uint8 | NUMBER(5,0) | smallint | int | int mediumint | Int32 uint16 | NUMBER(10,0) | int | INT | long | bigint int unsigned | Int64 int128 int256 uint128 uint256 | NUMBER(20,0) | bigint | BIGINT | float | float | Float32 | | float | FLOAT | double | double precision | Float64 | | double | DOUBLE | boolean | boolean tinyint(1) | UInt8 | | boolean | BOOLEAN | String | varchar char text tinytext mediumtext longtext | String uuid fixedString | varchar2 nvarchar2 char nchar clob nvarchar2 | string | STRING VARCHAR | decimal | decimal numeric bigint unsigned | Decimal | number | | DECIMAL | date | date year | Date | | | DATE | time | time | | | | TIME | timestamp | timestamp datetime | datetime64 | date(与mysql类型有歧义) | timestamp | TIMESTAMP | byte[] | blob binary varbinary tinyblob mediumblob longblob | | raw bfile | | BYTES |
注:
- 对照表中每格第一个为优先级最高的,一对多时优先选择
- 对照不出来的,一律对照成String,此时需要进行类型强转(表示该存储没有可以直接对照的数据类型)
参考文档:
【1】Mysql与Flink类型对照 【2】ClickHouse与Flink类型对照 【3】Oracle字段类型与java对象类型对照表
|