HIVE分区表新增字段后新增字段值为空,需要带分区加字段
2017-11-10 14:32
435 查看
hive分区表新增字段后新增字段值为空的情况。
网上查了资料,提供了两种解决办法:
1. 修改hive元数据SDS表的CD_ID字段,原因是修改表结构后,元数据库中的SDS中该表对应的CD_ID会改变,但是该表分区下面对应的CD_ID还是原来表的CD_ID
2.删除当前分区重建
这两个办法都不太适应,办法1修改元数据库风险大,办法2可能会导致数据丢失。
通过测试发现如下规律,先给出结论:
在分区表里增加字段后,向分区表插入数据有两种情况:
1.分区在修改表结构前存在
2.分区在修改表结构前不存在
对于第二种情况,即加字段后跑的分区,bug不存在
针对第一种情形,
执行alter table HIVE_TALBLE add columns(ttzz string); 查分区数据新增字段值为空,
需再执行alter table
HIVE_TALBLE partition(pt_d='20171111') add columns(ttzz string);【假设当前只有pt_d='20171111'的分区】
网上查了资料,提供了两种解决办法:
1. 修改hive元数据SDS表的CD_ID字段,原因是修改表结构后,元数据库中的SDS中该表对应的CD_ID会改变,但是该表分区下面对应的CD_ID还是原来表的CD_ID
2.删除当前分区重建
这两个办法都不太适应,办法1修改元数据库风险大,办法2可能会导致数据丢失。
通过测试发现如下规律,先给出结论:
在分区表里增加字段后,向分区表插入数据有两种情况:
1.分区在修改表结构前存在
2.分区在修改表结构前不存在
对于第二种情况,即加字段后跑的分区,bug不存在
针对第一种情形,
执行alter table HIVE_TALBLE add columns(ttzz string); 查分区数据新增字段值为空,
需再执行alter table
HIVE_TALBLE partition(pt_d='20171111') add columns(ttzz string);【假设当前只有pt_d='20171111'的分区】
相关文章推荐
- hive分区表增加字段新增字段值为空的bug
- [Hive]Hive分区表新增字段
- hive分区表增加字段会导致新增字段无法显示值的BUG
- 修改hive分区表,在分区列前增加一个字段
- Hive分区表新增字段为null的bug及解决方法
- hive分区表增加字段会导致新增字段无法显示值的BUG
- 分区表分区字段的update操作
- hive的表新增字段后,新增字段不能load数据
- Talend 将Oracle中数据导入到hive中,根据系统时间设置hive分区字段
- Hive 表的复制 & 新增字段
- hive中简单介绍分区表(partition table),含动态分区(dynamic partition)与静态分区(static partition)
- hive 分区表 添加新字段 查询为NULL的情况 我也遇到了这个问题
- [陷阱]HIVE外部分区表一定要增加分区
- hive添加分区字段
- mysql多列分区表,查询只使用第二个字段是否能自动分区裁剪测试
- Hive使用经验-分区字段使用函数查询时分区无效
- Hive分区表添加分区时的注意事项
- hive中简单介绍分区表(partition table)——动态分区(dynamic partition)、静态分区(static partition)
- hive分区表增加字段后,依然查出来为null的处理方式
- hive表新增字段和字段注释修改