从 SAP HANA 导入数据时出现 sqoop 问题

Posted

技术标签:

【中文标题】从 SAP HANA 导入数据时出现 sqoop 问题【英文标题】:sqoop issue while importing data from SAP HANA 【发布时间】:2017-05-04 20:31:13 【问题描述】:

我们目前正在使用 sqoop 将数据从 SAP Hana 移动到 Hadoop。 SAP Hana 表在表名和列名中使用“\”字符。我们的常规 sqoop 命令正在运行,但是当我使用“拆分方式”时它失败了。任何人都可以帮忙。

代码:

/usr/hdp/sqoop/bin/sqoop import \
--connect "jdbc:sap://***-***.**.*****.com:30015" \
--username DFIT_SUPP_USR --password **** \
--driver com.sap.db.jdbc.Driver \
--query  "select '\"/BA1/C55LGENT/\"' FROM \"_SYS_BIC\".\"sap.fs.frdp.300.RDL/BV_RDL_ZAFI______Z_SLPD\" where \$CONDITIONS and (\"/BA1/C55LGENT\") IN  ('0000000671','0000000615') and (\"/BA1/C55LGENT\" != '0000000022') AND (\"/BIC/ZCINTEIND\" ='01') AND (\"/BA1/IGL_ACCOUNT\") IN ( '0000401077', '0000401035') AND (\"/BA1/C55POSTD\">= '20170101'   AND \"/BA1/C55POSTD\" <='20170101')"  \
--target-dir /user/arekapalli/pfit_export_test12 \
--delete-target-dir \
--split-by //BA1//C55LGENT// \
-m 10

以下是我们得到的错误..

原因:com.sap.db.jdbc.exceptions.JDBCDriverException:SAP DBTech JDBC:[257](位于 12):sql 语法错误:“/”附近的语法不正确:第 1 行第 12 行(位于 pos 12)

【问题讨论】:

你看过this或this吗?两种不同的解决方案。搜索了一下,没有好的答案,连bug都发出了也没有解决。 【参考方案1】:

你的问题可能就在这里

--query  "select '\"/BA1/C55LGENT/\"' FROM \"_SYS_BIC\".\"sap.fs.frdp.300.RDL/BV_RDL_ZAFI______Z_SLPD\" where \$CONDITIONS and (\"/BA1/C55LGENT\") IN  ('0000000671','0000000615') and (\"/BA1/C55LGENT\" != '0000000022') AND (\"/BIC/ZCINTEIND\" ='01') AND (\"/BA1/IGL_ACCOUNT\") IN ( '0000401077', '0000401035') AND (\"/BA1/C55POSTD\">= '20170101'   AND \"/BA1/C55POSTD\" <='20170101')"  \

您假设“\”是终端使用的转义字符,这可能是错误的。试试下面的

--query  'select "/BA1/C55LGENT/" FROM "_SYS_BIC"."sap.fs.frdp.300.RDL/BV_RDL_ZAFI______Z_SLPD" where \$CONDITIONS and ("/BA1/C55LGENT") IN  ("0000000671","0000000615") and ("/BA1/C55LGENT" != "0000000022") AND ("/BIC/ZCINTEIND" ="01") AND ("/BA1/IGL_ACCOUNT") IN ( "0000401077", "0000401035") AND ("/BA1/C55POSTD">= "20170101"   AND "/BA1/C55POSTD" <="20170101")'  \

我不是 sap 用户,所以查询可能有问题,无论如何您可以看到我从查询中删除了所有 ' 并且我使用了查询的分隔符

【讨论】:

以上是关于从 SAP HANA 导入数据时出现 sqoop 问题的主要内容,如果未能解决你的问题,请参考以下文章

参数/列未绑定将C#应用程序连接到SAP HANA数据库时出现异常

sqoop从hive导入数据到mysql时出现主键冲突

在 Hadoop 2.7.3 上执行简单 SQOOP 导入命令时出现 Sqoop 错误

SAP HANA中的SLT简介

将数据从 MySQL 加载到 HDFS 时出现 Sqoop 错误

引号中的 Sqoop 导入表参数失败