在脚本中使用连接时"Not found: Connection" GCP BigQuery 消息



我正在使用GCP bigquery。我有一个外部连接";myconnectionid";定义这种连接是连接类型";云SQL-MySQL";对于从bigquery到cloudsql-mysql实例的正在运行的fedarated查询,它工作得很好,如下所示。

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

然而,当我试图声明一个SQL变量并将联邦查询的返回值分配给该变量时(我想这相当于bigquery脚本(,我得到一条消息";未找到:连接myconnectiond";。请参阅下面导致代码片段错误的示例

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

这个片段给了我一个错误"未找到:连接myconnectiond at[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还没有运气。

非常感谢的帮助

谢谢!!

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

解决方法可能是:

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

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

我能做到这一点的唯一明确方法是确保BQ数据库、外部连接和云SQL数据库位于完全相同的区域。

所以带走是=>如果您计划使用BQ";联合查询";然后确保BQ数据库、外部连接和云SQL数据库位于完全相同的区域!

相关内容

最新更新