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