はじめに
この記事では、BigQueryでデータをグラフに出力する方法をまとめます。
BigQueryでは、クエリで作成および集計したデータをグラフとして出力することができます。
BigQueryで直接グラフを出力することのメリットとして、以下の点が挙げられます。
- BigQuery上でクエリから作成・集計したデータを、グラフ出力のコードを書かずにそのまま出力可能
- GUIでグラフの種類や軸の設定、値の確認を実施可能
- 出力したグラフを画像として保存することができる
本記事の流れとしては、まずBigQueryでデータを集計するクエリを作成し、そのクエリ結果をグラフとして出力します。グラフの種類や軸の設定、値の確認、画像として保存する方法を解説します。
BigQueryでグラフを出力するための下準備
クエリによるデータの集計
まず、BigQueryでデータを集計するクエリを作成します。
SQL ワークスペースを開き、集計したいデータを含むテーブルを選択し、"クエリ"→"分割タブ"を選択します。

タブが開きますので、集計のためのクエリを実行します。
以下では例として、テーブルhakky-corporate.dl.github_handbook_article_info
のbody
カラム(記事の本文が格納されています)の文字数を集計するクエリを以下に示します。
以下にクエリのステップを解説します。
-
長さの計算と一時テーブルへの格納
github_handbook_article_info
テーブルからbody
列の文字列の長さ(LENGTH(body))
を計算して、BodyLengths
という一時テーブルを作成しています。一時テーブルはセッションが終了すると自動的に削除されます。
-
文字数が長すぎるデータを丸める
グラフを見やすくするため、一時テーブルBodyLengths
のbody_length
列の値が 10000 を超える 10001 に更新します。
-
データの集計
最後に、更新された一時テーブルBodyLengths
のbody_length
列を500で割り、その商を床関数 FLOOR
で取得し、再び500をかけて length_disc
列を作成しています。そして、各 length_disc
におけるデータの頻度をカウントし、結果を frequency
列として取得しています。最後に length_disc
列で昇順に結果を並び替えています。これにより、異なる範囲の文字列長を持つデータの頻度が500単位でグループ化されています。
グラフの出力と操作方法
グラフの出力
"すべての結果"の"結果を表示"をクリックします。

クエリ結果が表示されますので、"グラフ"タブを選択します。
右側の"グラフの構成"からグラフの種類、x軸、y軸を選択します。
ここでは、横軸にはlength_disc
、縦軸にはfrequency
を選択し、グラフを出力します。

値の確認
グラフ領域にカーソルをかざすと、グラフの値を確認することができます。

グラフ種類の変更
右側の"グラフの構成"からグラフの種類を変更することができます。
例えば、グラフの種類を折れ線グラフにするためには、"折れ線"を選択します。

画像として保存
グラフ領域の右上の"その他のグラフオプション"-"ダウンロード"-"Download PNG"をクリックすると、グラフを PNG ファイルとしてダウンロードされます。

まとめ
本記事では、BigQueryを使用してSQLの実行結果をグラフとして出力する方法について紹介しました。BigQueryを利用することで、クエリから得られたデータを直接グラフに変換し、データの可視化を簡単に行うことが可能です。
BigQueryでグラフを出力することのメリットを改めて挙げると、以下の通りです。
- コード不要: クエリから作成・集計したデータを、グラフ出力のコードを書かずにそのまま出力できます。
- GUI操作: GUIを使用してグラフの種類や軸の設定、値の確認を直感的に行えます。
- 保存: 出力したグラフを画像として保存することができます。
これにより、データ分析や可視化の効率を向上させることができます。
また、以下の手順について説明いたしました。
- BigQueryでのデータ集計クエリの作成: データを集計するためのクエリを作成できることを示しました。
- グラフの出力: クエリ結果をグラフとして出力する際に、種類や軸の設定を行えることを示しました。
- 値の確認: グラフ上でカーソルをかざすことで、値を確認できることを示しました。
- グラフ種類の変更: 種類を変更することで、異なる視覚化を試すことができることを示しました。
- 画像として保存: グラフをPNGファイルとして保存する方法について説明しました。
参考

備考
Hakky ではエンジニアを募集中です!まずは話してみたいなどでも構いませんので、ぜひお気軽に採用ページからお問い合わせくださいませ。
