Hive / HBase:如何解释存储在HBase中的数据?

时间:2016-05-26 12:17:47

标签: hadoop hive hbase

我目前正在研究存储在HBase上的Hive外部表。在这个任务中,我的问题是解释存储在HBase中的数据。

所以,我有这个名为'ana'的表,它有一个列系列'd'和几个限定符。这是我的基础摘录:

1GME010NE- 2015-10-15 15:43:56.822,column = d:12,value = 20151015

1GME010NE- 2015-10-15 15:43:56.822,column = d:13,value = 15:43:56.822

1GME010NE- 2015-10-15 15:43:56.822,栏= d:14 ,值= @ \ x80 \ x00 \ x00

1GME010NE- 2015-10-15 15:43:56.822,column = d:15,value = 0

1GME010NE- 2015-10-15 15:43:56.822, column = d:8 ,value = \ x00 \ x00 \ x01Pl,\ x09 \ x96 < / p>

1GME010NE- 2015-10-15 15:43:56.822,column = d:e,value = 1GME010NE -

我的问题来自:

  • 列d:8 ,其中包含 BIGINT ,确实是 TIMESTAMP 等于'2015-10-15 15: 43:56.822',编码为'\ x00 \ x00 \ x01Pl,\ x09 \ x96'。

我想要的是通过Hive访问该数据,BIGINT直接解释为TIMESTAMP。所以我尝试了这个:

CREATE EXTERNAL TABLE hbase_anahist
  (
     rowkey STRING,
     jour STRING,
     heure STRING,
     valeur FLOAT,
     validite STRING,
     horodate BIGINT,
     repere STRING
  )
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES
  ("hbase.columns.mapping" = ":key#s, d:12#s, d:13#s, d:14#b, d:15#s, d:8#b, d:e#$)
TBLPROPERTIES
  (
      "hbase.table.name" = "ana",
      "hbase.mapred.output.outputtable" = "ana",
      "hbase.table.default.storage.type"="binary"
  );

这给了我一个BIGINT等于1444923836822,这是2015-10-15 15:43:56.822的BIGINT,所以这没关系。

但在HIVE映射期间,我需要在他的TIMESTAMP等效语言中自动翻译这个BIGINT。

先谢谢你的帮助。

罗曼。

0 个答案:

没有答案