繁体   English   中英

当我在脚本中使用连接时,GCP BigQuery 消息“未找到:连接”

[英]GCP BigQuery message "Not found: Connection" when I use a connection in scripting

我正在使用 GCP 大查询。 我定义了一个外部连接“myconnectionid”。 此连接的连接类型为“Cloud SQL - MySQL”,它适用于从 bigquery 到 cloudsql mysql 实例的运行联合查询,如下所示。

SELECT * FROM 
EXTERNAL_QUERY("myconnectionid","SELECT CURDATE() from Dual;")

但是,当我尝试声明一个 SQL 变量并将联合查询的返回值分配给该变量时(我想这相当于 bigquery 脚本),我收到一条消息“未找到:Connection myconnectionid”。 请参阅下面导致代码片段错误的示例

DECLARE MYDATE DATE;
SET MYDATE = (SELECT * FROM 
EXTERNAL_QUERY("myconnectionid","SELECT CURDATE() from Dual;"))

此代码段给我一个错误“未找到:[2:14] 处的连接 myconnectionid”

gcp bigquery 外部连接是否需要在脚本中进行特殊处理? 或者更简单地说; 你知道我如何克服这个错误吗?

我正在阅读关于连接的谷歌文档https://cloud.google.com/bigquery/docs/working-with-connections#federated_query_syntax以及关于大查询脚本的谷歌文档https://cloud.google.com/bigquery /docs/reference/standard-sql/scripting还没有运气。

非常感谢您的帮助

谢谢 !!

我觉得您可能遇到了一个错误,即您的查询未路由到正确的区域(您定义了连接的区域)。

解决方法可能是:

  • 在 UI 中:查询设置 -> 附加设置 -> 处理位置,选择您定义连接的位置/区域
  • 或者,在查询中,引用与连接位于同一位置的数据集中的实体,例如,添加类似SELECT dataset_in_that_location.f();

在我最初遇到这个问题并遇到完全相同的问题后将近两年,我创建了一个新的数据库和连接

我能让它工作的唯一明确方法是确保 BQ 数据库、外部连接和云 SQL 数据库位于完全相同的区域中。

所以带走的是 => 如果你计划使用 BQ“联合查询”,那么确保 BQ 数据库、外部连接和云 SQL 数据库位于完全相同的区域!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM