我试着用 --query
选项从sql server导入数据。我关心的是,如何在sql server中声明要与--query一起使用的模式。
我的剧本:
sqoop \
--options-file sqoop/aw_mssql.cfg \
--query "select BusinessEntityId, LoginID, cast(OrganizationNode as string) from Employee where \$CONDITIONS" \
--hive-table employees \
--hive-database mssql \
-- --schema=HumanResources
仍然会产生错误
对象名“employee”无效
也试过了
--connect "jdbc:sqlserver://192.168.1.17;database=AdventureWorks;schema=HumanResources"
但这也失败了。
3条答案
按热度按时间ycl3bljg1#
-schema
可以与-table
,但与-query
. 想想这意味着什么,它需要解析查询的文本并用两部分的名称替换每个不合格的表引用,而不是已经是两部分、三部分或四部分名称的表引用。并完全匹配后端的语法规则(在本例中为sql server)。这是不可行的。在查询中显式指定架构:
68bkxrlz2#
您正在使用的sqoop命令缺少一些东西。首先,您需要指定这是一个sqoop导入作业。除此之外,您的查询需要有一个连接字符串。此外,我不知道你是什么参数内传递的选项文件,所以如果你已经张贴了详细信息,它会更容易,我不确定的
-- --schema=HumanResources
我没见过的东西。正确的sqoop示例查询是:此外,使用时请记住这一点
--query
您不需要指定--table
工具,否则将抛出错误。bqf10yzr3#
您可以尝试以下代码: