【问题标题】:GCP BigQuery message "Not found: Connection" when I use a connection in scripting当我在脚本中使用连接时,GCP BigQuery 消息“未找到:连接”
【发布时间】:2021-04-14 00:59:20
【问题描述】:

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

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

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

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

这个 sn-p 给我一个错误 “未找到:连接 myconnectionid 在 [2:14]”

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

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

非常感谢您的帮助

谢谢!!

【问题讨论】:

  • 您是否尝试过输入连接的完整 ID(格式为 project-id:location-id:instance-id),如 documentation 中的示例所示?
  • 在这两种情况下都非常适合我 - 具有短连接 ID 和完整 ID。同时(这与您当前的问题无关,但很可能是下一个问题)在查询末尾添加限制 1 - 否则您将收到 scalar subquery producing more than one element 错误

标签: google-cloud-platform google-bigquery google-cloud-sql


【解决方案1】:

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

解决方法可能是:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 2021-02-17
    • 1970-01-01
    • 2018-04-30
    • 1970-01-01
    • 2022-06-12
    相关资源
    最近更新 更多