前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hive分区表表结构发生变动可能带来的问题?

Hive分区表表结构发生变动可能带来的问题?

作者头像
挽风
发布2021-04-22 15:46:20
8890
发布2021-04-22 15:46:20
举报
文章被收录于专栏:小道

  首先,由于业务场景的需求调整可能会需要修改一些已经存在的表结构,比如增加字段、修改字段类型等,所以可能会有一些隐藏因素导致后续查询和插入数据报错;

原始数据表结构

代码语言:javascript
复制
create external table ordercount
(
	channel string,
	platform string,
	whetherornotbuy int,
	headcount int,
	order_count int,
	order_time string
)
partitioned by (dt string comment '分区')
ROW FORMAT SERDE
	'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
STORED AS INPUTFORMAT
	'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT
	'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
location 
	'hdfs://path/ordercount';
代码语言:javascript
复制
alter table ordercount change cloumns order_count order_count string cascade

  后期由于业务需求变更需要将表结构进行变更,此时如果为空表可以直接删除该表,清除HDFS相应数据,并重新创建,避免各种未知问题;如果该表已经存有数据,则需要使用cascade指令强制新的分区元数据和旧的分区元数据保持一致,具体查看cascade的使用,否则会导致后续查数据或者插数据出现问题;

  还有可能遇到的问题的业务场景是:直接用hadoop命令复制删除hive存储数据后,需要add partition或alter来同步源数据信息,否则drop表等操作时会查询元数据metastore,查到metastore信息和hdfs信息不一致,会报错。这个也可算是hive的bug,尚未修复,但也可以理解为初衷不建议直接操作hdfs数据。,具体解决方案查看使用MSCK命令修复Hive表分区;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/04/14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档