hive分区表加字段后insert字段为空

hive分区表加字段insert字段为空

原因

哈喽朋友们,昨天又在生产环境遇到一个分区表加字段后,insert 进去字段为空的问题。原因是要在分区表中加字段,一般为了不影响历史数据都通过alter table table_name add columns 加字段,环境依旧是华为云DataArts。

现象

字段加完以后,运行完etl之后,查询发现对应字段竟然都是空的!

赶紧查下select 有没有问题。

代码完全没问题,那问题就出在元数据上。通过show create table table_name 发现字段都add上去在最后呀,为啥?

即便是MSCK repair table table_name 修复元数据也没有用。

表存储格式是PARQUET‌列式存储。

解决方案

加字段时加上一个关键字:CASCADE

这样加上去的字段能够在历史分区上都生效,不然新加的字段只会在新的分区上生效。

sql 复制代码
ALTER TABLE table_name ADD COLUMNS (fk_sbt_spu bigint COMMENT '销售产品id') 
改成 
ALTER TABLE table_name ADD COLUMNS (fk_sbt_spu bigint COMMENT '销售产品id') CASCADE

另外,如果字段已经通过不带CASCADE关键字的add语句加到了分区表上面,咋整?

①通过ALTER TABLE table_name replace columns(保留一个历史字段) CASCADE 把表结构元数据刷掉;

②再ALTER TABLE table_name replace columns(所有最新字段) CASCADE 刷新整个分区表的元数据(含历史分区);

③再执行etl进行数据插入,历史分区新增字段就有数据了。这样就不用重建表了。

最后再跑下select 分区表,结果和第二张图一样,搞定!

相关推荐
小马过河R18 小时前
数据仓库入门:是什么、怎么做、和数据库有什么区别?
大数据·数据库·数据仓库·架构·驾驭工程·fde
BYSJMG21 小时前
计算机毕业设计选题推荐|【基于大数据的城市噪音数据可视化分析】Spark+K-Means+FP-Growth实战
大数据·hadoop·信息可视化·spark·课程设计
慧一居士3 天前
Apache StreamPark 功能和使用场景介绍、使用步骤详细示例
数据仓库
牛奶咖啡133 天前
大数据Hadoop运维应用实践——Hadoop平台常见问题与故障汇总、系统调优、网络规划与硬件存储选型
大数据·hadoop·hadoop集群操作系统调优·hadoop集群运维问题汇总·hadoop集群硬件规划·大数据平台网络规划·大数据平台硬件存储选型
雨晨源码(同名B站)3 天前
基于Python的网易云音乐评论数据情感化分析系统 音乐爬虫信息可视化 |SnowNLP评论情感分析
开发语言·hadoop·爬虫·python·信息可视化·毕业设计
赤土 炙焱3 天前
hiveserver2启动失败,磁盘满了
hive·hadoop
慧一居士3 天前
Hologres 功能及使用场景介绍,实践详细步骤示例
数据仓库
哥本哈士奇4 天前
dbt+SQLServer构建数据仓库(10):macro 以及 data vault的应用实例
大数据·数据仓库·sqlserver
Francek Chen4 天前
【大数据处理与分析】数据仓库Hive:02 数据湖
大数据·数据仓库·hive·hadoop·分布式·数据分析
自由能燃气设备6 天前
燃气容积式热水器厂家选购指南:2026年商用热水设备采购避坑手册
大数据·数据库·数据仓库·人工智能