Hive修改表中的某个值

打印 上一主题 下一主题

主题 872|帖子 872|积分 2616

Hive要修改表中的某个值,怎样实现?
Hive是一个数据仓库工具,它提供了数据的静态查询功能,而不能处理在线事务。Hive不支持传统的Update、Delete操纵。如果须要修改表中的某个值,可以尝试以下两种方案:
1、创建新表,将原表中的数据复制到新表,并对须要修改的值举行更改,删除原表
1) 创建一个新表,其结构与原表相同
  1. CREATE TABLE tmp_table ...;
复制代码
2) 利用INSERT语句,将原表中的数据复制到新表,并对须要修改的值举行更改
  1. INSERT INTO TABLE tmp_table
  2. SELECT col1,col2,CASE WHEN col3=修改值 THEN 新值 ELSE col3 END,col4,...
  3. FROM src_table;
复制代码
3) 删除原表
  1. DROP TABLE src_table;
复制代码
4) 将新表重定名为原表的名字
  1. ALTER TABLE tmp_table RENAME TO src_table;
复制代码
2、利用INSERT OVERWRITE语句,结合WHERE条件,将原表中的数据复制覆盖回去,并对须要修改的值举行更改
  1. INSERT OVERWRITE TABLE src_table
  2. SELECT col1,col2,col3,col4,... FROM src_table WHERE col3!=修改值
  3. UNION ALL
  4. SELECT col1原来值,col2原来值,col3新值,col4原来值,...;
复制代码
值得留意的是,以上两种方案会将整个表的数据复制一遍,如果表很大,大概会斲丧较多的时间和资源。对于大数据量的情况,可以思量利用MapReduce或Spark平分布式盘算引擎来对数据举行修改
另外,在修改数据之前,不要忘记备份原来的数据!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

美丽的神话

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表