分享

请教hive分区表删除数据

zouzhi 发表于 2017-4-14 18:46:52 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 7 25478
前提条件是要产出一个分区表中的部分数据,但是不知道数据在哪个分区。

已有(7)人评论

跳转到指定楼层
2017 发表于 2017-4-14 19:29:24
本帖最后由 2017 于 2017-4-14 19:31 编辑

对于删除的话,应该有分区和无分区是一样的。直接在后面加入条件试试
列如下面
A表数据如下

id(String)        name(String)

----------------------------

1                       aaa

2                       bbb

3                       ccc

-----------------------------

要求删除2        bbb

hive脚本如下:

insert overwrite table A select id,name from A where id !=2;

回复

使用道具 举报

zouzhi 发表于 2017-4-15 00:13:33
2017 发表于 2017-4-14 19:29
对于删除的话,应该有分区和无分区是一样的。直接在后面加入条件试试
列如下面
A表数据如下

请测试后再回复,尽量不要回复猜测。谢谢。


我这样问说明我测试是分区表和非分区表一定是不同我才会来问。
回复

使用道具 举报

einhep 发表于 2017-4-15 09:29:19
楼主想删除什么样的数据,为何还不知道分区。批量删除??还是什么背景
回复

使用道具 举报

zouzhi 发表于 2017-4-15 09:53:38
einhep 发表于 2017-4-15 09:29
楼主想删除什么样的数据,为何还不知道分区。批量删除??还是什么背景

比如要根据客户号删除一个客户信息,但是假设并不知道它在哪个分区?怎么删除?
回复

使用道具 举报

einhep 发表于 2017-4-15 10:29:04
zouzhi 发表于 2017-4-15 09:53
比如要根据客户号删除一个客户信息,但是假设并不知道它在哪个分区?怎么删除?

这种场景恐怕不存在。而且也没见支持,传统数据库中也没见到过。
如果不知道分区,可以通过查询,得到数据信息。然后在删除。

回复

使用道具 举报

zouzhi 发表于 2017-4-15 11:07:29
einhep 发表于 2017-4-15 10:29
这种场景恐怕不存在。而且也没见支持,传统数据库中也没见到过。
如果不知道分区,可以通过查询,得到数 ...

传统数据库你删除数据要指定分区?你这玩笑开大了。。。
回复

使用道具 举报

desehawk 发表于 2017-4-15 12:56:06
本帖最后由 desehawk 于 2017-4-15 13:55 编辑
zouzhi 发表于 2017-4-15 11:07
传统数据库你删除数据要指定分区?你这玩笑开大了。。。

楼主对的
传统数据库确实不需要的指定分区的,直接在后面加条件即可删除
照楼主的说法,它是不支持的。那么einhep的方法到是一种解决办法。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条