多区域Cloud SQL联合BigQuery查询无法运作

手枪

根据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:项目/项目/位置/ us-east4 / connections / external_conn_name:APPLICATION_ERROR; google.cloud.bigquery.connection.v1beta1 / ConnectionService.GetPrivateConnectionInfo; RPC错误; AppErrorCode = 7;

在使用us-east4的处理位置运行时,此查询成功完成。

我已经成功运行了两个月的多区域联合查询,以执行ETL作业,以类似于此处所述答案的方式将us-east4中的Cloud SQL数据加载到美国的BigQuery数据集我的云团队已经审核了IAM更改,并且似乎没有任何更改可能导致此问题。似乎昨晚Google Cloud Platform进行了一些静默发布的更改,它破坏了我运行的约100个ETL作业。我正努力提出一个快速解决方案,以便我的公司可以继续使用依赖于这些ETL作业的数据。关于如何解决此问题的任何想法?

手枪

我已就此向GCP提交了多个问题,但仍未收到回复。希望这会尽快解决。

这是修复此问题的方法:

  1. 使用与Cloud SQL实例位于同一区域(us-east4)的数据集目标运行以上提取作业
  2. 将上面的数据导出到与步骤1相同区域的GCS存储桶(us-east4)
  3. 运行Cloud Storage Transfer Service作业,将GCS存储桶中的数据复制到与最终目标BigQuery数据集(US)相同的多个区域中的GCS存储桶
  4. 将多区域GCS存储桶中的数据加载到多区域BigQuery数据集中

这将快速可靠的一步式ETL变成了昂贵的四步式ETL,其中涉及大量中间存储。Google,请解决此问题!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章