Microsoft Fabricを使用してデータ格納・加工をしてみた

こんにちは、2年目の加藤です!

私は最近、Microsoft Fabricを使用したデータ加工の技術検証を行っています。Microsoft Fabricは2023年から一般リリースされたということもあり、技術ドキュメントが少なく、戸惑う部分があったので「使ってみた」として記事に残そうと思います。

構成図

Microsoft Fabric レイクハウスでメダリオン アーキテクチャを作成する | mslearn-fabric.ja-jp

今回は、上記のMicrosoft公式が出しているハンズオンを中心にデータ取得・加工を行っていきます。
ハンズオンの構成図としては、下記のようになっています。

メダリオンアーキテクチャとは?
データ分析やデータプラットフォームの設計において使用される一般的なアーキテクチャのフレームワーク。ブロンズ、シルバー、ゴールドのレイヤーが存在する。
ブロンズ:未加工のデータを格納
シルバー:クレンジング済み(欠損値補填、重複排除など)データを格納
ゴールド:BIツールや機械学習で使用しやすい形(ビジネスに特化した形)に整形したデータを格納
しかし、このハンズオンではNotebookを利用しており、データ変換過程が何を行っているのか分かりづらいので、本記事では、Data Factory内のDataflow Gen2というGUIベースでデータ格納を行えるアイテムを使用します。
改めてDataflow Gen2を使用した構成図を下記に示します。

手順

環境準備

1 Microsoft Fabric用アカウントを作成する
現在、誰でも60日間無料でFabricを利用できるので、それを利用してアカウントを作成します。
始める | Microsoft Fabric

2 Fabric内でワークスペースを作成する
画面左側の「ワークスペース」>「新しいワークスペース」を押下します。
ワークスペースの名前を入力し、画面右下の「適用」を押下します。

テストデータを準備する

1 売上csvデータをダウンロードする
ハンズオンで案内されているcsvファイルをローカルにダウンロードします。
Microsoft Fabric レイクハウスでメダリオン アーキテクチャを作成する | mslearn-fabric.ja-jp

2 レイクハウスに売上データを格納する
Fabricワークスペース上から「新しい項目」を押下し、「レイクハウス」を選択します。

新しいレイクハウスに名前(例 Sales)を入力し、「作成」を押下します。

レイクハウス内の画面左側タブの「Files」>「新しいサブフォルダー」にて、データ格納のためのフォルダ(例:bronze)を作成します。

新しく作成したフォルダーを押下し、画面上部の「データを取得」>「ファイルのアップロード」を押下し、ローカルにダウンロードしたcsvファイルをアップロードします。

アップロードしたファイルが存在することを確認します。

アップロードしたファイルが確認できない場合、フォルダーにカーソルを合わせた際に表示される「」を押下し、「最新の情報に更新」を押下します。
これで、売上データをFabric上に格納することができました。

データを加工する

ハンズオンでは、データ加工として下記プロセスを行っています。

  • 売上データのクレンジング及びテーブル化
  • テーブル化したデータから各種データ(顧客、製品、日付)を抽出
  • 各種データ(顧客、製品、日付)から最終売上テーブルを作成

本記事では、「売上データのクレンジング及びテーブル化」をデータ加工の例として記載します。

 

1 Dataflow Gen2を作成する
対象のワークスペースで「新しい項目」を押下し、「データフロー(Gen2)」を選択します。

名前(例:Transform data for Silver)を入力し、「作成」を押下します。

2 データを取得する
「データを取得。」を押下します。

レイクハウスを選択し、デフォルト設定のまま「次へ」を押下します。

先ほど作成したレイクハウス内のフォルダの売上データを選択し、「作成」を押下します。

作成していないフォルダが存在する場合があるが、これはFabricが裏側で使用するデータが見えているだけなので無視して良い
3 データを加工する
ハンズオン内では具体的に下記のデータ加工を行っています。
  • 列名の変更
  • データ型の変更
  • ソースcsvファイル名を格納する列の追加
  • 現在時間を格納する列の追加
  • 2019/8/1より古いデータにフラグを立てる列の追加

列名の変更
プレビュー画面の列名をダブルクリックし、適切な列名をつけます。

 

データ型の変更
基本的に自動でデータ型を読み込んで変換をしてくれますが、任意で変更したい場合にはプレビュー画面の列名横のアルファベットや数字などのイラストを押下して変更することができます。

 

ソースcsvファイル名を格納する列の追加
「列を追加します」>「カスタム列」を押下します。
列名(例:FileName)とデータ型に「テキスト」を選択し、カスタム列の式にソースcsvファイル名(例:”2019.csv”)を入力します。

 

現在時間を格納する列の追加
「列を追加します」>「カスタム列」を押下します。
列名(例:CreatedTS)とデータ型に「日付/時刻」を選択し、カスタム列の式に下記の数式を入力します。
DateTime.LocalNow()

 

2019/8/1より古いデータにフラグを立てる列の追加
「列を追加します」>「条件列」を押下します。
列名(例:IsFlagged)を入力し、それ以外の条件を下記のように設定します。

列名 演算子 出力 Else
OrderDate 次の値より前: 2019-08-01 true false

データ型が「任意」になっているので、「True/False」に変換します。

 

以上の操作で、売上データのクレンジングができました。

今回の例では、2019年の売上データしか取り込んでいないのですが、2020年の売上データや2021年の売上データを取り込み、全てのデータを結合させることもできます。

データの結合
2019年と同様の操作を行い、2020年、2021年のデータを用意します。
「ホーム」>「クエリをアペンドする。」を押下します。

「3つ以上のテーブル」を選択し、追加するテーブルを選択します。

 

加工したデータをテーブルに保存します。
テーブル化したいクエリ内の「︙」の横にある「データ同期先の追加」>「レイクハウス」を押下します。

レイクハウスを選択し、デフォルトの接続設定のまま、「次へ」を押下します。
以前レイクハウスを使用した際の接続情報が残っているため、デフォルトの設定となります。
「新しいテーブル」を選択し、保存したいワークスペース、レイクハウス(例:test_kato/Sales)を選択します。
テーブル名(例:sales_silver)を入力し、「次へ」を押下します。

列マッピングはデフォルトのまま、「設定の保存」を押下します。

以上でテーブルとして保存するための設定ができました。
その後は、「ホーム」>「保存と実行。」を押下します。

実行が終わると、先ほど指定したレイクハウスにテーブルができます。

テーブル化することで、Power BIなどからテーブルを参照し、レポートとして利用することができます。

おわりに

本記事では、データの取得、データの加工をMicrosoft Fabircを使用して行ってみました。Dataflow Gen2を使用することで、データエンジニアではなくても、GUIベースでポチポチとボタンを押すことでデータ加工を行えるので、初心者の方でも取っつきやすいサービスだと感じました。ただ、データ加工をごりごりにやってこられた方にとっては、クエリでデータ加工を行った方が間違いも少なく、圧倒的に早くデータ加工ができるので、Dataflow Gen2だと物足りなさを感じるかもしれません。

Microsoft FabricはPower BIとの親和性が高く、Power BIを使われている企業は多いので、ある一定の需要があると思います。お客様への提案の幅を広げる、技術の幅を広げるという意味でも、一度Microsoft Fabricを触れてみてはいかがでしょうか?

タイトルとURLをコピーしました