今回はMicrosoft Fabric(以降、Fabricと記載)を利用してパイプラインを構築し、毎月のデータをウェアハウスに蓄積する方法を前編・後編に分けて紹介します。
※Microsoft Fabricの始め方や細かい操作方法等は、以前の記事を参照ください。
- Microsoft Fabricを利用してPower BIで表を作成する【前編】 - JBS Tech Blog
- Microsoft Fabricを利用してPower BIで表を作成する【後編】 - JBS Tech Blog
データの準備
利用するデータは、以下のサイトで提供されている「Online Retail.xlsx」ファイルです。
https://archive.ics.uci.edu/dataset/352/online+retail
[DOWNLOAD]ボタンを押下することによりzipファイルがダウンロードされるので、解凍して利用します。
今回は、月次でデータを連携するシナリオに合わせるために、手作業でファイルの分割を行います。
「InvoiceDate」欄を利用して月ごとでデータを分割し、ファイル名は「retail_*.xlsx」として、「*」部分に3文字(jan、feb等)で月をいれた形で保存します。
パイプラインの構築
今回作成するパイプラインは、Data Factoryを利用して以下のように作成します。
- レイクハウスのファイルからテーブルへのコピー
- ノートブックを利用した加工
- レイクハウスのテーブルからウェアハウスへのコピー
設定後のパイプラインの状態は下図のようになります。
レイクハウスの作成
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での表示を紹介します。