Importazione di dati Vertica su Sqop
Domanda
Sto iniettando i dati Vertica su Sqop1 su un cluster MapR.Io uso la seguente query:
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
.
Questa query mi dà un errore che
Caused by: com.vertica.util.ServerException: [Vertica][VJDBC](4856) ERROR: Syntax error at or near "."
.
Ho letto https://GRUPPI.google.com/a/clouDera.org/forum/#!MSG/CDH-URUM/XIBWVC_EOP0/TVHANQFVCV4J Per ottenere maggiori informazioni su questo, ma non era abbastanza utile in quanto hanno fornito risultati su Sqop2. Quando eseguo questa query:
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
.
Dà un errore: relazione "TableName" non esiste.
Ho aggiunto i vasi Vertica-JDK richiesti anche nella biblioteca Sqop.
Qualsiasi aiuto per quanto riguarda come menzionare il nome dello schema in Sqop per Vertica?
Soluzione 2
Ho cambiato la dichiarazione per --query e lo schema.Table funziona bene lì.Quindi la dichiarazione è:
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'
. Altri suggerimenti
È possibile specificare il nome dello schema da utilizzare nella stringa di connessione come questa:
- Connetti "JDBC: Vertica: // *******: 5433 / db_name? searchpath= myschema"