BigQuery の新しい「保存済みクエリ」と「クエリの共有」を試してみた
アノテーション、Google Cloud が大好きな村上です。
皆さんは、新しくなった「保存済みクエリ」と「クエリの共有」機能を活用していますか?よく使う分析クエリや、チームで共有したい定型クエリを保存しておける、非常に便利な機能です。
この記事では、新しくなった「保存済みクエリ」と「クエリの共有」が従来の機能とどのように違うのかを簡単に説明した後に、実際に新しい「保存済みクエリ」を作成し、IAM を使って他のユーザーに共有するまでの一連の流れをご紹介します。
従来の保存済みクエリと新しい保存済みクエリ
まず、「新しい保存済みクエリ」が「従来の保存済みクエリ」とどう変わるのかを整理します。
-
- 可視性を 「個人」 「プロジェクトレベル」 「一般公開」から選んでアクセスを制御していました。
- 手軽でしたが、誰がどのクエリを見られるのか、管理が曖昧になりがちでした。
-
- クエリのアクセス制御を、Google Cloud の標準的な権限管理の仕組みである IAM (Identity and Access Management) で行います。
- これにより、「Aさんには閲覧だけ許可」 「Bグループには編集も許可」といった、より厳密な権限管理が可能になります。
新しい保存済みクエリを作成して共有してみた
それでは、実際に新しい保存済みクエリを使ってみます。
Step 1 新しい保存済みクエリを作成する
まず、BigQueryの公開データセットを使って分析クエリを作成し、保存します。
- Google Cloudコンソールにログインし、BigQueryを開きます。
- 以下のSQLをクエリエディタに貼り付けます。BigQuery の一般公開データセットを利用して2013年にアメリカで人気だった名前TOP5を調べてみます。
-- 2013年に最も人気だった名前を調べる自分用のクエリ
SELECT name, SUM(number) as total
FROM `bigquery-public-data.usa_names.usa_1910_2013`
WHERE year = 2013
GROUP BY name
ORDER BY total DESC
LIMIT 5;
- BigQuery Studio を利用してクエリを実行しました。
- 作成したクエリを保存します。
- このクエリの名前を「test-query」として保存します。
Step 2 保存済みクエリを他アカウントユーザーと共有する
- 保存したクエリにおいて「権限を管理」を選択し、「ユーザー/グループを追加」をクリックします。
- test-query を共有したいプリンシパルを指定し、test-query に対してのロールを指定します。
今回は、test-query を共有したアカウントに対して、コードオーナーのロールを付与しました。
コードオーナーの IAM ロールを見て気づいたのですが、クエリの共有には内部的にサービス Dataform を利用していました。
- Google Cloud コンソールにログインしているアカウントを切り替えて、クエリが共有されているか確認します。左ペインに共有クエリ「test-query」が確認できました。
- もちろん、クエリの実行も可能です。
Step 3 保存済みクエリのバージョン管理を試してみる
- 男性の名前のみ検索するように、クエリに変更を加えます。
- 変更したクエリを上書き保存します。
- 一度、全てのタブを閉じて BigQuery Studio の画面を綺麗にします。
- 画面左ペインから、上書きされた「test-query」を表示させた後、画面右にある時計マークを押下することで、クエリの変更履歴を確認できます。
- クエリの変更差分がよく分かります。
- 前のバージョンへ、クエリを復元することも可能です。
まとめ
本記事では、IAM と連携した BigQuery の新しい「保存済みクエリ」と「クエリの共有」機能を紹介しました。
本機能を活用することで、定型クエリの共有が安全かつ効率的になるので、まずはよく使うクエリを 1 つ保存するところから始めて、日々の業務効率アップに役立ててみてください!
この記事がどなたかのお役に立てば幸いです。