插入语句需要太长时间

时间:2016-10-10 08:31:39

标签: apache hive orc

我在单个文件(test.hql)中有200个Insert语句,以将它们插入到ORC格式的hive表中。每次插入需要很长时间(40秒),使整个过程花费近2个小时。有没有办法加快速度?

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

2 个答案:

答案 0 :(得分:0)

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

Sub concatYears()
Dim lastRow As Long, i As Long, begYr As Long, endYr As Long, yrs As Long, yrStr As String

lastRow = Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To lastRow '<-- assuming data starts from row 2
    begYr = Cells(i, 1).Value
    endYr = Cells(i, 2).Value

    yrStr = ""

    For yrs = begYr To endYr - 1
        yrStr = yrStr & Str(yrs) & ", "
    Next yrs

    yrStr = yrStr & Str(endYr)
    Cells(i, 3).Value = yrStr
Next i

End Sub

答案 1 :(得分:0)

最好你可以创建一个输入文件并立即加载到表中。

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

创建表格测试(字符串,b字符串)行格式字段,以&#39;,&#39;存储为文本文件;

然后将数据加载到其中,

路径中的LOAD DATA&#34; / path&#34;到table table_name;

相关问题