BigQueryクエリをVSCodeから実行できる公式拡張が出たらしい
...とのことです。試してみましょう。
この記事のまとめ
- まだPreviewだがVSCodeのGoogle Cloud拡張内にBigQuery向け機能が追加された
- まだBigQueryの機能自体はかなり少ない、完全にBig Query Studioの代替となる訳では現状無い
- 認証は自分のGoogleアカウントにOauth2で入る
- 現状の機能はほぼJupyter拡張頼り、Cloud Codeはあくまでipynbのテンプレート作成機能のみ
- 今後に期待したい
発端
ソースはBigQueryの2024/12/16リリースノートでした。
December 16, 2024
...
You can now use the Google Cloud Code extension for VS Code to work with BigQuery datasets and notebooks in your VS Code environment. This feature is in preview.
少し調べてみると、BigQuery拡張の開発自体を行っていた形跡はGitHubにありますが、package.json以外の最終コミット・最終リリースは2018年で、 2024年9月にアーカイブ化されているようです。
ドキュメントを読んでみる
書いてある内容は以下のような内容です。(正確な内容は元のドキュメントをご確認ください)
- BigQueryの機能自体は、別のVSCode拡張機能であるMicrosoft製のJupyter拡張に依存する
- 認証はブラウザでログインして実施
- プロジェクト・リージョンはVSCodeのコンフィグで設定する
- ipynbが編集できる
- Jupyter Notebookのカーネル自体はローカルにインストールが必要(BigQuery処理以外の動作はローカルということ?)
- VSCode内からデータセットやテーブルの一覧が見れる
- テーブルをクリックすると、テーブルの詳細情報・スキーマ・プレビューが見れる
- 拡張機能は無料だが、使用したBigQueryやDataproc、GCSの使用量は課金される。
気になるのは以下のようなポイントでしょうか?
- サービスアカウントの認証を利用できるのか
- ipynb以外の対話的な実行環境はあるのか
試してみる
導入
では実際に試していきます。
VSCodeの拡張画面からGoogleCloudTools.cloudcode
をインストールします。
興味深いことに最終リリースはなぜか2024-12-11で上のリリースノートと一致しません…
何か画面が出てきましたが、どうやら設定画面ではなくチュートリアルのようです。
サイドバーには2つタブが追加されました。Gemini Code Assist
とCloud Code
ですね。
Cloud Codeタブの中にはBigQuery関連のセクションがあることが確認できます。
(別にGemini Code Assistは入れてくれと頼んでないのですが...)
自分の環境ではgcloud/ADCはインストール・セットアップ済みであり、Jupterの拡張も導入済みのため、導入は以上で完了です。
コンフィグを調整する
Ctrl+Shift+PからOpen Settings (UI)
で設定を開き、Extensionsから今回導入された拡張機能を確認していきます。
まずはGemini Code Assistを見ていきます。
何かしれっと有効化されているような気もしますが、projectを指定していないから起動はしない…んですかね?
この後拡張機能の無効化も試みましたが、Google Cloud Code側が依存ExtensionとしてGeminiを指定しているようで、Gemini Code Assistのみを無効化することはできませんでした…
とりあえず設定から適当にEnabledのチェックを外しておきます。
続いてGoogle Cloud Codeを見ていきます。
重要そうなコンフィグを以下にピックアップしておきます。
タイトル | 内容 |
---|---|
Auto Dependencies | Automatically install and update required Cloud Code dependencies such as the Cloud SDK, Skaffold, minikube, and Kubectl. |
Beta: Bigquery Region | BigQuery dataset explorer region. |
Project | The Google Cloud project used by Cloud Code for viewing and interacting with project resources |
Update Adc On Login | Append a --update-adc flag to gcloud auth login. Read about this flag. |
認証系のコンフィグは無さそうです。
実際に動かしてみる
初期設定
画面下部のCloud Code - Sign in
のボタンから認証を実行します。
また、コンフィグのProjectに検証に使うprojectのidを設定しておきます。
設定後にCloud Code - Sign in
を確認すると、プロジェクト名が確認できましたので、疎通は無事とれていそうです。
ただし、BigQuery Datasets
には何も表示されず、Error通知も出てきてしまいました。
プロジェクトのオーナー権限を持っているのでIAMの問題とは思えないのですが...
...と思っていたのですがBigQueryのRegionを変えてみたり、画面をリロードしたりするうちに直りました。
プレビュー機能
各プレビュー機能は以下の通りです。
特にこれ以上できる機能は無さそうです。
Jupyter Notebook機能
pipenv install jupyter bigframes
からpipenv環境を作成します。
続いて、Cloud CodeタブのBigQuery NotebooksセクションからNew Notebookボタンをクリックし、Jupyter Notebookのテンプレートを作成します。
つまりはこのbigframesを利用したテンプレートを、適当なプロジェクト名・リージョンで生成できるというところがこの拡張の機能というところでしょうか?
右上からJupyterのカーネルとして先ほど作成したvenvを選択します。
適当にデータセットを選び、実行してみると以下の通りです。
まあ妥当な結果ですね。
実行ログを見る限りもローカルのJupyterで実行されていそうです。
まあでもこの結果表示とかはJupyter拡張機能のおかげな訳で、果たしてCloud Code拡張を使う意味があるのかはかなり疑問です。
まとめ
以下、まとめです。
- まだBigQueryの機能自体はかなり少ない、完全にBig Query Studioの代替となる訳では現状無い
- Cloud Codeの範囲でService Accountなどを認証として利用する機能は見つけられなかった
- 現状の機能はほぼJupyter拡張頼り、Cloud Codeはあくまでipynbのテンプレート作成機能のみ
- 今後に期待したい
Discussion