数据湖探索 DLI-Hbase结果表:数据类型映射

时间:2023-11-10 09:20:50

数据类型映射

HBase以字节数组存储所有数据。在读和写过程中要序列化和反序列化数据。

Flink 的 HBase 连接器利用 HBase(Hadoop) 的工具类org.apache.hadoop.hbase.util.Bytes进行字节数组和Flink 数据类型转换。

Flink 的 HBase 连接器将所有数据类型(除字符串外)null值编码成空字节。对于字符串类型,null值的字面值由null-string-literal选项值决定。

表2 数据类型映射表

Flink 数据类型

HBase 转换

CHAR / VARCHAR / STRING

byte[] toBytes(String s)

String toString(byte[] b)

BOOLEAN

byte[] toBytes(boolean b)

boolean toBoolean(byte[] b)

BINARY / VARBINARY

返回 byte[]。

DECIMAL

byte[] toBytes(BigDecimal v)

BigDecimal toBigDecimal(byte[] b)

TINYINT

new byte[] { val }

bytes[0] // returns first and only byte from bytes

SMALLINT

byte[] toBytes(short val)

short toShort(byte[] bytes)

INT

byte[] toBytes(int val)

int toInt(byte[] bytes)

BIGINT

byte[] toBytes(long val)

long toLong(byte[] bytes)

FLOAT

byte[] toBytes(float val)

float toFloat(byte[] bytes)

DOUBLE

byte[] toBytes(double val)

double toDouble(byte[] bytes)

DATE

从 1970-01-01 00:00:00 UTC 开始的天数,int 值。

TIME

从 1970-01-01 00:00:00 UTC 开始天的毫秒数,int 值。

TIMESTAMP

从 1970-01-01 00:00:00 UTC 开始的毫秒数,long 值。

ARRAY

不支持

MAP / MULTISET

不支持

ROW

不支持

support.huaweicloud.com/sqlref-flink-dli/dli_08_0396.html