Sqoop用--schema参数导出到postgres

时间:2015-02-20 00:58:31

标签: postgresql hadoop mapreduce export sqoop

使用Sqoop将数据导出到postgresql时,有没有办法提到不同的架构?基于URL http://sqoop.apache.org/docs/1.4.4/SqoopUserGuide.html,我需要使用“--schema”这很奇怪,它不起作用。我也尝试使用“--schema”,但结果仍然相同。 “--schema”与list-tables命令一起使用,但不与“export”命令一起使用。任何帮助将受到高度赞赏。

3 个答案:

答案 0 :(得分:5)

终于奏效了。为了使用“--schema”,我们需要在最后提供该选项,而不是在中间。所以这个会起作用:

--connect jdbc:postgresql://xxx/abcd --username xxx --password xxx --table xxx --input-fields-terminated-by '\001' --input-lines-terminated-by '\n' --num-mappers 8 --input-null-string '\\N' --input-null-non-string '\\N' --export-dir /user/hadoop/xxx -- --schema stage

虽然这个不起作用:

--connect jdbc:postgresql://xxx/abcd --username xxx --password xxx  -- --schema stage --table xxx --input-fields-terminated-by '\001' --input-lines-terminated-by '\n' --num-mappers 8 --input-null-string '\\N' --input-null-non-string '\\N' --export-dir /user/hadoop/xxx

默认情况下,您可能会考虑在提及表名之前放置模式名称,但这不起作用。如果这些信息包含在Sqoop文档中,那就太好了。

答案 1 :(得分:0)

是的,在sqoop导出语句的末尾使用---schema效果很好。

默认情况下,在sqoop导出中会选择架构“ dbo”。

答案 2 :(得分:0)

<块引用>

必须使用一组额外的破折号(即 --schema )将 -- 参数与其余参数分开,并且 --schema 参数必须放在最后。

参考:Sqoop Export Cookbook