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 分区表,结果和第二张图一样,搞定!

相关推荐
IT毕设梦工厂13 小时前
计算机毕业设计选题推荐:基于大数据的印度上市公司财务指标数据可视化分析|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hadoop·python·信息可视化·spark·课程设计·大数据毕设项目
爱吃火鸡面呀18 小时前
HDFS 文件读取流程深度解析:从客户端请求到数据落地的完整链路
大数据·hadoop·hdfs
程序员小羊!18 小时前
医疗数据仓库ODS层敏感信息防护实战:7大关键策略
数据仓库
kaoa00019 小时前
Linux入门攻坚——89、Hadoop-1-架构及概念
大数据·linux·hadoop·分布式
BYSJMG20 小时前
计算机毕业设计选题推荐:基于大数据的水质多指标关联分析与可视化的设计与实现,Spark 加 K-Means 做水质分群
大数据·hadoop·信息可视化·数据分析·spark·kmeans·课程设计
计算机源码社21 小时前
【大数据项目实战】基于Python数据挖掘的新能源车充电行为关联风险分析研究-基于Hadoop+Spark的电动汽车故障多维数据可视化
大数据·hadoop·python·数据挖掘·spark·毕业设计·课程设计
欢迎来到祖安!1 天前
企业微信 API 接口能力介绍:支持消息收发、图片发送、表情互动、联系人管理等多场景应用
java·前端·数据仓库·spring cloud·企业微信
磁场转动100万匹2 天前
大数据入门:Hadoop 与 MapReduce 学习路线
大数据·hadoop·mapreduce
崖边看雾2 天前
Hadoop —— HDFS 写数据流程
大数据·hadoop·hdfs
陈年老古董2 天前
Python模拟MapReduce分治思想 | 从单文件统计到大文件拆分聚合 学习笔记
开发语言·hadoop·笔记·python·学习