前言:准备使用hive作数据仓库,因历史遗留问题,原先遗留的数据处理都是impala处理的,数据文件是parquet文件,因本身集群资源少,而处理的文件很大,准备使用hive离线分析将小文件推送到db或者impala进行展示操作。
准备:搭建cdh5.9,将原有的数据从一个集群迁移到现有的集群。对数据按照天进行动态分区,分区数据仍然使用parquet格式。
问题:因分区字段为timestamp类型,一个偶然的机会发现了一个诡异的问题,hive查询的时间比impala查询的时间多了8个小时,和原始数据进行比对发现hive处理的timestamp数据有问题。
Based on this discussion it seems that when support for saving t

在将数据从一个CDH5.9集群迁移到另一个时,发现Hive查询Parquet文件中的timestamp比Impala多了8小时。问题源于Hive的timestamp在Parquet中不使用标准的LogicalType,而是与Impala的实现兼容。解决方案是通过Hive的to_utc_timestamp函数转换时间,并用ORCFile存储,但Impala不支持ORCFile,最终采用妥协方案:Hive离线处理后推送到Impala或DB,保存为Impala支持的格式。
最低0.47元/天 解锁文章
456

被折叠的 条评论
为什么被折叠?



