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’,并且必须分桶
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)