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

时间:2024-04-23 20:19:33

数据类型映射

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_15043.html