ラベルを使用したリソースのフィルタリング
ラベルを使用してリソースをフィルタリングするには、次のいずれかを行います。
- Google Cloud コンソールの検索バーを使用します。
- API、bq コマンドライン ツール、またはクライアント ライブラリを使用してフィルタ仕様を作成します。
制限事項
- API、bq コマンドライン ツール、クライアント ライブラリでは、データセットに対してのみフィルタリングをサポートします。
- ジョブは、BigQuery ツールのラベルでフィルタできません。
始める前に
このドキュメントの各タスクを実行するために必要な権限をユーザーに与える Identity and Access Management(IAM)のロールを付与します。
必要な権限
ラベルを使用してリソースをフィルタするには、リソース メタデータを取得できる必要があります。ラベルを使用してリソースをフィルタするには、次の IAM 権限が必要です。
bigquery.datasets.get
(データセットをフィルタリング)bigquery.tables.get
(テーブルとビューをフィルタできます)
事前定義された以下の各 IAM ロールには、データセットをフィルタリングするために必要な権限が含まれています。
roles/bigquery.user
roles/bigquery.metadataViewer
roles/bigquery.dataViewer
roles/bigquery.dataOwner
roles/bigquery.dataEditor
roles/bigquery.admin
事前定義された以下の各 IAM ロールには、テーブルとビューをフィルタリングするために必要な権限が含まれています。
roles/bigquery.metadataViewer
roles/bigquery.dataViewer
roles/bigquery.dataOwner
roles/bigquery.dataEditor
roles/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
はラベルの名前)。 - フィルタには最大 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 ドキュメントでラベルの使用について読む。