繁体   English   中英

使用 Google 的 Dataflow 时尝试使用 JDBC 到 BigQuery 模板时出现异常

[英]Exception when trying to use JDBC to BigQuery template when using Google's Dataflow

我正在尝试使用 Google 的 Dataflow 使用 JDBC to BigQuery模板将信息从Salesforce提取到BigQuery 我使用的 JDBC 驱动程序是Progress' DataDirect JDBC Driver for Salesforce

我已经确认我可以在本地使用驱动程序连接到 Salesforce。

不幸的是,当我使用驱动程序在 Dataflow 中创建作业时,出现以下异常:

java.lang.RuntimeException:org.apache.beam.sdk.util.UserCodeException:java.sql.SQLException:无法获得连接,池错误无法激活对象

如有必要,我可以提供堆栈跟踪。

我已按如下方式配置模板(其中 <> 中的值已适当设置):

Regional endpoint: us-central1
JDBC connection URL string: jdbc:datadirect:sforce://path.to.salesforce.com;SecurityToken=<Security Token>;User=<User>;Password=<Password>
JDBC driver class name: com.ddtek.jdbc.sforce.SForceDriver
JDBC source SQL query: SELECT Email FROM LEAD;
BigQuery output table: <project>:<dataset>.<table_name>
GCS paths for JDBC drivers: gs://<some_bucket>/sforce.jar
Temporary directory for BigQuery loading process: gs://<some_bucket>/staging
Temporary location: gs://<some_bucket>/tmp

我希望熟悉此用例的人能够帮助我确定为什么会出现此异常以及如何解决它。 我的工作假设是我错误地使用了驱动程序,我需要向 GCS 添加其他驱动程序,或者通过 Dataflow 连接到 Salesforce 时出现问题。

编辑:

我使用的 Progress 的 JDBC 驱动程序是 6.0 版。 我不确定在使用 UI 时使用的是哪个版本的 Dataflow SDK,但是当我尝试在本地使用 Google Dataflow SDK 时,看起来我使用的是基于 pom.xml 的 2.5.0 版。

我没有发现 JDBC 和 Dataflow 版本之间有任何相关问题,因此我建议您查看 Progress 网站上的以下教程,以了解您是否正确使用了驱动程序:

  1. 设置 Google Cloud Dataflow SDK
  2. 使用 Dataflow 将数据从 Salesforce 导入 Google Bigquery

如果异常仍然存在,请按照本指南创建 GCP 问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM