Импорт данных vertica в sqoop

Я ввожу данные vertica в sqoop1 в кластере mapr. Я использую следующий запрос:

 sqoop import -m 1 --driver com.vertica.jdbc.Driver --connect "jdbc:vertica://*******:5433/db_name" --password "password" --username "username" --table "schemaName.tableName" --columns "id" --target-dir "/t" --verbose

Этот запрос выдает ошибку, которая

Caused by: com.vertica.util.ServerException: [Vertica][VJDBC](4856) ERROR: Syntax error at or near "."

Я прочитал https://groups.google.com/a/cloudera.org/forum/#!msg/cdh-user/xIBwvc_eOp0/TvhANQfvcv4J для получения дополнительной информации по этому поводу, но это не очень помогло, поскольку они дали результаты на Sqoop2.

Когда я запускаю этот запрос:

sqoop import -m 1 --driver com.vertica.jdbc.Driver --connect "jdbc:vertica://*******:5433/db_name" --password "password" --username "username" --table "tableName" --columns "id" --target-dir "/t" --verbose

Выдает ошибку: отношение "tableName" не существует.

Я также добавил необходимые банки vertica-jdk в библиотеку sqoop.

Любая помощь относительно того, как указать имя схемы в sqoop для vertica?


person Shilpa    schedule 05.06.2014    source источник
comment
Были ли у вас какие-либо дополнительные результаты по сравнению с первым, которыми вы могли бы поделиться? Хотелось бы, чтобы сгенерированный INSERT или COPY использовался. Вы также можете найти его в таблице query_requests или в vertica.log.   -  person woot    schedule 05.06.2014
comment
Я не вижу запрос в таблице query_requests. Но ошибка, показанная на консоли, была обновлена ​​​​в сообщении.   -  person Shilpa    schedule 07.06.2014
comment
Когда вы выполняете первую команду, вы не получаете никаких строк сообщений INFO, DEBUG и ERROR? Я ожидал, что выполняемые запросы будут в строке INFO, поскольку вы используете --verbose.   -  person woot    schedule 08.06.2014
comment
pastebin.com/SzzUMcX7 пожалуйста, обратитесь к этому для получения дополнительной информации. Он содержит все данные, отображаемые на консоли.   -  person Shilpa    schedule 09.06.2014


Ответы (2)


Вы можете указать имя схемы для использования в строке подключения следующим образом:

--connect "jdbc:vertica://*******:5433/db_name?searchpath=myschema"

person Brock Owen    schedule 29.07.2015

Я изменил оператор на --query, и schema.table там работает нормально. Итак, утверждение:

sqoop import -m 1 --driver com.vertica.jdbc.Driver --connect "jdbc:vertica://*****:5433/dbName" --password "*****" --username "******" --target-dir "/tmp/cdsdj" --verbose --query 'SELECT t.col1 FROM schema.tableName t where $CONDITIONS'
person Community    schedule 09.06.2014
comment
Приятно видеть, что вы придумали обходной путь. Мне все еще любопытно, почему это не сработало изначально, sqoop должно быть каким-то образом генерирует какой-то несовместимый SQL. - person woot; 13.06.2014
comment
Знаете ли вы какой-нибудь способ, с помощью которого мы видим SQL, на котором работает sqoop? Теперь я столкнулся с проблемами с его экспортом в vertica с некоторой синтаксической ошибкой vertica. Поэтому было бы здорово узнать, что внутри работает sqoop. - person Shilpa; 13.06.2014
comment
Вообще, я думал, что вы могли видеть это с --verbose. В базе данных вы можете посмотреть query_requests. - person woot; 13.06.2014
comment
Нет, я не могу найти какие-либо операторы экспорта, запускаемые sqoop, в моей экспортируемой таблице. - person Shilpa; 14.06.2014