BigQueryのテーブル定義をCSVに出力する手順
BigQueryで、
指定したデータセット配下のテーブル定義を、CSVファイルに出力する手順を説明します。
bqコマンド、jqコマンドがセットアップ済みで、
terminalからGCP環境へアクセス出来る状態になっている前提で、
以下の手続きを実施します。
以下のシェルスクリプトを作成します。
bq-schema-csv.sh
#!/bin/sh
DATASET_NAME=$1
if [ "$DATASET_NAME" == "" ]; then
echo "usage bq-schema-csv.sh [dataset]"
exit 1
fi
echo "table,name,type,mode,description" > schema.csv
for t in `bq ls -n 1000 $DATASET_NAME | awk '$2 == "TABLE" {print $1}'`; do
bq show --schema $DATASET_NAME.$t | jq -r ".[] | [\"$t\", .name, .type, .mode, .description] | @csv" >> schema.csv
done
作成したシェルスクリプトに実行権限を与えます。
$ chmod +x bq-schema-csv.sh
出力したい対象データセットを第一引数に指定して実行すると、
schema.csvにテーブル定義が出力されます。
$ ./bq-schema-csv.sh publicdata:samples
$ head schema.csv
table,name,type,mode,description
"github_nested","repository","RECORD",,
"github_nested","actor_attributes","RECORD",,
"github_nested","created_at","STRING",,
"github_nested","public","BOOLEAN",,
"github_nested","actor","STRING",,
"github_nested","payload","RECORD",,
"github_nested","url","STRING",,
"github_nested","type","STRING",,
"github_timeline","repository_url","STRING","NULLABLE",
以上で、テーブル定義をまとめてCSVファイルに出力出来ます。