我们这样做时,不使用命名管道 (mkfifo),而是使用标准匿名 shell 管道:
hive -e "select whatever FROM wherever" | \
dd bs=1M | \
/opt/vertica/bin/vsql -U $V_USERNAME -w $V_PASSWORD -h $HOST $DB -c \
"COPY schema.table FROM LOCAL STDIN DELIMITER E'\t' NULL 'NULL' DIRECT"
Run Code Online (Sandbox Code Playgroud)
这对我们来说非常有效。请注意 hive 和 vsql 之间的“dd”。要使其正常工作,这是必需的。很难给你很好的数字,因为我们的 Hive select 语句实际上并不简单,而且我不知道时间花在哪里(hive 处理或数据加载)。
但是说实话,像您一样使用命名管道或像我们一样使用无名管道是一种很好的方法,并且在系统级别没有太多可以优化的地方。不过,有一些事情需要考虑:
| 归档时间: |
|
| 查看次数: |
1540 次 |
| 最近记录: |