Question

J'injecte des données Vertica à SQOPO1 sur un cluster MAPR.J'utilise la requête suivante:

 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

cette requête me donne une erreur qui

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

J'ai lu https://groupes.google.com/a/cloudera.org/forum/# "msg/cdh-user/XIBWVVC_EOP0/TVHANQFVCV4J Pour obtenir plus d'informations à ce sujet, mais n'était pas très utile car ils ont donné des résultats sur SQOP2.

Quand j'exécute cette requête:

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

il donne une erreur: la relation "nom de table" n'existe pas.

J'ai ajouté les pots Vertica-JDK requis dans la bibliothèque SQOOOP aussi.

Toute aide sur la façon de mentionner le nom du schéma dans SQOP pour Vertica?

Était-ce utile?

La solution 2

J'ai changé la déclaration à --query et le schéma. La carte fonctionne bien.Donc, la déclaration est la suivante:

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'

Autres conseils

Vous pouvez spécifier le nom du schéma à utiliser dans la chaîne de connexion comme celle-ci:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top