将 Hive 映射到 Hbase 时,rowkey 使用什么数据类型

What data type to use for rowkey when mapping Hive to Hbase

我正在尝试在现有 Hbase table 上创建 Hive table,如下所示:

create external table h2h (
    key int -- int or string?
    col1 string
)
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
with serdeproperties ('hbase.columns.mapping' = ':key,info:col1');

official doc演示了key的几种数据类型。

Hbasetable中如何判断映射到rowkey的列key的数据类型?

要完整回答这个问题,需要指出的是,HBase 键是以字节数组的形式存储的。这样做是为了灵活性,因为客户端可以存储任何类型的数据。所以,HBase 并没有真正的类型的概念。 这种方法非常灵活,但是给用户增加了知道如何serialize/deserialize数据的负担,也就是说,你应该看看一些数据样本或者看看creates/updates [=19]的代码=] 并查看用作密钥的内容。

在 hbase 上尝试如下内容

 scan 'h2h', {COLUMNS => ['info'], LIMIT => 3 }

看得到的key是int还是string