hive表修改字段类型没有级连导致历史分区报错

一:问题背景

修改hive的分区表时有级连概念,指字段的最新状态,默认只对往后的分区数据生效,而之前的分区保留历史元数据状态。好处就是修改语句的效率很快,坏处就是如果历史分区的数据还有用,那就回发生分区元数据和表元数据的不一致报错

最终导致:presto或hive任务抽取历史分区会报如下的错误

bash 复制代码
There is a mismatch between the table and partition schemas. 
The types are incompatible and cannot be coerced. The column 'xxxx' 
in table 'xxxx' is declared as type 'string', 
but partition 'xxxx' declared column 'xxxxx' as type 'double'.

二:想要避免这样的问题,那元数据正确的改动方法,应该是使用hive的客户端,运行修改语句时,带上级连关键字CASCADE,如新增一个字段

bash 复制代码
alter table table_name add columns (column_1 string,column_2 string) CASCADE

而此时你已经发生没有级连问题时,只能用hive客户端把历史分区整个用alter的方式删掉,重新生成

三:特殊情况

1、如果你改的是一个全量表,此时没有级联的概念,你的修改最多的会导致数据改动时引擎发现已有数据类型和你要改的类型不一样,说白了就是无论做任何修改都要保证元数据的一致性

2、hive在改动字段元数据时一般不做前置检查,只会在你后期使用时报相应的错误,但是随着版本不同,后有前置检查的情况

3、上面这个问题如果你不想重新跑数据,那么情况允许可以使用spark引擎跑任务,因为spark没有级连的概念,始终和表元数据看齐,但是hive或者presto这些引擎有,遇到这样的情况就会报错

相关推荐
卷毛迷你猪12 小时前
快速实验篇(B07 )Session 会话化与序列
大数据·hive·hadoop
卷毛迷你猪13 小时前
快速实验篇(B08)搜索词分析实战
大数据·hive·hadoop
计算机源码社16 小时前
基于Spark的租房数据挖掘与可视化平台构建研究 基于K-Means与PCA的租房价值洞察与可视化分析
大数据·hadoop·数据挖掘·spark·毕业设计·kmeans·课程设计
一隅论数智17 小时前
给AI Agent一颗“私域大脑“:本体增强的工程化之路
大数据·运维·数据仓库·人工智能·笔记·学习·政务
IT毕设梦工厂17 小时前
计算机毕业设计选题推荐:基于大数据的巧克力销售数据分析与可视化|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hadoop·mysql·数据挖掘·数据分析·spark·课程设计
IT毕设梦工厂18 小时前
计算机毕业设计选题推荐:基于大数据的青少年体质健康数据可视化与分析|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hadoop·信息可视化·数据挖掘·数据分析·spark·课程设计
卷毛迷你猪19 小时前
快速实验篇(B10)品类共现与关联规则实战
大数据·hive·hadoop
卷毛迷你猪19 小时前
快速实验篇(B09)城市维度分析,均匀随机字段的识别与证明
大数据·hive·hadoop
卷毛迷你猪2 天前
快速实验篇(B06)页面单跳转化率
大数据·hive·hadoop
IT毕设梦工厂2 天前
计算机毕业设计选题推荐:基于大数据的气象站地面观测数据分析与可视化|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hadoop·信息可视化·数据挖掘·数据分析·课程设计·大数据毕设项目