Links

正規化で横持ちデータを縦持ちに変換する

月ごとのデータが列で格納されたデータなどはデータ処理や可視化が困難です。データを正規化することでその後のデータ処理を簡単にできるようにします。

全体図

ワークフロー概要

  1. 1.
    BigQueryのSourceを追加
  2. 2.
    Transformの正規化を使用してフィールドを正規化
  3. 3.
    転送先にBigQueryを指定して、データを転送

事前準備

BigQueryテーブルの作成と使用などを参考にBIgQueryで空テーブルを作成します。 Cloud Storage ストレージ バケットの作成 などを参考にCloud Storage バケットを作成します。
転送先のBigQueryのテーブル、S3からのデータを一時保存するためのCloud Storageのバケットがすでに存在する場合は不要です。

Source詳細

Google BigQuery

次のように設定します。
設定完了後、「プレビュー」をクリックして実行後のプレビューが確認できます。設定に不備がない場合Completedと表示されます。
プレビューで実行結果を確認後、問題なければ「設定」を選択して完了します。
Source「Google BigQuery」の詳しい説明は以下ドキュメントをご確認ください。

Transform詳細

正規化

yearごとの各月の顧客数が正規化されておらず横持ちになっているので、正規化で縦持ちの形式で抽出します。
Source詳細で作成したBigQueryと正規化をデータパイプラインで連携します。
Google BigQueryで作成した情報が引き継がれるので次のように設定します。
  • Mapping: From {"year"}, To {"year"}
  • フィールド: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
  • 出力フィールド : フィールド名 ["month"], フィールド値 ["number_of_customer"]
設定完了後、「プレビュー」をクリックして実行後のプレビューが確認できます。設定に不備がない場合Completedと表示されます。
プレビューで実行結果を確認後、問題なければ「設定」を選択して完了します。
Transform「正規化」の詳しい説明は以下ドキュメントをご確認ください。

Sink詳細

Google BigQuery

Transform詳細で作成した正規化とGoogle BigQueryをデータパイプラインで連携します。
正規化で作成した情報が引き継がれるので次のように設定します。
プロジェクトID、テーブル、バケットに事前準備で作成したプロジェクトID、テーブル名、バケット名を入力します。
設定完了後、「プレビュー」をクリックして実行後のプレビューが確認できます。設定に不備がない場合Completedと表示されます。
プレビューで実行結果を確認後、問題なければ「設定」を選択して完了します。
Sink「Google BigQuery」の詳しい説明は以下ドキュメントをご確認ください。

ワークフローの実行

「名前」と「説明」を入力して「保存」を選択。
「実行」を選択します。
ジョブが問題なく完了すると「成功」となります。

BigQuery上で確認

下記のようにBigQuery上のtableに正規化されたデータが登録されていることが確認できれば完了です。