保存済みクエリを管理する
このドキュメントでは、保存したクエリと従来の保存したクエリを管理する方法について説明します。
保存済みクエリ
保存済みクエリを管理する方法については、以降のセクションをご覧ください。保存されたクエリは、Dataform が提供する BigQuery Studio コードアセットです。
始める前に
BigQuery Studio の保存済みクエリを管理し、従来の保存済みクエリを BigQuery Studio の保存済みクエリに移行するには、次の操作を行います。
プロジェクトで BigQuery Studio を有効にする。
省略可: 移行(プレビュー)中に移行された公開またはプロジェクトの従来の保存したクエリに IAM 権限を設定するには、BigQuery Studio の保存したクエリを作成または選択し、その保存したクエリに選択した Identity and Access Management(IAM)権限を付与します。
- 一般公開またはプロジェクトの従来の保存済みクエリを BigQuery Studio の保存済みクエリに移行するときに、BigQuery Studio の保存済みクエリを選択して、そのクエリに付与されている権限を移行した保存済みクエリにコピーします。
必要なロール
保存したクエリの管理に必要な権限を取得するには、保存したクエリを管理するプロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
Google Cloud コンソールで BigQuery Studio に保存したクエリを管理するには:
-
BigQuery ジョブユーザー (
roles/bigquery.jobUser
) -
BigQuery 読み取りセッション ユーザー (
roles/bigquery.readSessionUser
) -
コードオーナー (
roles/dataform.codeOwner
)
-
BigQuery ジョブユーザー (
-
BigQuery API を使用して BigQuery Studio の保存したクエリを管理するには:
コードオーナー (
roles/dataform.codeOwner
) -
プロジェクトの従来の保存済みクエリを BigQuery Studio の保存済みクエリに移行するには:
-
BigQuery Studio 管理者 (
roles/bigquery.studioAdmin
) -
プロジェクト IAM 管理者(
roles/resourcemanager.projectIamAdmin
)
-
BigQuery Studio 管理者 (
-
認証済みユーザーが公開アクセス クエリを表示できるようにするには: コード閲覧者 (
roles/dataform.codeViewer
)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、保存したクエリの管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
保存したクエリを管理するには、次の権限が必要です。
-
Google Cloud コンソールで BigQuery Studio に保存したクエリを管理するには:
bigquery.config.get, bigquery.jobs.create, dataform.locations., resourcemanager.projects.get, resourcemanager.projects.list, bigquery.readsessions., dataform.repositories., dataform.workspaces.
-
BigQuery API を使用して BigQuery Studio に保存されているクエリを管理するには:
dataform.locations., dataform.repositories., dataform.workspaces.*, resourcemanager.projects.get, resourcemanager.projects.list
-
プロジェクトの従来の保存済みクエリを BigQuery Studio の保存済みクエリに移行するには:
bigquery.savedqueries.get, bigquery.savedqueries.list, bigquery.savedqueries.update, resourcemanager.projects.setIamPolicy
-
認証済みユーザーが公開アクセス クエリを表示できるようにするには:
dataform.locations.*, dataform.repositories.computeAccessTokenStatus, dataform.repositories.fetchHistory, dataform.repositories.fetchRemoteBranches, dataform.repositories.get, dataform.repositories.getIamPolicy, dataform.repositories.list, dataform.repositories.queryDirectoryContents, dataform.repositories.readFile, dataform.workspaces.fetchFileDiff, dataform.workspaces.fetchFileGitStatuses, dataform.workspaces.fetchGitAheadBehind. dataform.workspaces.get, dataform.workspaces.getIamPolicy, dataform.workspaces.list, dataform.workspaces.queryDirectoryContents, dataform.workspaces.readFile, dataform.workspaces.searchFiles, resourcemanager.projects.get, resourcemanager.projects.list
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
BigQuery IAM の詳細については、IAM でのアクセス制御をご覧ください。
保存したクエリへのアクセス権を付与する
保存済みクエリへのアクセス権を他のユーザーに付与するには、それらのユーザーを適切な IAM ロールに追加します。
Google Cloud コンソールで [BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [クエリ] フォルダを開き、必要に応じて [共有クエリ] フォルダを開きます。アクセスを許可する保存済みクエリを見つけます。
保存済みクエリの横にある > [権限を管理] をクリックします。
[アクションを表示] をクリックし、[共有][権限を管理] ペインで、[ユーザー / グループの追加] をクリックします。
[新しいプリンシパル] フィールドに、プリンシパルを入力します。
[ロール] リストで、次のいずれかのロールを選択します。
省略可: ロールと詳細な共有設定の完全なリストを表示するには、[詳細な共有] をクリックします。
[保存] をクリックします。
保存したクエリの情報に戻るには、[閉じる] をクリックします。
保存したクエリの共有
保存したクエリを他のユーザーと共有するには、保存したクエリへのリンクを生成して共有します。共有されている保存したクエリがユーザーに対して表示されるようにするには、まず、保存したクエリへのアクセス権を付与する必要があります。
共有クエリを実行するには、クエリがアクセスするデータへのアクセス権が必要です。詳細については、データセットへのアクセス権を付与するをご覧ください。
保存済みクエリを共有する予定の場合は、その目的を説明するコメントをクエリに含めることを検討してください。
Google Cloud コンソールで [BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [クエリ] フォルダを開き、必要に応じて [共有クエリ] フォルダを開きます。共有する保存済みクエリを見つけます。
クエリの横にある > [リンクをコピー] をクリックします。
[アクションを表示] をクリックし、[共有]リンクを他のユーザーと共有します。
保存済みクエリへの一般公開を許可する
BigQuery Studio の保存済みクエリに一般公開するには、保存済みクエリに対するコード閲覧者(roles/dataform.codeViewer)のロールを allAuthenticatedUsers
プリンシパルに付与します。
allAuthenticatedUsers
プリンシパルに IAM ロールを割り当てると、サービス アカウントと、Google アカウントで認証されたインターネット上のすべてのユーザーにそのロールが付与されます。これには、個人用 Gmail アカウントなど、Google Workspace アカウントまたは Cloud Identity のドメインに接続していないアカウントも含まれます。認証されていないユーザー(匿名の訪問者など)は含まれません。詳細については、認証済みのすべてのユーザーをご覧ください。
たとえば、sales
保存済みクエリの allAuthenticatedUsers
にコード閲覧者のロールを付与すると、Google アカウントで認証されたすべてのサービス アカウントとインターネット上のユーザーは、sales
保存済みクエリへの読み取り専用権限を持ちます。
BigQuery Studio の保存済みクエリに一般公開アクセス権を付与する手順は次のとおりです。
Google Cloud コンソールで [BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [クエリ] フォルダを開き、必要に応じて [共有クエリ] フォルダを開きます。公開アクセスを許可する保存済みクエリを見つけます。
保存済みクエリの横にある > [権限を管理] をクリックします。
[アクションを表示] をクリックし、[共有][権限を管理] ペインで、[ユーザー / グループの追加] をクリックします。
[新しいプリンシパル] フィールドに「
allAuthenticatedUsers
」と入力します。[ロール] リストで、コード閲覧者ロールを選択します。
[保存] をクリックします。
保存したクエリの情報に戻るには、[閉じる] をクリックします。
保存済みクエリへの公開アクセスを防止する
BigQuery Studio の保存済みクエリに対する公開アクセスを防止するには、プロジェクトの allAuthenticatedUsers
プリンシパルを制限します。
プロジェクトで allAuthenticatedUsers
を制限するには、iam.allowedPolicyMemberDomains
ポリシーを設定し、allowed_values
のリストから allAuthenticatedUsers
を削除します。
iam.allowedPolicyMemberDomains
ポリシーで allAuthenticatedUsers
を制限すると、allAuthenticatedUsers
プリンシパルをプロジェクトの IAM ポリシーで使用できないため、BigQuery Studio の保存済みクエリを含むすべてのリソースへの公開アクセスの付与が防止されます。
iam.allowedPolicyMemberDomains
ポリシーとその設定手順の詳細については、ドメイン別の ID の制限をご覧ください。
すべての保存済みクエリを表示する
プロジェクトに保存されているすべてのクエリのリストを表示するには、次の操作を行います。
Google Cloud コンソールで [BigQuery] ページに移動します。
[エクスプローラ] ペインで、[クエリ] の横にある
(アクションを表示)をクリックし、次のいずれかを行います。
- 現在のタブでリストを開くには、[すべて表示] をクリックします。
- リストを新しいタブで開くには、[すべてを表示] > [新しいタブ] をクリックします。
- 分割タブでリストを開くには、[すべてを表示] > [タブを分割] をクリックします。
保存済みクエリのメタデータを表示する
保存済みクエリのメタデータを表示するには、次の操作を行います。
Google Cloud コンソールで [BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [クエリ] フォルダを開き、必要に応じて [共有クエリ] フォルダを開きます。メタデータを表示する保存済みクエリの名前をクリックします。
[概要] ペインで、使用されているリージョンや最終更新日など、保存したクエリに関する情報を確認します。
保存したクエリ バージョンを操作する
以降のセクションでは、保存したクエリのバージョンを表示、比較、復元する方法について説明します。
保存済みクエリのバージョンを表示する
保存済みクエリのバージョンを表示するには、次の操作を行います。
Google Cloud コンソールで [BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [クエリ] フォルダを開き、必要に応じて [共有クエリ] フォルダを開きます。アクティビティを表示する保存済みクエリの名前をクリックします。
[アクティビティ] タブをクリックすると、保存したクエリのバージョンの一覧が日付の降順で表示されます。
保存済みクエリのバージョンを比較する
保存済みクエリのバージョンを比較する手順は次のとおりです。
Google Cloud コンソールで [BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [クエリ] フォルダを開き、必要に応じて [共有クエリ] フォルダを開きます。バージョン情報を比較する保存済みクエリの名前をクリックします。
[アクティビティ] タブで、保存したクエリ バージョンの横にある
[アクションを表示] をクリックし、[比較] をクリックします。比較ペインが開き、選択した保存したクエリのバージョンと現在の保存したクエリのバージョンを比較します。省略可: 現在の保存済みクエリのバージョンには、保存されていない変更も表示されます。変更を保存するには、[上書き] をクリックします。
省略可: 個別のペインではなくインラインでバージョンを比較するには、[比較]、[インライン] の順にクリックします。
保存したクエリ バージョンを復元する
保存したクエリ バージョンを復元するには、次のいずれかのオプションを使用します。比較ペインから復元すると、復元するかどうかを選択する前に、保存したクエリの以前のバージョンを現在のバージョンと比較できます。
アクティビティ ペイン
- [エクスプローラ] ペインで、プロジェクトと [クエリ] フォルダを開き、必要に応じて [共有クエリ] フォルダを開きます。以前のバージョンを復元する保存済みクエリの名前をクリックします。
- [アクティビティ] ペインを選択します。
- 復元する保存したクエリのバージョンの横にある (アクションを表示)をクリックし、[復元] をクリックします。
- [確認] をクリックして、操作を確定します。
比較ペイン
- [エクスプローラ] ペインで、プロジェクトと [クエリ] フォルダを開き、必要に応じて [共有クエリ] フォルダを開きます。以前のバージョンを復元する保存済みクエリの名前をクリックします。
- [アクティビティ] ペインを選択します。
- 保存したクエリ バージョンの横にある [アクションを表示] をクリックし、[比較] をクリックします。比較ペインが開き、選択した保存したクエリのバージョンと最新の保存したクエリのバージョンを比較します。
- 比較後に以前に保存したクエリ バージョンを復元する場合は、[復元] をクリックします。
- [確認] をクリックして、操作を確定します。
保存済みクエリをダウンロードする
保存したクエリをダウンロードするには、次の操作を行います。
Google Cloud コンソールで [BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [クエリ] フォルダを開き、必要に応じて [共有クエリ] フォルダを開きます。保存済みクエリの名前をクリックして開きます。
[ダウンロード] をクリックします。
保存したクエリを削除
保存したクエリを削除するには、次の操作を行います。
Google Cloud コンソールで [BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [クエリ] フォルダを開き、必要に応じて [共有クエリ] フォルダを開きます。削除する保存済みクエリを見つけます。
保存したクエリの横にある [
アクションを表示] をクリックし、[削除] をクリックします。削除を確定するには、ダイアログで「
delete
」と入力します。[削除] をクリックします。
従来の保存済みクエリ
従来の保存済みクエリの管理方法については、以降のセクションをご覧ください。
従来の保存済みクエリを共有する
共有できる従来の保存したクエリは、公開設定がプロジェクトまたは一般公開に設定されているクエリです。プロジェクトの公開設定を指定すると、必要な権限を持つプリンシパルがクエリを表示、更新、削除できます。一般公開の公開設定では、クエリリンクのあるすべての人がクエリを表示できますが、更新や削除はできません。
従来の保存したクエリを他のユーザーと共有するには、このクエリへのリンクを生成して共有します。
従来の共有クエリを実行するには、クエリがアクセスするデータへのアクセス権が必要です。詳細については、データセットへのアクセス権を付与するをご覧ください。
従来の保存済みクエリを共有する場合は、その目的を説明するコメントをクエリに含めることを検討してください。
- [エクスプローラ] ペインで、プロジェクトと [(従来)クエリ] フォルダを開き、共有する従来の保存済みクエリを見つけます。
- クエリの横にある (アクションを表示)をクリックし、[リンクを取得] をクリックします。
- クエリへのアクセスを許可するユーザーとリンクを共有します。
従来のクエリを保存済みクエリとして保存する
Google Cloud コンソールで [BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [(従来)クエリ] フォルダを開き、必要に応じて [プロジェクト クエリ] フォルダを開きます。
従来の保存したクエリの名前をクリックして開きます。
[クエリ(従来)を保存] > [クエリに名前を付けて保存...] をクリックします。
[クエリを保存] ダイアログで、クエリの名前を入力してロケーションを選択します。
[保存] をクリックします。
従来の保存済みクエリを移行する
この機能に関するサポートをリクエストする場合、またはフィードバックを提供する場合は、bigquery-studio-support-alias@google.com までメールをお送りください。
従来の保存済みクエリを一括で移行するには、必要なロールが付与されている必要があります。これらのロールによって付与される権限によって、移行できる従来の保存済みクエリのタイプが決まります。
次の従来の保存済みクエリは、バッチで移行できます。
- 個人の従来の保存済みクエリ
- 個人用従来の保存済みクエリは、作成したユーザーだけに表示されます。移行された BigQuery Studio の保存したクエリへのアクセス権が付与されている管理者とユーザーは、個人の保存したクエリにアクセス、変更、削除できる場合があります。 アイコンでこれらを識別できます。従来の個人保存済みクエリは、オーナーのみが移行できます。
- 一般公開の従来の保存したクエリ
一般公開の保存したクエリは、クエリへのリンクですべてのユーザーに表示されます。
アイコンでこれらを識別できます。一般公開の従来の保存済みクエリは、オーナーのみが移行できます。一般公開の従来の保存済みクエリに対する IAM 権限は、BigQuery Studio の保存済みクエリに対する権限にマッピングされません。つまり、一般公開の従来の保存済みクエリから移行された BigQuery Studio の保存済みクエリは、デフォルトでは一般公開されません。移行された BigQuery Studio の保存済みクエリの IAM 権限は、移行中または移行後に設定する必要があります。
移行中に移行された BigQuery Studio の保存済みクエリに IAM 権限を設定するには、移行された保存済みクエリに適用する権限を持つ既存の BigQuery Studio の保存済みクエリを選択します。BigQuery は、選択した BigQuery Studio の保存済みクエリで付与された権限をコピーし、移行された保存済みクエリに適用します。移行した保存したクエリを共有するユーザーまたはグループを手動で追加することもできます。
移行中に IAM 権限を設定しない場合、移行された BigQuery Studio の保存済みクエリにアクセスできるのは移行したユーザーのみです。
- プロジェクトの従来の保存済みクエリ
プロジェクト レベルの保存済みクエリは、必要な権限を持つプリンシパルに表示されます。 アイコンでこれらを識別できます。プロジェクト内のすべてのプロジェクトの従来の保存したクエリを一括で移行できます。
プロジェクトの従来の保存したクエリに対する IAM 権限は、BigQuery Studio の保存したクエリに対する権限に直接マッピングされません。移行された BigQuery Studio の保存済みクエリの IAM 権限は、移行中または移行後に設定する必要があります。
移行中に移行された BigQuery Studio の保存済みクエリに IAM 権限を設定するには、移行された保存済みクエリに適用する権限を持つ既存の BigQuery Studio の保存済みクエリを選択します。BigQuery は、選択した BigQuery Studio の保存済みクエリで付与された権限をコピーし、移行された保存済みクエリに適用します。移行した保存したクエリを共有するユーザーまたはグループを手動で追加することもできます。
移行中に IAM 権限を設定しない場合、移行された BigQuery Studio の保存済みクエリにアクセスできるのは移行したユーザーのみです。
従来の保存したクエリのバッチ移行中、BigQuery は次の処理を行います。
- 移行する従来の保存済みクエリをすべて BigQuery Studio の保存済みクエリとして保存し、選択したリージョンに保存します。
- 移行中の従来の保存済みクエリをすべて読み取り専用の従来の保存済みクエリに変換します。このクエリは 2025 年まで使用できます。
移行後、個人用、公開、プロジェクトの従来の保存済みクエリには、BigQuery Studio の保存済みクエリと読み取り専用の従来の保存済みクエリの両方からアクセスできます。読み取り専用の従来の保存済みクエリは 2025 年まで使用できます。
移行リスク
一括移行後、移行された従来の保存したクエリを変更することはできません。移行された個人用、一般公開、プロジェクトの従来保存済みクエリは読み取り専用になります。読み取り専用の個人用、一般公開、プロジェクトの従来の保存済みクエリは 2025 年まで使用できます。
BigQuery は、Dataform API を使用して、移行された BigQuery Studio の保存したクエリを Google Cloud プロジェクトに追加します。これらの変更を元に戻すには、手動でクリーンアップする必要があります。
従来の保存済みクエリを一括で移行する
プロジェクト内の従来の保存済みクエリを BigQuery Studio の保存済みクエリに一括で移行するには、次の操作を行います。
Google Cloud コンソールで [BigQuery] ページに移動します。
[エクスプローラ] ペインでプロジェクトを開き、[(従来)クエリ] の横にある
[アクションを表示] をクリックし、[従来の保存済みクエリを移行する] をクリックします。[従来の保存済みクエリの移行] ペインの [移行の準備状況を確認] セクションで、[次へ] をクリックして、必要なロールがあることを確認します。
IAM 権限によって、移行できる従来の保存したクエリの種類と、[保存されている従来のクエリの移行] ペインに表示されるセクションが決まります。
[リージョン] セクションの [リージョン] プルダウンで、BigQuery が移行された保存したクエリを保存するリージョンを選択します。
BigQuery Studio コードアセットのデフォルトのリージョンを選択することをおすすめします。詳細については、コードアセットにデフォルトのリージョンを設定するをご覧ください。
従来の個人用保存済みクエリをすべて移行するには、[個人用クエリを移行する] セクションで [すべての個人用クエリを移行する] チェックボックスをオンにして、[次へ] をクリックします。
プロジェクト内のすべての一般公開の従来の保存済みクエリを移行するには、[一般公開クエリを移行する] セクションで次の操作を行います。
- [すべての公開クエリを移行する] チェックボックスをオンにします。
- [SQL] プルダウンで、移行された保存済みクエリに適用する IAM ポリシーを含む BigQuery Studio の保存済みクエリを選択します。
省略可: 移行した保存したクエリを共有するユーザーまたはグループを追加するには、[ユーザー/グループを追加] をクリックして、[保存したクエリへのアクセス権を付与] をクリックします。
移行した保存済みクエリを一般公開するには、
allAuthenticatedUsers
をプリンシパルとして設定し、Code 閲覧者のロールを付与します。詳細については、一般公開を許可するをご覧ください。[次へ] をクリックします。
プロジェクト レベルの従来の保存したクエリを移行するには、[プロジェクト クエリを移行する] セクションで次の操作を行います。
- [すべてのプロジェクト クエリを移行する] チェックボックスをオンにします。
- [SQL] プルダウンで、移行された保存済みクエリに適用する IAM ポリシーを含む BigQuery Studio の保存済みクエリを選択します。
- 省略可: 移行した保存したクエリを共有するユーザーまたはグループを追加するには、[ユーザー/グループを追加] をクリックして、[保存したクエリへのアクセス権を付与] をクリックします。
- [次へ] をクリックします。
移行リスクを理解していることと、従来の保存したクエリを一括で移行することを確認するには、[確認] セクションの [確認] フィールドに
confirm
と入力し、[次へ] をクリックします。[送信] をクリックします。
移行するクエリの数によっては、移行に 15 分以上かかることがあります。
従来の保存済みクエリを削除する
Google Cloud コンソールで [BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [(従来)クエリ] フォルダを開き、必要に応じて [プロジェクト クエリ] フォルダを開きます。
削除する従来の保存済みクエリを見つけます。
クエリの横にある [
アクションを表示] をクリックし、[削除] をクリックします。削除を確定するには、ダイアログで「
delete
」と入力します。[削除] をクリックします。
次のステップ
- BigQuery Studio の保存したクエリの詳細については、保存したクエリの概要 をご覧ください。
- 保存したクエリを作成する方法については、保存したクエリを作成するをご覧ください。