BigQueryのデータマートからスキーマ情報をデータ型と同時に取得する

URL
bq_schema
Created
2021/1/31 8:17
Tags
Pythonで作ったデータセットをBigQueryに上げる際に、デフォルトだとデータ型が合わない問題が発生した。
INTやFLOATで数値計算させたいのに、そのままだとSTRINGの文字情報になってしまうため、スキーマの情報を設定する必要がある。
Pythonでスキーマを指定する場合、数個だけのカラムなら手打ちでもなんとかなるんだけど、数十数百となると、ちとキツイ。
そこで、BigQueryの既存のデータマートを参考にして、カラム名とデータ型を同時に取得したのでメモ。
 
notion image
 
BigQueryの従来のUIではなく、ベータ版の新UIから作業する。
GCPのページから、画像のボタンをクリックして、Cloud Shellのコンソールを起動する。
notion image
 
コンソール画面に、以下のクエリを入力すると、対象テーブルのカラム名とデータ型を取得することができる。
bq show [プロジェクトID]:[データセット名].[テーブル名]
Plain Text
 
コンソール起動時の位置には、初めの位置がプロジェクトになっている場合があるので注意する。
その場合には、プロジェクトIDは飛ばして以下のクエリでいける。
bq show [データセット名].[テーブル名]
Plain Text
 
デフォルトだとテキスト形式で返ってくるが、オプションでJSON形式でも取得可能。
bq show --schema --format=prettyjson [データセット名].[テーブル名] > [ファイル名]
Plain Text