Вопрос

Я впрыскиваю данные 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» не существует.

Я добавил необходимые jars jdk в библиотеке sqoop.

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

Это было полезно?

Решение 2

Я изменил оператор toquery, а 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'
.

Другие советы

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

- Connect "JDBC: Vertica: // *******: 5433 / db_name? SearchPath= myschema"

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top