英文:
Read the data from Google Cloud Sql to BigQuery using Clud Dataflow
问题
我们实际上计划使用CloudDataflow从CloudSql读取数据并导入BigQuery。当我尝试运行下面提到的代码时,出现了错误,提示"未提供驱动程序类名"。
链接:https://github.com/GoogleCloudPlatform/DataflowTemplates/blob/master/src/main/java/com/google/cloud/teleport/templates/JdbcToBigQuery.java
有人知道如何为这行代码"options.getDriverClassName()"传递值吗?
英文:
We are actually planning to read the data from CloudSql into BigQuery using CloudDataflow. When i tried to run the below mentioned code, i got the error saying "Driver class name is not provided".
Does anybody know on how to pass the value for this line of code "options.getDriverClassName()"?
答案1
得分: 1
@Panciz, @guillaume blaquiere
我自己找到了解决方案。如果您查看下面的谷歌链接
我们需要传递上述链接中提到的参数。由于我是从IntelliJ运行“JdbcToBigQuery” Dataflow模板的,我将这些参数作为程序参数传递,如下所示,并且它起作用了。
--project=<谷歌云项目名称>
--stagingLocation=gs://<位置>
--gcpTempLocation=gs://<位置>
--serviceAccount=<用于dataflow的服务账号>
--runner=DirectRunner
--driverJars=gs://<位置>/postgres-socket-factory-1.0.15-jar-with-dependencies.jar
--bigQueryLoadingTemporaryDirectory=gs://<位置>
--driverClassName=org.postgresql.Driver
--connectionURL=jdbc:postgresql://google/<您的谷歌云Postgres数据库名称>?cloudSqlInstance=<您的谷歌云项目名称>:europe-west1:<您的谷歌云Postgres实例名称>&socketFactory=com.google.cloud.sql.postgres.SocketFactory&useSSL=false
--username=<您的用户名>
--password=<您的密码>
--query="<您的SQL查询>"
--outputTable=<您的谷歌云项目名称>:<您的谷歌云数据集名称>.<您的谷歌云表名称>
--connectionProperties=unicode=true&characterEncoding=UTF-8
英文:
@Panciz, @guillaume blaquiere
I myself found out the solution for this. if you check the below link from Google
We need to pass the parameters that are mentioned in the above link. Since, i was running the "JdbcToBigQuery" Dataflow template from IntelliJ, I passed these parameters as Program Arguments as mentioned below, and it worked.
--project=<google cloud project name>
--stagingLocation=gs://<location>
--gcpTempLocation=gs://<location>
--serviceAccount=<service account for dataflow>
--runner=DirectRunner
--driverJars=gs://<location>/postgres-socket-factory-1.0.15-jar-with-dependencies.jar
--bigQueryLoadingTemporaryDirectory=gs://<location>
--driverClassName=org.postgresql.Driver
--connectionURL=jdbc:postgresql://google/<your google cloud postgres db name>?cloudSqlInstance=<your google cloud project name>:europe-west1:<your google cloud postgres instance name>&socketFactory=com.google.cloud.sql.postgres.SocketFactory&useSSL=false
--username=<your username>
--password=<your passsowrd>
--query="<your sql query>"
--outputTable=<your google cloud project name>:<your google cloud dataset name>.<your google cloud table name>
--connectionProperties=unicode=true&characterEncoding=UTF-8
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论