hive怎么实现update *** 作

hive怎么实现update *** 作,第1张

由于hive数仓的特性,不容许数据进行修改,造成hive中的数据更新活着删除很困难的问题,自hive

0.11版本之后,hive也尝试在测试环境允许进行update和delte *** 作,但这些 *** 作还不成熟,不敢在生产环境放心使用,其中也有一样不足。

create

table

test_temp

(

id

string,

name

string,

age

string

)

comment

'临时表'

partitioned

by

(y

string,m

string,d

string)

row

format

delimited

fieldsterminated

by','

stored

as

textfile

create

table

test

(

id

string,

name

string,

age

string

)

comment

'最终表'

row

format

delimited

fieldsterminated

by','

stored

as

orcfile

1.1.

初始化

1.通过hive数据load的方式先把数据加载到test_temp表中(此处也可以通过sqoop进行数据抽取,不再详述)。

load

data

local

inpath

'/home/hadoop/a.txt'

overwrite

intotable

test_temp

2.通过hive

insert

overwrite的方式把临时表的数据加载到最终表test中。

insertintotable

test

select

id,name,age

from

test_temp

Hive3的update速度1S。

UPDATE的功能是更新表中的数据。这的语法和INSERT的第二种用法相似。必须提供表名以及SET表达式,在后面可以加WHERE以限制更新的记录范围。

hive-site.xml

不要加此配置 不要加此配置 不要加此配置 说三遍

加了会报错 FAILED: RuntimeException Unable to set up transaction database for testing: Can't call rollback when autocommit=true

建表有要求 支持update格式要为orc的表,要指定transactional=true’,并且必须分桶


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10826933.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存