建立已儲存的查詢
在查詢編輯器中撰寫 SQL 時,您可以儲存查詢並與他人共用。儲存的查詢是 BigQuery Studio 程式碼資產,由 Dataform 提供支援。
如要進一步瞭解如何刪除已儲存的查詢及管理已儲存的查詢記錄,請參閱「管理已儲存的查詢」一文。
所需權限
設定適當的權限,即可建立、編輯或查看已儲存的查詢。
所有具備 Dataform 管理員角色 (roles/dataform.admin) 的使用者,都能以擁有者身分存取專案中建立的所有已儲存查詢。
如要進一步瞭解 BigQuery Identity and Access Management (IAM),請參閱「使用身分與存取權管理功能控管存取權」。
建立已儲存查詢的權限
如要建立及執行已儲存的查詢,您必須具備下列 IAM 權限:
dataform.locations.getdataform.locations.listdataform.repositories.listdataform.repositories.create
您可以透過下列 IAM 角色取得這些權限:
- BigQuery 工作使用者 (
roles/bigquery.jobUser) - BigQuery 讀取工作階段使用者 (
roles/bigquery.readSessionUser) - 程式碼建立者 (
roles/dataform.codeCreator)
編輯已儲存查詢的權限
如要編輯及執行已儲存的查詢,您必須具備下列 IAM 角色:
- BigQuery 工作使用者 (
roles/bigquery.jobUser) - BigQuery 讀取工作階段使用者 (
roles/bigquery.readSessionUser) - 程式碼編輯器 (
roles/dataform.codeEditor)
查看已儲存查詢的權限
如要查看及執行已儲存的查詢,您必須具備下列 IAM 角色:
- BigQuery 工作使用者 (
roles/bigquery.jobUser) - BigQuery 讀取工作階段使用者 (
roles/bigquery.readSessionUser) - 程式碼檢視器 (
roles/dataform.codeViewer)
已儲存查詢的安全考量
由於 BigQuery 中的程式碼資產是由 Dataform 支援,因此請考慮以下安全影響,以確保使用者能存取這些資產:
- 程式碼資產的可見度取決於專案層級的 Dataform 權限。擁有
dataform.repositories.list權限的使用者 (包含在標準 BigQuery 角色中,例如「BigQuery Job User」、「BigQuery Studio User」和「BigQuery User」),可以在專案的 Google Cloud 「Explorer」面板中查看所有程式碼資產,無論這些資產是由他們建立,還是與他們共用。如要限制瀏覽權限,可以建立排除dataform.repositories.list權限的自訂角色。 - 與 Dataform 服務代理程式共用的任何密鑰,都可能遭到可編輯這些資產的使用者存取。為確保憑證安全,請限制只有信任的使用者可以建立及編輯憑證,並限制 Dataform 服務代理程式可存取的密鑰。詳情請參閱「在套件安裝期間存取密鑰」。
詳情請參閱「Dataform 權限的安全考量」。
設定程式碼資產的預設區域
Google Cloud 專案中的所有新程式碼資產都會使用預設區域。資產建立後,就無法變更區域。
如要為新的程式碼資產設定預設區域,請按照下列步驟操作:
前往「BigQuery」頁面
點選左側窗格中的 「檔案」,開啟檔案瀏覽器:
在專案名稱旁,按一下 「查看檔案面板動作」>「切換程式碼區域」。
選取要設為預設的程式碼區域。
按一下 [儲存]。
如需支援的區域清單,請參閱「BigQuery Studio 位置」。
使用 CMEK 加密
您可以為 Dataform 支援的已儲存查詢,使用客戶自行管理的加密金鑰 (CMEK) 加密,方法是為 Dataform API 使用預設專案層級的 CMEK 金鑰。您無法在 Google Cloud 控制台中,對已儲存的查詢套用個別 CMEK 金鑰。新設定只會套用至新建立的已儲存查詢。
如要進一步瞭解如何設定預設金鑰,請參閱使用 CMEK 保護 BigQuery Studio 程式碼資產。
建立已儲存的查詢
如要建立已儲存的查詢,請按照下列步驟操作:
前往 Google Cloud 控制台的「BigQuery」頁面。
按一下 「SQL 查詢」。
在查詢編輯器中輸入有效的 SQL 查詢。舉例來說,您可以查詢公開資料集:
SELECT name, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name ORDER BY total DESC LIMIT 10;
或者,您也可以使用「參考」面板建構新查詢。
按一下「儲存」
>「儲存查詢」,或按下 Ctrl+S 鍵 (在 macOS 上為 Command+S 鍵)。在「儲存查詢」對話方塊中,輸入已儲存的查詢的名稱。
選用:如要變更這項已儲存的查詢和所有其他程式碼資產日後使用的區域,請在「區域」欄位中選取新區域。
按一下 [儲存]。
系統會建立儲存查詢的第一個版本。
選用:儲存查詢後,您可以使用下列工具列查看查詢詳細資料或版本記錄、新增註解,或是回覆現有註解或取得相關連結:

