使用標籤篩選資源
如要使用標籤篩選資源,請執行下列其中一項操作:
- 使用 Google Cloud 控制台中的搜尋列。
- 建立用於 API、bq 指令列工具或用戶端程式庫的篩選規格。
限制
- API、bq 指令列工具和用戶端程式庫僅支援對資料集進行篩選。
- 您無法在任何 BigQuery 工具中使用標籤篩選工作。
事前準備
授予身分與存取權管理 (IAM) 角色,讓使用者擁有執行本文件各項工作所需的權限。
所需權限
如要使用標籤篩選資源,您必須具備擷取資源中繼資料的權限,如要使用標籤篩選資源,您需要下列 IAM 權限:
bigquery.datasets.get(可篩選資料集)bigquery.tables.get(可篩選資料表和檢視表)
下列每個預先定義的 IAM 角色都包含篩選資料集所需的權限:
roles/bigquery.userroles/bigquery.metadataViewerroles/bigquery.dataViewerroles/bigquery.dataOwnerroles/bigquery.dataEditorroles/bigquery.admin
下列預先定義的 IAM 角色都包含篩選表格和檢視畫面所需的權限:
roles/bigquery.metadataViewerroles/bigquery.dataViewerroles/bigquery.dataOwnerroles/bigquery.dataEditorroles/bigquery.admin
此外,如果您有 bigquery.datasets.create 權限,可以篩選您建立的資源。
如要進一步瞭解 BigQuery 中的 IAM 角色和權限,請參閱預先定義的角色與權限一文。
在 Google Cloud 控制台中篩選資源
如要產生資源的篩選清單,請使用 Google Cloud 控制台:
前往 Google Cloud 控制台的「Explorer」窗格。
在搜尋列中,輸入
key或key:value組合。搜尋結果會包含所有部分相符的結果。舉例來說,如只要顯示具有
department:shipping標籤的資料集,您可以輸入department或department:shipping。
在 API 或 bq 指令列工具中篩選資料集
API、bq 指令列工具和用戶端程式庫僅支援對資料集進行篩選。
如要使用 API、bq 工具或用戶端程式庫來篩選資料集,請建立並使用篩選規格:
- 做為 bq 工具中
--filter標記的參數 - 做為 API
datasets.list方法中filter屬性的值
篩選規格的限制
篩選規格有下列限制:
- 僅支援
AND邏輯運算子。系統會將以空格分隔的比較結果,視為具有隱性AND運算子。 - 唯一符合篩選規格的欄位是
labels.key,其中key是標籤的名稱。 - 篩選運算式中的每個
key都不得重複。 - 篩選規格最多可以包含十個運算式。
- 篩選規格須區分大小寫。
- API、bq 指令列工具和用戶端程式庫僅支援對資料集進行篩選。
篩選規格範例
篩選規格使用下列語法:
"field[:value][ field[:value]]..."
更改下列內容:
field表示為labels.key,其中 key 是標籤鍵。value是選用的標籤值。
下列範例說明如何產生篩選器運算式。
如要列出具有 department:shipping 標籤的資源,請使用下列篩選規格:
labels.department:shipping
如要列出使用多個標籤的資源,請以空格分隔 key:value 組合。空格會被視為邏輯 AND 運算子。舉例來說,如要列出具有 department:shipping 和 location:usa 標籤的資料集,請使用下列篩選規格:
labels.department:shipping labels.location:usa
您可以單獨篩選某個鍵是否存在,而非比對鍵/值組合。無論值為何,下列篩選規格都會列出所有已加上 department 標籤的資料集:
labels.department
等效的篩選規格會使用星號來表示所有與 department 鍵相關聯的可能值:
labels.department:*
您也可以在篩選規格中使用標記。舉例來說,如要列出所有具備 department:shipping 標籤和 test_data 標記的資源,可使用下列篩選規格:
labels.department:shipping labels.test_data
在 bq 指令列工具和 API 中篩選資料集
如要使用 API、bq 指令列工具或用戶端程式庫來篩選資料集,請按照以下步驟操作:
bq
發出含有 --filter 旗標的 bq ls 指令。如果要列出預設專案以外的專案資料集,請指定 --project_id 旗標。
bq ls \ --filter "filter_specification" \ --project_id project_id
更改下列內容:
filter_specification是有效的篩選規格。project_id是您的專案 ID。
範例:
輸入下列指令,列出預設專案中含有 department:shipping 標籤的資料集:
bq ls --filter "labels.department:shipping"
輸入下列指令,列出預設專案中含有 department:shipping 標籤和 test_data 標記的資料集。
bq ls --filter "labels.department:shipping labels.test_data"
輸入下列指令,列出 myotherproject 中含有 department:shipping 標籤的資料集:
bq ls --filter "labels.department:shipping" --project_id myotherproject
各指令的輸出內容會傳回資料集清單,如下所示:
+-----------+ | datasetId | +-----------+ | mydataset | | mydataset2| +-----------+
API
呼叫 datasets.list API 方法,並使用 filter 屬性提供篩選規格。
Go
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Go 設定操作說明進行操作。詳情請參閱 BigQuery Go API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Java 設定操作說明進行操作。詳情請參閱 BigQuery Java API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Node.js
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Node.js 設定操作說明進行操作。詳情請參閱 BigQuery Node.js API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Python 設定操作說明進行操作。詳情請參閱 BigQuery Python API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
後續步驟
- 瞭解如何為 BigQuery 資源加上標籤。
- 瞭解如何在 BigQuery 資源中查看標籤。
- 瞭解如何在 BigQuery 資源中更新標籤。
- 瞭解如何在 BigQuery 資源中刪除標籤。
- 請參閱 Resource Manager 說明文件中的使用標籤。