Sqoop导出中的--direct参数如何与Vertica一起使用?

时间:2015-10-30 18:02:24

标签: vertica sqoop

将大量数据从HDFS导出到Vertica时出现Too many ROS containers ...错误。我知道direct有一个vsql COPY选项,它将绕过WOS并将数据加载到ROS容器中。我还注意到Sqoop Export中的--directsee this Sqoop User Guide。我只是想知道这两个"直接"具有相同的功能。

我尝试修改了MoveOutIntervalMergeOutInterval之类的Vertica配置参数......但这并没有多大帮助。

所以有人知道Sqoop导出的direct模式是否有助于解决ROS容器问题。谢谢!

1 个答案:

答案 0 :(得分:2)

--direct仅受特定数据库连接器的支持。由于Vertica没有一个,因此您将使用Generic JDBC。我真的怀疑使用--direct做了什么...但如果你真的想测试这个,你可以查看query_requests中发送的语句。

select * 
from query_requests
where request_type = 'LOAD'
and start_timestamp > clock_timestamp() - interval '1 hour'

这将显示过去一小时内的所有加载语句。 sqoop语句应转换为COPY。我真的希望无论如何!如果它是一堆INSERT ... VALUES语句,那么我强烈建议不要使用它。如果它没有生成COPY,那么您需要更改上面的查询以查找INSERT

select * 
from query_requests
where request_type = 'QUERY'
and request ilike 'insert%'
and start_timestamp > clock_timestamp() - interval '1 hour'

让我知道你在这里找到了什么。如果它正在进行INSERT...VALUES那么我可以告诉你如何修复它(但它有点工作)。