Microsoft Fabricは、Microsoft のSaaS 型データ分析基盤サービスです。SaaS 型のため、容易にデータ分析の一連の流れを試すことができる特徴があります。
本記事含めた前後編として、Microsoft Fabricを利用してサンプルから祝日のデータを取得し、1年間の東京都の降水量へ休祝日を反映する方法を解説します。
前編では、用意した東京都の降水量データをクリーニングして、レイクハウスのテーブルに格納するまでの手順を解説しました。
後編となる本記事では、サンプルの祝日データを利用し、前編で用意した日付を含むデータに祝日を付与する方法について解説します。
サンプルを利用して祝日データのレイクハウスを作成
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 (休日)
まとめ
本記事では前編後編を通して、日付を含むデータに休祝日を反映しました。
この方法を利用することで、営業日を対象とした集計やデータの遷移を確認することができます。ぜひ試してみてください。