繁体   English   中英

插入语句花费太长时间

[英]HIve insert statement taking too long

我在一个文件(test.hql)中有200条Insert语句将它们插入到ORC格式的配置单元表中,每次插入都需要花费大量时间(40秒),从而使整个过程花费将近2个小时。 有办法加快速度吗?

我本可以创建一个tmp(文本格式)表,然后进行简单的插入覆盖,但这是不允许的。我无法创建新的DDL。->一种选择是在外壳中破坏test.hql并在并行进程中执行。 还有什么其他方法可以使Hive本身快速插入这些插件?

许多插入语句比单个语句慢。 使用UNION ALL将200个插入片段转换为单个插入片段:

INSERT INTO TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...)] 
select value1 as col1, value2 as col2... coln from default.dual union all
select value1 as col1, value2 as col2... coln from default.dual union all
...
select value1 as col1, value2 as col2... coln from default.dual;

更好的是,您可以创建一个输入文件并立即加载到表中。

创建具有特定行格式(带有定界符)的表

创建以','结尾的表测试(a字符串,b字符串)行格式字段,并存储为文本文件;

然后将数据加载到其中,

将DATA inpath“ / path”加载到表table_name中;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM