【 Microsoft Fabric 】日付を含むデータに休祝日を反映してみる 後編

Microsoft Fabricは、Microsoft のSaaS 型データ分析基盤サービスです。SaaS 型のため、容易にデータ分析の一連の流れを試すことができる特徴があります。

本記事含めた前後編として、Microsoft Fabricを利用してサンプルから祝日のデータを取得し、1年間の東京都の降水量へ休祝日を反映する方法を解説します。

前編では、用意した東京都の降水量データをクリーニングして、レイクハウスのテーブルに格納するまでの手順を解説しました。

blog.jbs.co.jp

後編となる本記事では、サンプルの祝日データを利用し、前編で用意した日付を含むデータに祝日を付与する方法について解説します。

サンプルを利用して祝日データのレイクハウスを作成

Synapse Data Engineering ホームから"サンプルを使用する"を押下します。

"Lakehouse"から"祝日"を押下します。

作成が完了すると下記の画面に遷移し、レイクハウスが作成されたことが確認できます。

ウェアハウスの作成

この後作成するデータフローから書き込み先として指定する、ウェアハウスを事前に作成します。

画面左の"作成"を押下し、下図を参考に"すべて表示"を押下します。

"Data Warehouse"の項目から"ウェアハウス"を押下します。

任意の名前 (ここではraindata_WH) を入力し、"作成"を押下します。

作成が完了すると、下記の画面に遷移します。

データフローの作成

My Workspace から"新規"を押下し、"データフロー (Gen2)"を作成します。

"データを取得"から、"詳細..."を押下します。

作成したレイクハウス (画像ではrain_data) を押下し、しばらく待ちます。

下記の画面が表示されたら、PySparkで作成したテーブル (raindata) にチェックをつけ、"作成"を押下します。

"表示"から"ダイアグラムビュー"のアイコンを押下し、以下の画面を表示します。

"+"のアイコンを押下し、"カスタム列の追加"を選択します。

各項目を下記のように設定し、"OK"を押下します。

  • 新しい列名:DayOfWeek(任意)
  • データ型:テキスト
  • カスタム列の式:Date.DayOfWeekName([年月日]) 

"ホーム"から"データを取得"を押下し、"詳細"を選択します。

"Sample_lakehouse_XXX"(作成した祝日データ)を選択します。

"publicholidays"にチェックを入れ"作成"を押下します。

追加された"publicholidays"の"+"を押下します。

"行のフィルター処理"を選択します。

下記のように設定し、"OK"を押下します。

この後実施するマージのために、日付が格納されている列の型をそれぞれ"日付"に変更します。"raindata"が選択された状態で、画面下の表から、"年月日"の右の"ABC"を押下します。

"日付"を選択します。

"publichoidays"が選択された状態で、画面下の"date"の左のアイコンを押下します。

"日付"を選択します。

"raindata"の"+"を押下し、"クエリのマージ"を選択します。

デーブルをマージします。マージの項目を下記のように設定し、"OK"を押下します。

テーブルから利用しない列を削除します。"raindata"が選択された状態で、画面下の"publicholidays"の左のアイコンを押下します。

"holidayName"のみチェックを入れ、"OK"を押下します。

"holidayName"列のnullを空白に置換します。画面下の"holidayName"列が選択された状態で、"raindata"の"+"を押下します。

"値の置換"を選択します。

下記のように設定し、"OK"を押下します。

  • 検索値:null
  • 置換後:空白のまま

holiday列を追加します。"raindata"が選択された状態で"+"を押下し、"条件列の追加"を選択します。

下記のように条件を設定し、"OK"を押下します。

"holiday"列の左のアイコンを押下し、"テキスト"を選択します。

"降水量"についても同様の操作で、"10進数"に変換しておきます。

"raindata"が選択された状態で、数を参考に、データ同期先の追加のアイコンを押下します。

"ウェアハウス"を選択します。

"次へ"を押下します。



"新しいテーブルを作成"が選択された状態で事前に作成したウェアハウス (raindata_WH) を選択し、テーブル名 (ここではデフォルトでraindata) を入力し、"次へ"を押下します。

下記の画面の設定項目を確認し、"設定の保存"を押下します。設定内容については下記を参照してください。

  • 変更方法:置換
  • 公開時のスキーマオプション:固定スキーマ
  • 列マッピング
    • 年月日:日付
    • 降水量:10進数
    • DayOfWeek:テキスト
    • holidayName:テキスト
    • holiday:テキスト

"公開"を押下します。

パイプラインの作成

画面左の"作成"を押下し、下図を参考に"すべて表示"を押下します。

"Data Factory"の項目から、"データパイプライン"を選択します。

任意の名前 (ここではraindatapipline) を入力し、"作成"を押下します。

"データフロー"と"Notebook"を一回ずつ押下し、キャンバスに配置します。

データフローが選択された状態で画面下の"設定"タブを押下し、ワークスペースとデータフローを選択します。

  • ワークスペース:作業中のワークスペースを選択
  • データフロー:今回作成したデータフローを選択

ノートブックをキャンバス上で選択し、同じように設定していきます。

  • ワークスペース:作業中のワークスペース
  • ノートブック:前編で作成したノートブック

キャンバス上で、"ノートブック"右にあるチェックマークをドラッグし、"データフロー"へドロップします。

上記の設定完了後、"実行"を押下しパイプラインを実行します。

実行完了後、画面下の"出力"タブから、アクティビティがすべて成功していることを確認します。

raindata_WHのテーブルに、データが書き込まれていることも確認しておきます。

レポートの作成

ウェアハウスに作成したテーブルを利用して、レポートを作成します。

raindadta_WHを確認した画面から、画面左上の"Reporting"を選択し、"New Report"を押下します。

下記の画面が出てきた場合は、"続行"を押下します。

レポート作成の準備が整いました。

休日を対象に大まかな降水量の比較をしたグラフを作成しました。

設定は下記を参照して下さい。

  • グラフ:積み上げ横棒グラフ
  • X軸:降水量
  • Y軸:年月日 (連続値)
  • フィルター:holiday (休日)

まとめ

本記事では前編後編を通して、日付を含むデータに休祝日を反映しました。

この方法を利用することで、営業日を対象とした集計やデータの遷移を確認することができます。ぜひ試してみてください。

執筆担当者プロフィール
宮﨑 良貴

宮﨑 良貴(日本ビジネスシステムズ株式会社)

クラウドソリューション事業部所属。ビジネスインテリジェンスツール系の技術を扱うことが多いです。エンジョイゴルファー。

担当記事一覧