GCP BigQuery 数据传输服务中的错误:找不到适合 jdbc:redshift:// 的驱动程序

Posted

技术标签:

【中文标题】GCP BigQuery 数据传输服务中的错误:找不到适合 jdbc:redshift:// 的驱动程序【英文标题】:Error in GCP BigQuery Data Transfer Service: No suitable driver found for jdbc:redshift:// 【发布时间】:2021-01-20 14:06:33 【问题描述】:

我们按照 Google Cloud Platform 链接 https://cloud.google.com/bigquery-transfer/docs/redshift-migration#console 设置从 AWS RedShift 到 BigQuery 数据集的数据传输。但是我们收到以下错误:

18:51:01 无法继续:无法使用提供的参数连接:找不到适合 jdbc:redshift://redshift-xyz-bq.c7nxtqwerty23.us-east-1.redshift.amazonaws.com 的驱动程序: 5439/开发 18:50:30 转移加载日期:20210120 18:50:29 调度运行到 id xxxxxxx 的数据源

我们验证了所有必需的参数并确保正确设置了值。你能帮忙解决这个问题吗? 提前谢谢你。

【问题讨论】:

该错误表明您没有安装正确的驱动程序(或者至少没有加载)。 感谢 Mark,因为我们正在从 GCP 控制台执行此任务,因此我们无法控制 GCP 后端实现中使用的驱动程序。 【参考方案1】:

感谢大家的及时建议。实际上,错误信息误导了我们。问题在于 AWS 子网以某种方式不允许我们进入(可能是 RedShift 子网组中的私有子网;在删除 POC 环境之前看不到真实细节)。一旦我们使用只有公共子网的子网组创建了 RedShift 集群,它就运行得非常好。希望这可以在某个时间点对某人有所帮助。

【讨论】:

Zamir,我遇到了同样的错误,尽管我已经设置了 *** 连接并根据需要提供了私有 IP 范围。你有更多细节吗?【参考方案2】:

请记住,根据 [1],“使用以前的 jdbc:postgresql://endpoint:port/database 格式指定的 JDBC URL 仍然有效”

因此,我建议您将驱动程序 URL 的开头从 jdbc:redshift 更改为 jdbc:postgresql

如果之前的更改不起作用,请查看以下相关问题[2]至[6],因为驱动程序URL不匹配时似乎经常抛出此异常(请特别注意使用single和双引号)或在尝试建立连接之前尚未注册驱动程序时。

我希望这有助于解决您遇到的问题 :)

[1]:

https://docs.aws.amazon.com/redshift/latest/mgmt/configure-jdbc-connection.html#obtain-jdbc-url

[2]:

SQLException: No suitable driver found

[3]:

No suitable driver found for 'jdbc:mysql://localhost:3306/mysql

[4]:

The infamous java.sql.SQLException: No suitable driver found

[5]:

How to fix: "No suitable driver found for jdbc:mysql://localhost/dbname" error when using pools?

[6]:

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/dbname

【讨论】:

感谢 rodvictor,因为这些活动是从 GCP 控制台 (UI) 执行的,因此最终用户无法修改驱动程序特定的配置。我检查了您的所有链接,但它们与在我们可以控制配置的某些自定义应用程序中使用 JDBC 有关。 最好让链接成为正文的自然部分,而不是像现在这样列出它们。如果您列出它们,请考虑使用实际编号的列表。 我们甚至尝试在 URL 中使用 jdbc:postgresql 而不是 jdbc:redshift 但结果相同。

以上是关于GCP BigQuery 数据传输服务中的错误:找不到适合 jdbc:redshift:// 的驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

GCP:IAM 和 BigQuery

在 gcp 中读取和写入 bigquery。啥服务?

如何从本地机器访问 GCP bigquery API?

当没有数据上传到 GCP 中的 BigQuery 表时创建警报

Python 2.7 和 GCP Google BigQuery:捕获文件加载错误?

GCP将数据作为字符串从GCS中的CSV文件加载到BigQuery表中