「註解」工具列功能為預先發布版。如要提供意見回饋或尋求這項功能的支援,請傳送電子郵件至 bqui-workspace-pod@google.com。
共用已儲存的查詢
如要與使用者共用已儲存的查詢,請先授予該使用者已儲存查詢的存取權,並將他們新增至適當的 IAM 角色。然後產生已儲存的查詢的連結,並與使用者共用該連結。
與您共用查詢的使用者只會看到最新版本的查詢。 系統不會在共用查詢中顯示您尚未明確儲存的自動儲存變更。
如要分享已儲存的查詢,請按照下列步驟操作:
前往 Google Cloud 控制台的「BigQuery」BigQuery頁面。
在左側窗格中,按一下「檔案」,開啟檔案瀏覽器。
如果沒有看到左側窗格,請按一下 「Expand left pane」(展開左側窗格),開啟窗格。
在「檔案」窗格中展開專案和子資料夾,找出要共用的已儲存的查詢。
依序點選已儲存的查詢旁的 「查看動作」、「共用」>「管理權限」。
在「管理權限」窗格中,按一下「新增使用者/群組」。
在「New principals」(新增主體) 欄位中輸入主體。
在「Role」(角色) 清單中,選取下列其中一個角色:
選用:如要查看完整的角色清單和進階共用設定,請按一下「進階共用設定」。
按一下 [儲存]。
如要返回已儲存的查詢詳細資料,請按一下「關閉」。
如要產生已儲存的查詢連結,請依序點選「查看動作」>「分享」>「複製連結」。
連結即會複製到剪貼簿。
將已儲存的查詢版本開啟為新查詢
如要將現有已儲存查詢的任何版本開啟為新查詢,請按照下列步驟操作:
前往 Google Cloud 控制台的「BigQuery」頁面。
點選左側窗格中的 「檔案」,開啟檔案瀏覽器:
如果沒有看到左側窗格,請按一下 「Expand left pane」(展開左側窗格),開啟窗格。
在「Files」窗格中展開專案和子資料夾,找出要開啟的已儲存的查詢。
按一下已儲存的查詢,然後點選「版本記錄」。
按一下已儲存的查詢版本旁的 「查看動作」,然後點選「以新查詢開啟」。
更新已儲存的查詢
停止輸入文字兩秒後,系統會自動儲存您對已儲存的查詢文字所做的變更,並在「版本記錄」中顯示為「您的變更」。自動儲存的變更並非查詢的新版本。 您開啟查詢時,系統會重新顯示自動儲存的變更,但除非您明確將變更儲存為查詢的新版本,否則其他人都看不到這些變更。自動儲存的查詢會顯示在「預覽」中。
前往 Google Cloud 控制台的「BigQuery」頁面。
點選左側窗格中的 「檔案」,開啟檔案瀏覽器:
如果沒有看到左側窗格,請按一下 「Expand left pane」(展開左側窗格),開啟窗格。
在「Files」窗格中,展開專案和子資料夾,找出要更新的已儲存的查詢。
按一下已儲存的查詢即可開啟。
修改查詢。
如要儲存修改後的查詢,請依序點按
「儲存查詢」>「儲存查詢」,或按下 Ctrl + S 鍵 (在 macOS 上為 Command + S 鍵)。系統會建立查詢的新版本。
上傳已儲存的查詢
您可以上傳本機 SQL 查詢,在 BigQuery Studio 中做為已儲存的查詢使用。上傳已儲存的查詢後, Google Cloud 控制台的 BigQuery 頁面也會顯示該查詢。
如要上傳已儲存的查詢,請按照下列步驟操作:
前往 Google Cloud 控制台的「BigQuery」頁面。
點選左側窗格中的 「檔案」,開啟檔案瀏覽器:
如果沒有看到左側窗格,請按一下 「Expand left pane」(展開左側窗格),開啟窗格。
在「檔案」窗格中,依序點選要上傳查詢的資料夾旁邊的「查看動作」圖示 >「上傳」>「查詢」。
在「Upload SQL」(上傳 SQL) 對話方塊的「SQL」欄位中,按一下「Browse」(瀏覽),然後選取要上傳的查詢。
選用:在「SQL 名稱」欄位中,編輯查詢名稱。
在「Region」(區域) 欄位中,選取要上傳已儲存的查詢的區域。
按一下「上傳」。
您可以透過「檔案」或「Explorer」窗格存取已儲存的查詢。
傳統版已儲存查詢
請參閱下列章節,瞭解如何建立及更新傳統儲存的查詢。如要進一步瞭解如何共用、遷移及刪除傳統版已儲存查詢,請參閱「傳統版已儲存查詢」。
傳統版已儲存查詢的必要權限
如要建立、查看、更新及刪除傳統儲存查詢,必須要有以下 IAM 權限:
- 不公開的傳統版已儲存查詢:
- 建立不公開的傳統已儲存查詢不需要任何特殊權限。您可以在任何專案中儲存不公開的查詢,但只有您可以查看、更新或刪除該查詢。
- 專案層級的傳統版已儲存查詢:
- 建立專案層級的傳統版已儲存的查詢需要擁有
bigquery.savedqueries.create權限。bigquery.admin這個預先定義的角色具備bigquery.savedqueries.create權限。 - 查看專案層級的傳統版已儲存的查詢需要擁有
bigquery.savedqueries.get與bigquery.savedqueries.list權限。bigquery.admin和bigquery.user這些預先定義的角色具備bigquery.savedqueries.get與bigquery.savedqueries.list權限。 - 更新專案層級的傳統版已儲存的查詢需要擁有
bigquery.savedqueries.update權限。bigquery.admin這個預先定義的角色具備bigquery.savedqueries.update權限。 - 刪除專案層級的傳統版已儲存的查詢需要擁有
bigquery.savedqueries.delete權限。bigquery.admin這個預先定義的角色具備bigquery.savedqueries.delete權限。
- 建立專案層級的傳統版已儲存的查詢需要擁有
- 公開的傳統版已儲存查詢:
- 建立公開的傳統已儲存查詢不需要任何特殊權限。您可以在任何專案中儲存公開的傳統版已儲存的查詢,但只有您可以更新或刪除查詢。擁有連結的任何人都可查看公開的已儲存傳統查詢。
如要進一步瞭解 BigQuery 中的 IAM 角色,請參閱預先定義的角色與權限一文。
建立傳統版已儲存的查詢
前往 Google Cloud 控制台的「BigQuery」頁面。
按一下 「SQL 查詢」。
在查詢編輯器中輸入有效的 SQL 查詢。舉例來說,您可以查詢公開資料集:
SELECT name, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name ORDER BY total DESC LIMIT 10;
依序點按「儲存查詢 (傳統版)」
>「儲存查詢 (傳統版)」。在「Save query」(儲存查詢) 對話方塊中,輸入查詢的名稱,然後將「Visibility」(瀏覽權限) 設定為下列其中一個選項:
- 個人 (只能由您編輯):不公開的傳統版已儲存的查詢。
- 專案 (可由具備適當權限的主體編輯),適用於專案層級的傳統版已儲存的查詢。
- 公開:傳統版儲存的公開查詢。
按一下 [儲存]。
共用傳統版已儲存的查詢
您可以共用已設為專案或公開瀏覽權限的傳統版已儲存查詢。專案層級瀏覽權限可讓具備必要權限的主體檢視、更新或刪除查詢。公開瀏覽權限可讓擁有查詢連結的任何人查看查詢,但無法更新或刪除查詢。
如要與其他使用者共用傳統版已儲存的查詢,請產生並分享傳統版已儲存查詢的連結。
如要執行傳統共用查詢,使用者必須能存取查詢所存取的資料。詳情請參閱「授予資料集存取權」。
如果您打算共用已儲存的傳統查詢,請考慮在查詢中加入說明其用途的註解。
如要分享傳統已儲存的查詢,請按照下列步驟操作:
點選左側窗格中的 「Explorer」。
如果沒有看到左側窗格,請按一下 「Expand left pane」(展開左側窗格),開啟窗格。
在「Explorer」窗格中展開專案,然後按一下「(傳統版) 查詢」。
找出並按一下要授予存取權的傳統已儲存查詢。 您可以使用搜尋功能或篩選器尋找查詢。
按一下查詢旁的 「View actions」(查看動作),然後按一下「Copy link」(複製連結)。
將連結分享給要授予查詢存取權的使用者。
更新傳統版已儲存的查詢
前往 Google Cloud 控制台的「BigQuery」頁面。
點選左側窗格中的 「Explorer」。

如果沒有看到左側窗格,請按一下 「Expand left pane」(展開左側窗格),開啟窗格。
在「Explorer」窗格中,展開專案和「(Classic) Queries」資料夾,以及「Project queries」資料夾 (如有需要)。
按一下已儲存的傳統查詢名稱即可開啟。
修改查詢。
如要儲存修改後的查詢,請依序點按「儲存查詢 (傳統版)」
>「儲存查詢 (傳統版)」。
後續步驟
- 瞭解如何管理已儲存的查詢。