Microsoft Fabricを利用した月次ファイルの連携方法【前編】

今回はMicrosoft Fabric(以降、Fabricと記載)を利用してパイプラインを構築し、毎月のデータをウェアハウスに蓄積する方法を前編・後編に分けて紹介します。

※Microsoft Fabricの始め方や細かい操作方法等は、以前の記事を参照ください。

データの準備

利用するデータは、以下のサイトで提供されている「Online Retail.xlsx」ファイルです。

https://archive.ics.uci.edu/dataset/352/online+retail

[DOWNLOAD]ボタンを押下することによりzipファイルがダウンロードされるので、解凍して利用します。

今回は、月次でデータを連携するシナリオに合わせるために、手作業でファイルの分割を行います。

「InvoiceDate」欄を利用して月ごとでデータを分割し、ファイル名は「retail_*.xlsx」として、「*」部分に3文字(jan、feb等)で月をいれた形で保存します。

パイプラインの構築

今回作成するパイプラインは、Data Factoryを利用して以下のように作成します。

  1. レイクハウスのファイルからテーブルへのコピー
  2. ノートブックを利用した加工
  3. レイクハウスのテーブルからウェアハウスへのコピー

設定後のパイプラインの状態は下図のようになります。


レイクハウスの作成

Fabricのトップページの「Synapse Data Engineering」を選択し、[レイクハウス]を押下して新しいLakehouseを作成します。今回は「Retail」という名称で作成します。

作成したレイクハウスのFilesに「2011」というサブフォルダを作成し、その中に1月分のデータである「retail_jan.xlsx」をアップロードしておきます。


ノートブックの作成

次に新しいノートブックを作成します。

ノートブックの作成が完了したら、以下の内容を記載します。ノートブックの名称も「retail_month」として保存します。

内容としては、レイクハウスの「retail」テーブルから欠損値を削除し、「retailtempview」という一時テーブルにデータを入れます。

そのあとで、現在のカラムの後ろに加工したカラムを追加し、新しく「onlineretail」テーブルに上書きで書き込みを行います。

# Welcome to your new notebook
df = spark.read.load("Tables/retail")
df =df.dropna()    
df.createOrReplaceTempView("retailtempview")

df=spark.sql("""
SELECT *,
Year(InvoiceDate) as Year,
Month(InvoiceDate) as Month,
CAST(InvoiceDate AS DATE) AS Date,
Weekday(InvoiceDate) as Weekday,
Hour(InvoiceDate) as Hour,
round((Quantity * UnitPrice),2) as Total
FROM retailtempview
""")

df.write.mode("overwrite").save("Tables/onlineretail")

パイプラインの構築・実行

レイクハウスの作成とノートブックの作成ができたら、途中までパイプラインを作成し、実行します。

※ もともとのExcelファイルからノートブックを利用してカラムを追加しているため、ウェアハウスへのデータコピーの時にカラムのマッピングがやりやすくなるように、今の時点で行います。

名称は「create_retail」として作成します。


データコピー

「file to table」は、レイクハウスのFilesにアップロードしたExcelファイルを、レイクハウスのテーブルにコピーします。

【ソース】タブでの設定項目(一部抜粋)

接続 Retail
ルートフォルダー ファイル
ファイルパスの種類 ワイルドカード ファイル パス
ワイルドカード パス 2011 / retail_*.xlsx
ファイル形式 Excel
シート名 Sheet1

【宛先】タブでの設定項目(一部抜粋)

接続 Retail
ルートフォルダー テーブル
テーブル名 retail

※ [+新規]からテーブルを作成します

ノートブック

レイクハウスのテーブルにコピーが完了したら、先ほど作成したノートブックを指定し、ノートブックを実行するようにします。

【設定】タブでの設定項目

ワークスペース My workspace
ノートブック retail_month
パイプラインの実行

設定が完了したら、[実行]を押下します。

実行が完了すると、レイクハウスにテーブルが作成されていることを確認できます。

終わりに

今回は、月次でファイルを連携する一連の流れのうち、データの加工を行う部分の処理まで実装しました。

やり方は他にもあると思いますが、今回ご紹介した方法はノートブックを利用した簡単な加工方法になるので、参考になればと思います。

後編では、ウェアハウスへのコピーやPower BIでの表示を紹介します。

執筆担当者プロフィール
井口 美和子

井口 美和子(日本ビジネスシステムズ株式会社)

Data&AIプラットフォーム部 Dataソリューション1G データ系サービスを取り扱うグループに所属しています。

担当記事一覧