Importation de données Vertica sur SQOP
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
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?
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"