Impala读取HBase外部表的一个坑

最近业务部门反应数据上报上来数据中有字段缺失。有个字段daily_amount在MQ里面是有值的,但是导入到impala后查到的确为NULL。先交代一下背景。数据平台的数据流水线如下:

《Impala读取HBase外部表的一个坑》 数据流水线

数据上报后首先写入到MQ里,通过一个消费者将数据存入HBase中,每天通过Impala JDBC接口增量将数据以Parquet格式写入HDFS中。

1.首先想到数据有没有写到HBase中,通过HBase Shell查看了一下数据是有的

《Impala读取HBase外部表的一个坑》 HBase中的数据

2.然后想会不会是创建外部表时,HBase中的列名称和Impala表的字段没有对上?因为整个过程都是程序执行的,虽然这种可能性不大,但还是检查了一下,将HBase列映射和Impala的字段依次列到文本文件中看相应的字段是否在同一行,顺便看看有没有拼写错误。

《Impala读取HBase外部表的一个坑》

3.没有头绪,抱着试一试的心态在Hive中查了一下同一条数据的同一个字段,发现数据竟然是有的。初步判断是Impala对HBase外部表的一个兼容性问题。

《Impala读取HBase外部表的一个坑》 Hive中的数据

总结:impala尽量只用作OLAP,在离线任务里面尽可能使用Hive。

    原文作者:Caoyun
    原文地址: https://www.jianshu.com/p/ba630b6883b4
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