импортировать sap bw поверх hana через sqoop

В настоящее время я пытаюсь импортировать таблицу sap hana с помощью sqoop. Здесь я сталкиваюсь с проблемой, что и имена таблиц, и имена столбцов содержат косую черту /.

Для имен таблиц я могу использовать параметр запроса и экранирование имени таблицы в качестве обходного пути. Но если я хочу импортировать таблицу с помощью разных картографов, я хочу использовать опцию -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?


person RacoonOnMoon    schedule 26.06.2020    source источник
comment
Проверили с помощью `(обратная галочка)?   -  person Snigdhajyoti    schedule 26.06.2020
comment
я пробовал, но он разрешается в пустом поле `/SOMETHING/KEY_COLUMN` ->   -  person RacoonOnMoon    schedule 29.06.2020


Ответы (1)


Он работал с использованием

--split - по (/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

person Kael    schedule 29.06.2020