ラベルを使用したリソースのフィルタリング
ラベルを使用してリソースをフィルタリングするには、次のいずれかを行います。
- Google Cloud コンソールの検索バーを使用します。
- API、bq コマンドライン ツール、またはクライアント ライブラリを使用してフィルタ指定を作成します。
制限事項
- API、bq コマンドライン ツール、クライアント ライブラリでは、データセットのみに対するフィルタリングがサポートされています。
- ジョブは、BigQuery ツールのラベルでフィルタできません。
始める前に
このドキュメントの各タスクを実行するために必要な権限をユーザーに与える Identity and Access Management(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 コンソールで、[エクスプローラ] ペインに移動します。
検索バーに、
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は一意である必要があります。 - フィルタには最大 10 個の条件を含めることができます。
- フィルタする際には大文字と小文字が区別されます。
- 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"
次のコマンドを入力して、department:shipping ラベルを持つ myotherproject 内のデータセットを一覧表示します。
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 ドキュメントでラベルの使用について読む。