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

      2018/10/28

こんにちは、データアナリストのTEN(@02smwhere)です。

Pythonで作ったデータセットをBigQueryに上げる際に、デフォルトだとデータ型が合わない問題が発生した。

INTやFLOATで数値計算させたいのに、そのままだとSTRINGの文字情報になってしまうため、スキーマの情報を設定する必要がある。

 
Pythonでスキーマを指定する場合、数個だけのカラムなら手打ちでもなんとかなるんだけど、数十数百となるとちとキツイ。

そこで、BigQueryの既存のデータマートを参考にして、カラム名とデータ型を同時に取得したのでメモ。

 

スポンサーリンク

BigQueryのデータマートのスキーマ情報をデータ型含めて取得する方法

スクリーンショット 2018 10 27 8 14 36

BigQueryの従来のUIではなく、ベータ版の新UIから作業する。

GCPのページから、画像のボタンをクリックして、Cloud Shellのコンソールを起動する。

 
スクリーンショット 2018 10 27 8 15 24

コンソール画面に、以下のクエリを入力すると、対象テーブルのカラム名とデータ型を取得することができる。

bq show [プロジェクトID]:[データセット名].[テーブル名]

 
コンソール起動時の位置には、初めの位置がプロジェクトになっている場合があるので注意する。

その場合には、プロジェクトIDは飛ばして以下のクエリでいける。

bq show [データセット名].[テーブル名]

 
デフォルトだとテキスト形式で返ってくるが、オプションでJSON形式でも取得可能。

bq show --schema --format=prettyjson [データセット名].[テーブル名] > [ファイル名]

 

 - データ分析