簡體   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