分析ツールnehan活用例

GoogleBigQuery上のデータを注意して結合し、可視化する

概要

GoogleBigQuery上のデータを分析するシーンを考えます。

データの結合はワンミスで誤ったデータを出してしまう、危険な処理です。

もちろん、BigQuery上でもデータの結合(JOIN)を行うことはできますが、正しく処理できているのかを検証するのが大変です。

この記事では、正しい結合を確認しつつ、可視化まで行うことを考えます。

これを、nehanを使ってプログラミング不要、ノーコードで実現します。

※一部SQLを記述していますが、SQLビルダーを用いれば不要です。


データ

user_idごとの購入データ(payment)が入っている「購入データ」と、

 

会員番号(member_id)とuser_idの対応、および性別(gender)と会員登録日(register_date)が入っている「会員データ」があります。

ただし、member_idとuser_idは1対1で紐づくはずが、そうではありません。

サマリ情報を見ても、user_idのデータ数20に対してユニーク数が18なので、user_idが重複していることがわかります。

これは正しくないので前処理をする必要があります。


イメージ


STEP1:BigQueryからデータを抽出

あえて、2テーブルをBigQuery上で結合せず、それぞれをデータ化します。


STEP2:idの重複削除

試しに「user_id」をキーにして2データを結合してみますが、

  • 購入データ:「user_id」が重複(正しい)
  • 会員データ:「user_id」が重複(おかしい)

ため、エラーが出ます。

ここでは、

  • 会員登録日が最も新しいmember_idとuser_idの対応データを採用し、それ以外を削除する

という方針で、user_idの重複を削除します。

「先頭/末尾からn行選択」を用いて

  • 「user_id」ごとに、
  • 「register_date」を降順で並べ替え、
  • 先頭1行を選択

することでこれを実現します。


STEP3:結合

STEP2によって「user_id」の重複が削除できたので、2データを結合します。

これで、可視化用のデータは完成です。

4ノードで実現しました。

 


STEP4:可視化

ビジュアライズモードを起動。

購入ユーザーの会員性別比率を円グラフで可視化。

データが集計前なので、グラフの設定で集計を実施。(性別ごとにuser_idごとにカウント)

男性が若干多い。

もう一つ、購入金額の傾向を箱ひげ図で可視化。

女性の方が男性より購入金額が高めなことがわかる。

グラフはまとめてダッシュボード化。

完成品はこちら


終わりに

SQL上の結合(JOIN)は結果が正しいことの検証が難しいため、ミスが起きやすい処理です。

「急がば回れ」とはいいますが、一つずつ結果を確認しつつデータ処理を進めることが業務効率を高めるコツだと考えます。

それに必要な要素がnehanには揃っています。

コーポレートTOPへ

Contact