Pergunta

Estou injetando dados vertica no sqoop1 em um cluster mapr.Eu uso a seguinte consulta:

 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

Esta consulta me dá um erro que

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

Eu leio https://groups.google.com/a/cloudera.org/forum/#!msg/cdh-user/xIBwvc_eOp0/TvhANQfvcv4J para obter mais informações sobre isso, mas não foi muito útil, pois forneceram resultados no Sqoop2.

Quando executo esta consulta:

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á um erro:A relação "tableName" não existe.

Eu adicionei os jars vertica-jdk necessários na biblioteca sqoop também.

Alguma ajuda sobre como mencionar o nome do esquema no sqoop para vertica?

Foi útil?

Solução 2

Mudei a instrução para --query e o schema.table está funcionando bem lá.Então a afirmação é:

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'

Outras dicas

Você pode especificar o nome do esquema a ser usado na cadeia de conexão assim:

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top