我将Vertica数据注入Mapr群集中的SQOOP1。我使用以下查询:

 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/xxibwvc_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”不存在。

我也在SQOP库中添加了所需的Vertica-jdk jar。

关于如何在SQOOP中为Vertica提及模式名称的帮助?

有帮助吗?

解决方案 2

我将语句更改为-query和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