hadoop - 通过sqoop在汉娜上导入sap bw

标签 hadoop sap sqoop hana sap-bw

目前,我正在尝试导入带有sqoop的SAP HANA表。在这里,我遇到表名称和列名称都包含正斜杠“/”的问题。
对于表名,我可以使用查询选项并将表名转义为解决方法。但是,如果要使用不同的映射器导入表,则希望将-m选项与--split-by结合使用。在这里,我无法在列名称中指定“/”,而不会出现以下错误。

20/06/26 08:05:02 ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: com.sap.db.jdbc.exceptions.JDBCDriverException: SAP DBTech JDBC: [257] (at 12): sql syntax error: incorrect syntax near "/": line 1 col 12 (at pos 12)
由sqoop生成的查询如下所示
SELECT MIN(/SOMETHING/KEY_COLUMN), MAX(/SOMETHING/KEY_COLUMN) FROM (select * from SCHEMA."/SOMETHING/TABLE_NAME") AS t1
该声明:
sqoop import -D org.apache.sqoop.splitter.allow_text_splitter=true \
--driver com.sap.db.jdbc.Driver \
--connect jdbc:sap://alias:port/ \
--split-by "/SOMETHING/KEY_COLUMN" \
--target-dir /target-dir \
--delete-target-dir \
--query "select * from SCHEMA.\"/SOMETHING/TABLE_NAME\" where 1=1 AND \$CONDITIONS" \
--as-parquetfile \
--username username \
--password pw \
--num-mappers 4 \
--verbose
如何正确转义--split-by列?

最佳答案

它与使用

--split - by "("/SOMETHING/KEY_COLUMN")"\



sqoop
import -D org.apache.sqoop.splitter.allow_text_splitter = true\
  --driver com.sap.db.jdbc.Driver\
  --connect jdbc: sap: //alias:port/ \
  --split - by "(\"/SOMETHING/KEY_COLUMN\")"\
  --target - dir / target - dir\
  --delete - target - dir\
  --query "select * from SCHEMA.\"/SOMETHING/TABLE_NAME\" where 1=1 AND \$CONDITIONS"\
  --as - parquetfile\
  --username username\
  --password pw\
  --num - mappers 4\
  --verbose

关于hadoop - 通过sqoop在汉娜上导入sap bw,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62589008/

相关文章:

hadoop - 在 Hive 中创建外部 Avro 表时,Sqoop 导入为 Avro 数据文件时将所有值都设为 NULL

hadoop - 替换 sqoop 进程输出

sql - 使用 sqoop 和 hive 将分隔列值获取到不同的行中

hadoop - 插入 Hive 中的托管表如何影响其他表中的数据?

hadoop - 在数据仓库中处理大数据

java - QTP 在 IE 窗口中的 Java 框架中的浏览器框架中查找对象?

python - SAP通过Python(PyRFC)加载数据

hadoop - 使用yarn和hadoop 2.2.0进行的各种作业统计

java - 充分利用Hadoop伪分布式模式下的所有核心

c# - 可以将 Visual Studio 2017 与 SAP .NET 连接器 3.0 一起使用吗?