引号中的 Sqoop 导入表参数失败
Posted
技术标签:
【中文标题】引号中的 Sqoop 导入表参数失败【英文标题】:Sqoop import table parameter in quotes failing 【发布时间】:2018-07-06 04:52:04 【问题描述】:我正在尝试使用 sqoop 导入命令将数据从 SAP Hana 数据库导入到 hadoop,但它通过给出类似“hadoop::Poc.Emp”的表名而失败。 HANA 区分大小写,因此表名应在“”中。
sqoop import --connect "jdbc:localhost --username user --password pass --table "hadoop::Poc.Emp"
Execute getColumnInfoRawQuery : **SELECT t.* FROM hadoop::Poc.Emp AS t WHERE 1=0**
sql syntax error: incorrect syntax near "::Poc": line 1 col 17 (at pos 17)
我想要像SELECT t.* FROM "hadoop::Poc.Emp" AS t WHERE 1=0
这样的命令
不知怎的,我通过转义得到了这个
- sqoop import --connect "jdbc:localhost --username user --password pass --table \"\"hadoop::Poc.Emp\"\"
成功了 - Execute getColumnInfoRawQuery : SELECT t.* FROM "hadoop::Poc.Emp" AS t WHERE 1=0
但是后来这个错误来了 -
Finished writing jar file /tmp/sqoop-user/compile/dc0865e35ce739f216bd542d71222201/"hadoop::Poc.Emp".jar
Import failed: java.net.URISyntaxException: Relative path in absolute URI: "hadoop::Poc.Emp%22
谁能帮帮我?
【问题讨论】:
【参考方案1】:“hadoop::Poc.Emp”到底是什么类型的对象?您是否使用 HANA 客户端工具验证了名称? 您是尝试导入 Hive 还是仅导入 HDFS 中的 /user/ 目录?
【讨论】:
'hadoop::Poc.Emp' 是一个表名。我只想导入到 /user/ 目录 我认为这不是 HANA 中的有效表名,或者至少对于 Sqoop 作为表名而言。尝试不带“.”的表名和'::' 这是一个有效的。格式就像命名空间后跟上下文后跟表名,我知道没有“。”和 '::' 它会起作用,但根据数据库的当前结构,这是我们的限制以上是关于引号中的 Sqoop 导入表参数失败的主要内容,如果未能解决你的问题,请参考以下文章
phpmyadmin (CSV) 中的 MySQL 导入阻塞引号