初回のbqコマンド実行時やCI/CDでbqコマンドを使用する際、初回実行時に.bigqueryrcが存在しない場合に自動で生成してくれる
このとき、標準出力には以下のようなメッセージが出力される
Welcome to BigQuery! This script will walk you through the process of initializing your .bigqueryrc configuration file. First, we need to set up your credentials if they do not already exist. Setting project_id sample-111111 as the default. BigQuery configuration complete! Type "bq" to get started.
そのため、bq queryコマンドなどを実行し、その結果を利用する場合には、このメッセージも含まれてしまい想定と違う結果になるということがある
たとえば--format jsonでJSON形式の出力をし、その結果をjqで処理する場合など、parseエラーが発生する
今回は、この問題を解決するための対策について
.bigqueryrcを事前に用意する
.bigqueryrcファイルを事前に用意することで、上記のメッセージを出力することなくbqコマンドを実行できる
特に指定がない場合は$HOME/.bigqueryrcから読み込む
ローカル環境では、このファイルに何らかの記述があるかと思う
設定ファイルの場所を指定する
GitHub Actions で .bigqueryrcファイルを指定する場合、リポジトリ直下に.bigqueryrcファイルを用意して、以下のいずれかの方法で指定する
環境変数で指定する
環境変数BIGQUERYRCに.bigqueryrcのファイルパスを指定する
env: BIGQUERYRC: ./.bigqueryrc
コマンドラインオプションで指定する
bqコマンドの--bigqueryrcオプションで.bigqueryrcのファイルパスを指定する
run: | bq query --bigqueryrc .bigqueryrc "SELECT * FROM hoge"
終わり
よく使う割にしっかり追っていなかったBigQueryの設定ファイルについてあらためて調べた
よく使うオプションとかは入れておくと良さそう
--use_legacy_sql=falseとかは入れておこうと思った
- 参考