本篇教程探讨了大数据技术 Hive分区表动态添加字段,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。
<
场景描述:
公司埋点项目,数据从接口服务写入kafka集群,再从kafka集群消费写入HDFS文件系统,最后通过Hive进行查询输出。这其中存在一个问题就是:埋点接口中的数据字段是变化,后续会有少量字段添加进来。这导致Hive表结构也需要跟着变化,否则无法通过Hive查询到最新添加字段的数据。
解决办法:
为数据表添加字段,字段必须添加到已有字段的最后面。因为已经存在的数据是按照之前的表结构写入到HDFS文件中的,当添加新字段时为了能兼容前面已经存在的数据。在新增的字段加到分区表后,之前已经存在分区表中的数据会为这些新增的字段赋予默认值NULL。
具体操作:
hive> show databases; //查询当前所有数据库
OK
db_hive_test
default
Time taken: 0.014 seconds, Fetched: 2 row(s)
Hive> use default;
hive> show create table bp_rec_session; //显示表结构及相关配置信息
OK
CREATE TABLE `bp_rec_session`(
`appversion` string,
……
`cpucs` string)
PARTITIONED BY (
`idate` string)
RO