您现在的位置是:主页 > news > 女生化妆品网站建设规划书/免费seo网站诊断

女生化妆品网站建设规划书/免费seo网站诊断

admin2025/5/7 22:10:40news

简介女生化妆品网站建设规划书,免费seo网站诊断,手绘风格 网站,wordpress 文章的标签事情起因: 生产环境新接了一张表,该表的处理过程是 上游将数据推送至kafka,然后flink消费kafka的数据,flink直接将消费的数据写到hdfs上指定的hive表空间下面,写入完成后通过msck repair table table_name修复一下表&a…

女生化妆品网站建设规划书,免费seo网站诊断,手绘风格 网站,wordpress 文章的标签事情起因: 生产环境新接了一张表,该表的处理过程是 上游将数据推送至kafka,然后flink消费kafka的数据,flink直接将消费的数据写到hdfs上指定的hive表空间下面,写入完成后通过msck repair table table_name修复一下表&a…

事情起因:

                生产环境新接了一张表,该表的处理过程是 上游将数据推送至kafka,然后flink消费kafka的数据,flink直接将消费的数据写到hdfs上指定的hive表空间下面,写入完成后通过msck repair table table_name修复一下表,即可在hive和impala中正常显示。

                但问题出现在flink写入表的时候,代码中的属性名称和hive表中的属性名称不匹配,即代码中叫value,而hive建表时叫value2。此时数据正常存放到hdfs上的hive表空间下面,但数据在hive中查询时value2字段显示为NULL,impala中可以正常显示具体的值。

解决办法:

                该表的存储压缩格式是parquet的,在解决过程中尝试新建备份表,通过insert into select 源表的方式,或者是create table as select的方式,均无法在新建表中查询到具体的数据,同时在impala中也不再显示数据。

                最后通过添加了set参数,即可在hive原表中显示数据,命令为:

set parquet.column.index.access=true

原因是:Impala是以序号形式读取parquet,而Hive是以列形式读取parquet 。

最后:

                  问题已经定位并且解决,但作为开发人员之外的人还是无法看到这个结果。所以后续还是需要修改hive表结构,使其代码中的属性名和hive表的字段名相对应。

写在最后:

        1.所有写到hdfs上的内容都需要进行匹配(目前仅测试了parquet格式下的),包含flink、spark或者是sqoop等,如果导入的数据的列名与Hive建表时定义的列名不一致,会导致Hive中查询到数据为null,因为Hive默认使用列名来访问Parqeut数据文件,可以通过参数 set parquet.column.index.access=true 来修改访问方式。

        2.在Hive和Impala中,默认访问Parquet数据文件的方式不一样,Hive是以列名,Impala是以位置,这一点需要注意。