如何从PostgreSQL数据库(JDBC)读取数据并写入BigQuery?

时间:2018-10-02 15:50:30

标签: google-bigquery google-cloud-dataflow

我的数据库中有一个共享VPC的GCP项目。

从另一个项目开始,我启动了google数据流,并尝试连接数据库,但总是得到“ 连接尝试失败。”,因为它找不到我提供的主机名在我的application.yml中。

如果我在此Big Query项目(具有共享的VPC网络)中创建一个VM实例,并安装PostgreSQL客户端,则可以连接到该数据库。

我检查了this question,但看不到连接数据库的答案。

我也尝试通过运行带有子网参数complete or short form URL的maven compile来尝试,但还是没有运气。

下面是我从cloudshell运行的命令:

mvn compile exec:java -Dexec.mainClass=com.myurl.spring.beam.pipeline.SpringBeamPipelineLauncher \
-Dexec.args="--project=test-big-query \
--stagingLocation=gs://test-big-query/test/ \
--runner=DataflowRunner \
--jobName=dataflow-dryrun \
--springContextClass=com.myurl.bi.gcdf.sqlloader.config.PipelineConfig \
--bootstrapOptionClass=com.myurl.spring.beam.pipeline.options.BootstrapOptions \
--entryPoint=com.myurl.bi.gcdf.sqlloader.SQLLoaderEntryPoint \
--subnetwork=https://www.googleapis.com/compute/v1/projects/NAMEOFVPCHOSTPROJECT/regions/us-central1/subnetworks/NAMEOFVPCNETWORK"

1 个答案:

答案 0 :(得分:0)

可以确认要指定子网名称而不是vpc名称吗?

--subnetwork=https://www.googleapis.com/compute/v1/projects/NAMEOFVPCHOSTPROJECT/regions/us-central1/subnetworks/MYSUBNET"

如果可以使用 MYSUBNET 中的客户端访问pgsql实例,则指定上面的参数应该可以。