[英]Exception when trying to use JDBC to BigQuery template when using Google's Dataflow
I'm trying to use Google's Dataflow using the JDBC to BigQuery
template to extract information from Salesforce
into BigQuery
.我正在尝试使用 Google 的 Dataflow 使用 JDBC to
BigQuery
模板将信息从Salesforce
提取到BigQuery
。 The JDBC Driver I am using is Progress' DataDirect JDBC Driver for Salesforce .我使用的 JDBC 驱动程序是Progress' DataDirect JDBC Driver for Salesforce 。
I've confirmed that I can connect to Salesforce using the driver locally.我已经确认我可以在本地使用驱动程序连接到 Salesforce。
Unfortunately when I create a Job within Dataflow using the driver I get the following exception:不幸的是,当我使用驱动程序在 Dataflow 中创建作业时,出现以下异常:
java.lang.RuntimeException: org.apache.beam.sdk.util.UserCodeException: java.sql.SQLException: Cannot get a connection, pool error Unable to activate object
java.lang.RuntimeException:org.apache.beam.sdk.util.UserCodeException:java.sql.SQLException:无法获得连接,池错误无法激活对象
I can provide a stack trace if necessary.如有必要,我可以提供堆栈跟踪。
I've configured the template as follows (where values within <> are set appropriately):我已按如下方式配置模板(其中 <> 中的值已适当设置):
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
I'm hoping that someone familiar with this use case will be able to help me determine why I'm getting this exception and how I can go about resolving it.我希望熟悉此用例的人能够帮助我确定为什么会出现此异常以及如何解决它。 My working assumptions are that I'm using the driver incorrectly, I need to add additional drivers to GCS, or there is an issue connecting to Salesforce through Dataflow.
我的工作假设是我错误地使用了驱动程序,我需要向 GCS 添加其他驱动程序,或者通过 Dataflow 连接到 Salesforce 时出现问题。
Edit:编辑:
The JDBC driver from Progress that I am using is version 6.0.我使用的 Progress 的 JDBC 驱动程序是 6.0 版。 I'm unsure which version of the Dataflow SDK is being used when I use the UI but when I have tried working with the Google Dataflow SDK locally it looks like I'm using version 2.5.0 based on the pom.xml.
我不确定在使用 UI 时使用的是哪个版本的 Dataflow SDK,但是当我尝试在本地使用 Google Dataflow SDK 时,看起来我使用的是基于 pom.xml 的 2.5.0 版。
I didn't find any relevant issue between the JDBC and Dataflow versions, so I will suggest to take a look on the following tutorials from Progress website to understand if you are using the driver correctly:我没有发现 JDBC 和 Dataflow 版本之间有任何相关问题,因此我建议您查看 Progress 网站上的以下教程,以了解您是否正确使用了驱动程序:
and if the exception persist, please create an issue with GCP following this guide如果异常仍然存在,请按照本指南创建 GCP 问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.