Microsoft Fabric 半構造化データの取得から可視化までの流れ

Microsoft Fabricとは、統合ソリューションを必要とする企業向けに設計されたエンドツーエンドの分析およびデータプラットフォームです。SaaS型のサービスとして提供されています。

今回は、そんなMicrosoft Fabricを使って半構造化データを取得し、グラフ作成による可視化まで行う方法をご紹介します。

実施概要

本記事では、ローカル上の半構造化データ(今回はJSONファイル)をMicrosoft Fabricのレイクハウスにアップロードし、データフロー Gen2を使用してテーブル変換と加工、格納を行います。

その後、Power BIを使用してグラフを作成し、データの可視化を行います。

事前準備

今回は、半構造化データとして、Webサイトのユーザーアクティビティを記録したJson形式のログファイルを以下のように自作しました。

log_data_20220101.json

[
  {
    "timestamp": "2022-01-01T00:02:56",
    "user_id": "Liam789",
    "url": "/cart",
    "status_code": 200,
    "referrer": "/products/654",
    "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36",
    "gender": "-"
  },
  {
    "timestamp": "2022-01-01T00:07:02",
    "user_id": "",
    "url": "/checkout",
    "status_code": 200,
    "referrer": "/cart",
    "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36",
    "gender": ""
  },
  {
    "timestamp": "2022-01-01T00:13:09",
    "user_id": "Mia567",
    "url": "/home",
    "status_code": 200,
    "referrer": "",
    "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36",
    "gender": "female"
  },…
	

各項目の意味は以下の通りです。

  • timestamp
    • ユーザーのアクションが記録された時間
  • user_id
    • ユーザーID
  • url
    • ユーザーがアクセスしたURLのパス
  • status_code
    • サーバーから返されたHTTPのステータスコード
  • referer
    • ユーザーがリンク元としてアクセスしてきたURL
  • user_agent
    • ユーザーが使用しているブラウザやデバイス情報
  • gender
    • ユーザーの性別情報

実施手順

レイクハウスへのJSONファイルアップロード

レイクハウスの新規作成

まず初めに、JSONファイルを格納するためのレイクハウスを作成します。

1.Fabricのホーム画面から「Synapse Data Engineering」をクリックします。

2.レイクハウスをクリックします。(今回はマイワークスペース上に作成します。)

3.任意の名前を入力し、「作成」をクリックします。

4. 作成が完了すると、作成したレイクハウスのホーム画面が自動的に表示されます。

JSONファイルのアップロード

次に、ローカル上のJSONファイルをレイクハウスにアップロードします。

まずは、データの整理をするためにフォルダー作成を行います。

1.Filesの右側に表示される「…」 > 「新しいサブフォルダー」を順にクリックします。

2.フォルダー名(を入力し、「作成」をクリックします。

3.Files配下に「2022」フォルダーが作成されたことを確認し、2022フォルダーの右側にある「…」 > 「アップロード」 > 「ファイルのアップロード」を順にクリックします。

4.ファイルのアップロード画面が表示されるため、ローカル上の「log_data_20220101.json」ファイルを選択し、「アップロード」をクリックします。

5.ファイルのアップロードが完了すると、フォルダー配下にファイルが格納されていることが確認できます。

また、フォルダーの中身のファイル名をクリックすると、レイクハウス上からJSONファイルの内容を参照することができます。

データフロー Gen2を用いたデータの変換、テーブル作成

JSONファイルをテーブルに変換することでグラフを作成可能になるため、データフロー Gen2を使用してテーブル変換とレイクハウスへの格納を行います。

以下の手順でデータの格納を行います。

  • データフロー Gen2の新規作成とデータ取得
  • テーブルへの変換
  • データ型の自動変換
  • データのフィルタリング
  • テーブルのアップロード
データフロー Gen2の新規作成とデータ取得

1.「データを取得」 > 「データフロー Gen2」を順にクリックします。

2.Dataflow4をクリックし、任意の名前に変更を行います。

3.「データを取得」 > 「詳細...」を順にクリックします。

4.データソースとして「レイクハウス」をクリックします。

5.接続は規定値のまま、「次へ」をクリックします。

6.取得するファイル(log_data_20220101.json)を選択し、「作成」をクリックします。

7.データの取得が完了し、クエリ欄にアップロードしたファイルが表示されることを確認します。

テーブルへの変換

取得したJSONファイルをテーブルに変換を行います。

1.「テーブル表示」をクリックします。

2.規定値のまま、「OK」をクリックします。

3.Column1の右側にある記号をクリックします。

4.「OK」をクリックします。

5.JSONファイルがテーブルに変換されたことを確認します。

データ型の自動変換

1.全ての列を選択し、「データ型の検出」をクリックします。

2.抽出が完了し、各カラムのデータ型が自動的に変更されたことを確認します。

データのフィルタリング

次にデータのフィルタリングを行います。

今回は、user_idが空のデータを削除します。

1.user_idの列を選択し、「ホーム」 > 「行のフィルター処理」を順にクリックします。

2.user_idが空のデータを削除する設定を行い、「OK」をクリックします。

3.フィルタリング処理が完了し、user_idが空のデータが削除されたことを確認します。

※今回は、50件中4件のデータが削除されました。

テーブルのアップロード

データの加工が完了したので、作成したテーブルを、先ほど用意したレイクハウスにアップロードします。

1.データ同期先の歯車マークをクリックします。

2.規定値のまま、「次へ」をクリックします。

3.格納先データレイクを選択し、任意のテーブル名を入力して「次へ」をクリックします。

4.既定値のまま「設定の保存」をクリックします。

5.「公開」をクリックして、データフローを実行します。

6.データフローの実行後、アップロードされたレイクハウスで、先ほど作成したテーブルを確認できます。

Power BIによるグラフ作成

テーブルの作成が完了したので、今度はPower BIによるグラフ作成を行います。

レポートの新規作成

1.「Lakehouse」 > 「SQL分析エンドポイント」を順にクリックし切り替えを行います。

2.「新しいレポート」をクリックします。

3.「続行」をクリックします。

※レポート作成時には、既定のデータセットへの追加が必要になるので、今回はそのまま続行して追加します。

4.データの追加が完了すると自動的に画面が切り替わり、新規レポートが作成されます。

グラフ作成

今回は「2022年1月1日の各URLの表示割合」を示す円グラフを作成したいと思います。

1.視覚化オプションから「円グラフ」をクリックします。

2.「URL」を凡例と値にドラッグして配置します。

3.各URLの表示割合を示す円グラフが自動作成されたことを確認します。

4.「ビジュアルの書式設定」 > 「全般」 > 「タイトル」を順にクリックし、任意のタイトルに変更します。

以上で、JSONファイルのデータを元にしたグラフの作成と、データの可視化を行うことができました。

おわりに

今回は、Microsoft Fabricを使用した、半構造化データの取得からその可視化までを紹介しました。

本記事では単一の半構造化データをテーブルに変換し可視化を行いましたが、複数のデータソースを組み合わせることで、より詳細なグラフ作成とデータの可視化が可能にななります。ぜひ試してみてください。

執筆担当者プロフィール
松井 耕太

松井 耕太(日本ビジネスシステムズ株式会社)

2023年度入社。Data&AIプラットフォーム部所属。

担当記事一覧