VSCodeでBigQuery実行環境を整える

✏️ 編集

やろうと思った理由

GitHub Copilotで書かせたクエリをBQコンソールへコピペするのも面倒になってきたため。

やった方法

ディレクトリ構成

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
.
|-- .vscode/
|   |-- extensions.json
|   |-- settings.json
|
|-- queries/
|   |-- <YOUR_PROJECT_DIR_1>/
|   |   |-- <YOUR_QUERY_1>.bqsql   // BQのクエリは拡張子を.bqsqlにすること
|   |   |-- ...
|   |
|   |-- ...
|

extensions.json

1
2
3
4
5
6
{
    "recommendations": [
        "minodisk.bigquery-runner", // BigQuery runner
        "shinichi-takii.sql-bigquery", // SQL syntax highlighting
    ]
}

settings.json

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
{
    "bigqueryRunner.projectId": "YOUR_PROJECT_ID_1", // デフォルトの請求先プロジェクト。アドホック用途でスロットに上限が設定されているプロジェクトなどがあればそれを設定すると良い
    "bigqueryRunner.tree.projectIds": [
        "YOUR_PROJECT_ID_2", // よくテーブルを見に行くプロジェクトがあればここに追加しておくと、VSCodeからツリーで見れて便利
        ...
    ],
    "[sql-bigquery]": {
        "editor.tabSize": 2
    },
    // (お好みで).bqsqlファイルをデータベースアイコンにする
    "material-icon-theme.files.associations": {
        "*.bqsql": "database"
    }
}

その他、工夫点など

linterやformatterはあえて設定していない。当初は設定していたが、フォーマット結果が気に入らないことが多かったので…。

実際やってみての感想

一時クエリを保存しておけるため、分析業務中に別の分析業務が割り込んできた時の切り替えと作業復帰がしやすくなった。WebのBQコンソールだとクエリを保存しない限りは適当なタイミングで消えてしまって切り替えが面倒だったので、これはかなり助かっている。加えて、プロジェクトごとにフォルダを分けておけば、並行している分析業務の数が増えても切り替えやすいので、これも助かっている(そもそも並列数を増やさないようにするのが理想だが…)。

ただ、クエリ結果をスプレッドシートに出力してピボットテーブルなどで集計することが多かったので、VSCode上だとその操作ができないのが少し不便。現状はWebのBQコンソールから個人の実行履歴を見に行くことでカバーしている。まぁ毎回スプレッドシートへの出力を行っているわけではないので、意外とそこまで不便さは感じていない(どっかで見るべき実行履歴を間違えて事故りそう、というのはある)。この辺りは自力でなんとかなりそうだったらcontributeしてみようかな…。

参考

Hugo で構築されています。
テーマ StackJimmy によって設計されています。