【发布时间】:2020-02-05 17:36:02
【问题描述】:
根据 Cloud SQL 联合查询文档,可以运行多区域 BigQuery 作业来查询指定多区域所包含的区域中的 Cloud SQL 实例:
BigQuery 多区域可以查询同一位置(美国、欧洲)的任何 Cloud SQL 区域。例如:
BigQuery US 多区域可以查询 Cloud SQL us-central1, us-east4、us-west2 等。
BigQuery EU 多区域可以查询 Cloud SQL europe-north1、europe-west2 等。
但是,当我尝试在 us-east4 中的 Cloud SQL 实例上运行查询时,它的处理位置为 US,它会引发一个神秘错误。
SELECT id FROM EXTERNAL_QUERY("project.us-east4.external_conn_name", "SELECT id FROM users")
拒绝访问:URI:projects/project/locations/us-east4/connections/external_conn_name:APPLICATION_ERROR;google.cloud.bigquery.connection.v1beta1/ConnectionService.GetPrivateConnectionInfo;RPC 错误;AppErrorCode=7;
当使用 us-east4 的处理位置运行相同的查询时,该查询成功完成。
我已经成功运行多区域联合查询大约两个月来执行 ETL 作业,以类似于here 中描述的答案的方式将 us-east4 中的 Cloud SQL 数据加载到美国的 BigQuery 数据集。我的云团队已审核 IAM 更改,似乎没有任何更改可能导致此问题。似乎昨晚谷歌云平台悄悄发布了一些更改,它破坏了我运行的大约 100 个 ETL 作业。我正在争先恐后地想出一个快速解决方案,以便我的公司可以继续使用依赖于这些 ETL 作业的数据。关于如何解决此问题的任何想法?
【问题讨论】:
-
遇到了类似的问题。我们在 us-west2 中部署了 Cloud SQL。我们的大查询数据集是美国多区域。突然间,我们的 bigquery 计划的在两者之间连接的查询中断了。我们使用 BigQuerySource 从 us-west2 cloudsql 获取数据的数据流作业停止工作。并且没有简单的方法可以将 bigquery 数据集从一个区域移动到另一个区域。而且 us-west2 中也没有数据流。我知道 CloudSQL 联合查询是一个 beta 产品。但这是一个如此基本和必不可少的功能......
-
@hufeng03 你做了什么来修复你的坏工作?
-
为了解决这个问题,我们在 us-center1 中添加了我们在 us-west2 中的主云 SQL 数据库的新读取副本。
标签: google-cloud-platform google-bigquery