Google cloud platform 数据流:无法在不同位置读写:来源:asia-south1,目的地:us-central1“;

Google cloud platform 数据流:无法在不同位置读写:来源:asia-south1,目的地:us-central1“;,google-cloud-platform,google-bigquery,google-cloud-dataflow,dataflow,Google Cloud Platform,Google Bigquery,Google Cloud Dataflow,Dataflow,我在运行数据流时遇到以下错误。我的数据源位于GCP BQ(asia-south1),目的地是PostgreSQL DB(AWS->Mumbai地区) 我的代码如下: p .apply(BigQueryIO.read().from("datalake:Yearly2020.Sales")) .apply(JdbcIO.<TableRow>write() .withDataSourceConfiguration(JdbcI

我在运行数据流时遇到以下错误。我的数据源位于GCP BQ(asia-south1),目的地是PostgreSQL DB(AWS->Mumbai地区)

我的代码如下:

      p
      .apply(BigQueryIO.read().from("datalake:Yearly2020.Sales"))
      .apply(JdbcIO.<TableRow>write()
     .withDataSourceConfiguration(JdbcIO.DataSourceConfiguration.create("org.postgresql.Driver", "jdbc:postgresql://xx.xx.xx.xx:1111/dbname")
        .withUsername("username")
        .withPassword("password"))
      .withStatement("INSERT INTO Table VALUES(ProductRevenue)")
      .withPreparedStatementSetter(new BQPGStatementSetter()));

    p.run().waitUntilFinish();
gcloud beta dataflow jobs run sales_data \
--gcs-location gs://datalake-templates/Template   \
--region=asia-east1 \
--network=datalake-vpc \
--subnetwork=regions/asia-east1/subnetworks/asia-east1 \

当Bigquery是源时,它运行加载作业,将数据存放在gcs存储桶中。数据暂存在
temp\u location
中,如果未指定
temp\u location
,则使用
staging\u location
中指定的区域

在数据流作业中,您可以使用在
asia south
中创建的bucket指定
temp_location
,因为这是Bigquery数据集所在的位置


此外,如果您正在使用网络和子网络,还建议关闭公共ip,以便通过VPN完成连接。

我们尝试在不使用公共ip的情况下禁用公共ip,但出现错误“无法创建PoolableConnectionFactory”。
gcloud beta dataflow jobs run sales_data \
--gcs-location gs://datalake-templates/Template   \
--region=asia-east1 \
--network=datalake-vpc \
--subnetwork=regions/asia-east1/subnetworks/asia-east1 \