Power BI ユーザ視点の Microsoft Fabric 解説と操作体験 ~ Fabric で 訪日外客数データ分析

# はじめに
Microsoft Build 2023 で発表された SaaS 型のデータ分析プラットフォーム Microsoft Fabric について興味をお持ちの方も多いと思います
この記事では、現在 Power BI をご利用の方からの視点で、Microsoft Fabric がどのように活用できそうか？ 今のPower BI と何がちがうのか？ どこで何を設定すればいいのか？ を Power BI と対比させながら解説し、既に Qiita 記事シリーズ化している訪日外客数レポートをFabric で作成してみたいと思います

Microsoft Fabric については、下記 Qiita の記事が全体像をわかりやすく解説していますので参照下さい

https://qiita.com/yangjiayi/items/605d9679e1e35d391a1a

# Microsoft Fabric の 醍醐味
Microsoft Fabric は、データエンジニア、データサイエンティスト、データアナリスト、ビジネスユーザといったデータ活用に関わる全ての役割の人がひとつのプラットフォームを利用できるコンセプトですが、
その中でも特に、データアナリストやビジネスユーザといった**市民開発者レベルのユーザにとって強力なデータ活用プラットフォーム**となると考えています

企業の業務データ活用現場を見ていると、実際にはそんなにきれいに役割はわかれていないのが実状です
IT部門から公開された実績データだけでなく、業務側にしかないデータを紐づけて分析したいとなれば、データエンジニア的なデータ結合や加工作業から可視化分析、データサイエンティストさながらに機械学習を用いた分析まで、ビジネスユーザが 1人が何役もこなして少数精鋭で作業しており、
しかもたいしたマシンパワーもない業務用PCで、データ分析ツールも入っておらず、Excel等を駆使して頑張っておられる業務現場が日本の企業にはまだまだ多いのです！！

本当のデータ活用は、可視化だけでは実現しずらく
可視化と同時に、**必要なデータに自由に触れてデータ加工できる作業環境がビジネスユーザに与えられているか**が非常に重要です

Microsoft Fabric は、そのようなビジネスユーザが、
**GUI による直感的な操作**や、**AI Copilot によるの強力な技術サポート**を受けることで、より多くのタスクを自分自身で簡単に実装できて、**企業のデータ活用を加速させるツール**と考えています

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/ac2dcc80-ddd9-42a9-1f2b-e044857afeaf.png)

# Microsoft Fabric 利用にあたり覚えておくべき用語と概要
Power BI ユーザ視点では、聞きなれない用語や機能が多数でてきますが、
レポート作成やデータ分析等のデータ活用観点でも、以下は最低限理解しておいた方がよいでしょう

**OneLake：**
・組織全体のための単一の統合されたSaaSデータレイクで、OneLake ですべての組織の構造化、半構造化、非構造化のデータを管理します

**ワークスペース：**
・Microsoft Fabric アイテム（レイクハウス、レポート、データ操作のためのフロー等）のコンテナーとして使用されるものです
・共有ワークスペースは、複数のユーザーやグループがアクセスできるもので、Microsoft Fabric 管理者が作成や配布を管理できます

**レイクハウス：**
・データ レイク ストレージの柔軟性とデータ ウェアハウス分析を組み合わせたものです
・レイクハウスに必要なデータを格納し、Fabricに準備された様々な分析ツールやプログラミング言語で使用できます
・ワークスペースに複数のレイクハウスを作成できますが、レポート作成に必要なデータは１つのレイクハウスに格納されている必要があるので、目的別にレイクハウスを作成するのがよさそうです

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/2420bf28-7f6f-e397-e6de-4a6d3160352c.png)

# Microsoft Fabric が Power BI よりすごくなったポイント
Power BI Desktop から Microsoft Fabric に進化したことで、データ活用の観点から各段に便利になったポイントを以下に整理します

## ★ポイント1: <BR> Power Query エディター取り込み＋クレンジングしたデータをレイクハウスに保存できるようになった
Fabric で登場した新しい 「データフロー Gen2 」により、Power BI のデータセットとなるデータ（Delta Parquet 書式) がレイクハウスにロードされ、他のレポートやアドホックな分析にも自由に活用できるようになりました！

## ★ポイント2: <BR> 複数のデータ取り込みやデータ加工処理をパイプライン管理できるようになった
データ取り込みやクレンジング処理をデータフローGen2 で保存することにより、それらを繋げてジョブフローとして、処理の前後制御、エラーハンドリング、スケジュール実行等のパイプライン管理ができるようになりました
定期実行にして自動化することで、ルーチンワークから解放されます！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/3cff82d1-8812-ae45-3a70-d4457b90654f.png)

## ★ポイント3: <BR> ショートカットで既存データを2重持ちせずにデータ分析に利用できる
業務実績データは既に別システム（ストレージ）で管理されていることが多く、その実績データと手元のデータを紐づけて新たな切り口で分析したい場合、別システムから必要なデータを抽出して手元にコピーして分析していることが多かったはず
ショートカット機能を利用することで、このデータ抽出やコピー、容量確保から解放され、本来注力すべきデータ分析作業に集中できます！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/f087d5e9-ae3f-e44b-4be9-0572ae1af6d1.png)

# Microsoft Fabric と Power BI Desktop 操作対比
Power BI では、Power Query エディターや Power BI Desktop のビューを切り替えて各作業を行っていましたが、
Microsoft Fabric では、更に多くの機能があるため、各操作の入り口が少しずつ異なりますが、その中での操作はPower BIでの操作感そのままなので、入り口を覚えてしまえば、Power BI ユーザにとってはすぐに馴染めると思います
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/477a33d0-6aee-4d5f-50f1-161c89ea032b.png)

# Microsoft Fabric で 訪日外客数データ分析体験
本書では「訪日外客数データで Power BI レポート作成シリーズ」のクレンジング編と基本編をMicrosoft Fabricを使って操作するとどうなるかを比較体験していきたいと思います

https://qiita.com/mimocihz/items/e7a4742c099691caa33b

https://qiita.com/mimocihz/items/c157e1b5e51fb0b58b6d

また、この体験手順は、本家のチュートリアルを参考にしています

https://learn.microsoft.com/ja-jp/power-bi/fundamentals/fabric-get-started

## 1. Microsoft Fabric を始める
こちらの https://aka.ms/TryFabric にアクセスし、試用版を開始してください
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/e4e65679-8db0-aa46-6a03-3bc77e1c1b5f.png)

## 2. 新しいワークスペースを作成
① 左メニューから「ワークスペース」を選択し、「＋新しいワークスペース」ボタンをクリック
② ワークスペースの名前を入力し、「適用」ボタンをクリック
　※ワークスペース名は、Fabric テナント内でユニークな名前をつける
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/a3975663-57f5-c91f-e23b-2a95adcb7d48.png)

## 3. データを格納するレイクハウスを作成
① 「＋新規」ボタンから「すべて表示」を選択
② 「レイクハウス」をクリックし、レイクハウス名を入力 
　例）lakehouse_ForeignVisitors
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/2e767967-19b3-548f-4d19-9501267d9ff8.png)

## 4. 訪日外客数データの取り込みとクレンジング
訪日外客数データは、日本政府観光局が公開しているオープンデータの国/月別の訪日外客数データを使います

https://www.jnto.go.jp/statistics/data/visitors-statistics/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/a1889a17-922a-7391-db0a-7ab0bc176a06.png)

Power BI Desktop では、Power Query エディターで操作していたデータ取り込みとクレンジングは、
Fabric では、「データフロー Gen2」という機能を使いますが、名前こそ変わっていますが、95％ Power Query エディターです

① 「データフロー Gen2」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/835ddf79-1f9f-5364-42c0-645ae139b034.png)
② 「Excel からインポート」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/8ac92131-2d20-708f-595f-874989a9862e.png)
③ 「ファイルへのリンク」を選択し、「ファイルパスまたは URL」に以下 URL を指定し、「次へ」をクリック
https://www.jnto.go.jp/statistics/data/since2003_visitor_arrivals.xlsx
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/bf8eeff8-7fcb-dfd4-be55-542ac61d55ed.png)

:::note warn
注意：Power BI Desktop のときは、[Web ページ]からデータを取得しましたが、
Fabric の場合 Webページコネクタにはゲートウェイが必要となるため、Excel > URLを指定します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/921e54f8-dd1b-8762-80dd-c37b3c22e460.png)

Fabric へのデータ取り込みは、Power BI Desktop 同様に多くのデータソースコネクタが用意されています
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/3ca924e4-9927-0e21-911b-9c2084b65292.png)
:::

ここからは Power BI Desktop の 操作と一緒ですが、この記事でも途中まで手順書きますね

④  [2003-2019] データの作成
・[2003-2019] の代表年シートとして、[2019] を選択し、「作成」 をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/874d3ead-f5a9-296b-cc74-c28364fbe2bf.png)
・適用したステップの一番上の[ソース] 以外のステップは一旦消す（ステップ左の×をクリック）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/00f88b30-dd69-880c-c01a-9e19cb93f389.png)
・プロパティ名を [2003-2019] に変更

・不要なシートデータは削除する
・行の削減 > 行の削除 > 上位の行の削除 > 行数: 4
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/28a5a444-fbf8-49c9-3a00-91397edbf81d.png)
・行の削減 > 行の保持 > 上位の行の保持 > 行数: 17
・[Data] 列の展開ボタンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/d2c00ab0-43ef-787e-abe9-24aba9e141e9.png)

・このように Power BI Desktop と全く操作手順は同じなので、あとの手順はこちらの記事を参照して進めて下さい

https://qiita.com/mimocihz/items/e7a4742c099691caa33b#-%E5%B9%B4%E6%AF%8E%E5%88%86%E3%81%8B%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%83%87%E3%83%BC%E3%82%BF%E3%82%921%E3%81%A4%E3%81%AE%E8%A1%A8%E3%81%AB%E5%8F%96%E3%82%8A%E8%BE%BC%E3%82%80


⑤  [2020~] データの作成
・データの取得 > Excel ブック > 「ファイルパスまたは URL」に以下 URL を指定し、「次へ」をクリック
https://www.jnto.go.jp/statistics/data/since2003_visitor_arrivals.xlsx

・[2020~] の代表年シートとして、[2020] を選択し、「次へ」 をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/59e3bf86-388c-1691-d62e-f0c71de4a8c8.png)

・あとの手順はこちらの記事を参照して進めて下さい

https://qiita.com/mimocihz/items/e7a4742c099691caa33b#2020%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E5%8F%96%E3%82%8A%E8%BE%BC%E3%81%BF%E3%81%A8%E3%82%AF%E3%83%AC%E3%83%B3%E3%82%B8%E3%83%B3%E3%82%B0

⑥ [2003-2019] と [2020~] データを縦結合
・ホーム > 変換 > クエリをアペンドする > クエリを新規クエリとしてアペンドする
・最初のテーブルに [2003-2019]、2つ目のテーブルに [2020~] を選択して [OK] クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/60ac0974-a943-145b-c1ad-a8ea0f6f0150.png)

・プロパティで名前を [foreign_visitors] に変更する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/02a8b30d-6e53-94aa-771b-aa9691f6a169.png)

## 5. 訪日外客数データをレイクハウスに格納
① 右下の「データ同期先」の「＋」をクリックし、[レイクハウス]を選択
　接続情報はそのまま「次へ」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/ed6451a9-78cc-4403-46d9-9841d16a0e09.png)
② 出力先のワークスペース > レイクハウスを選択し、テーブル名を入力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/f2290ebf-d991-db01-deaf-56323047c547.png)
③[更新方法] を [置換] に設定し、[設定の保存] を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/1ff09313-7aea-6cd0-af95-0b25fa9a1ec3.png)
④「公開」ボタンをクリックし、レイクハウスへ出力実行
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/efd74fe8-5a90-dbff-6988-5e82e345ce77.png)
⑤ データフローを右上の×ボタンで閉じ、リストからプロパティを開き、データフローに名前をつけて保存
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/e92bd7b7-4671-d7fc-b978-7ef4e8bafac5.png)
⑥ レイクハウスを開き、訪日外客数データが作成されていることを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/af763279-47d9-b987-fb1c-6afb7760cd9e.png)

## 6. 国マスタの取り込みとクレンジング
国マスタは、Github に上げているデータを使用します

https://github.com/mimocihz/powerbi_sample_report

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/1beaf67a-c215-eec6-9fcd-d764460f56b4.png)

① レイクハウス画面の左上の データを取得 > データフロー Gen2 を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/56174542-2705-98f4-f3a8-9ca4b7565aab.png)
② [TextファイルまたはCSVファイルからインポート]を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/99d2cdaf-3778-6d1f-49db-71251a8b09c9.png)
③「ファイルへのリンク」を選択し、「ファイルパスまたは URL」に以下 URL を指定し、「次へ」をクリック
https://raw.githubusercontent.com/mimocihz/powerbi_sample_report/main/data/country_master_v2.csv
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/d03fe0da-801b-9cd9-d3fd-8b4bf782102e.png)
④ 元のファイルのエンコードを[932:日本語（シフトJIS）]に変更して文字化けを直して、「作成」ボタンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/4fd58210-4d4a-eeaa-a0b4-ff7991b3aa58.png)

## 7. 国マスタをレイクハウスに格納
① 「公開」ボタンをクリックし、レイクハウスへ出力実行
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/bfbca541-4a36-a944-3a02-ffa7e6421dea.png)
② データフローを右上の×ボタンで閉じ、リストからプロパティを開き、データフローに名前をつけて保存
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/ec792ba0-c32a-0cce-e311-403a8a1f9432.png)
③ レイクハウスを開き、国マスタが作成されていることを確認
　※たまに反映が遅い時があり、追加したテーブルが「正体不明」と表示されるときがある
　　その場合は、左上の「最新の情報に更新」マークをクリックして反映されるのを待つ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/07dc18d0-a70c-a99f-2635-f33ef2222c14.png)

## 8. データのリレーションを作成
Power BI Desktop でモデルビュー及びレポートビューで実施していたテーブル間のリレーションやDAXメジャー項目の作成は、Fabric では、レイクハウスの「SQL エンドポイント」画面にて行います

① レイクハウスから「SQL エンドポイント」に切り替える　
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/9f78d6d8-d9b0-684a-69eb-5c6294a067f4.png)
② 下のタブで「モデル」モードに切り替える
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/edca36d7-7655-3ec1-ba81-8a13e6edb96e.png)
③ [foreign_visitors] の [国名] から [Country_master_v2] の [国名] に向かってドラック＆ドロップし、
リレーションシップを作成し、「確認」ボタンをクリック

:::note warn
注意
リレーションシップ作成時、多から1 のテーブルへドラッグ&ドロップしないと、
ファクト：ディメンション = 1 : 多という意図しないリレーションシップが作成されてしまう可能性あり
（これは2023年6月時点の状況です。そのうち改善されるでしょう）
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/b318326e-0a83-68c5-3bc5-1030696438d6.png)

## 9. レポートを作成
① レイクハウスの「SQL エンドポイント」の上のタブで「新しいレポート」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/83c9b6be-ede0-8998-d474-acff1bce82e0.png)

見ておわかり頂けると思いますが、レポート作成は、Power BI Desktop のレポートビューそのものです

② 訪日外客数の時系列推移を可視化してみる
・視覚化ペインから「折れ線グラフ」を選択
・データペインの [foreign_visitors] から ビジュアルの X 軸：[年月]、Y 軸：[人数]をドラック＆ドロップ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/23ad5180-77f4-c9fc-5ff2-f8a92b80c384.png)

操作方法は Power BI Desktop とほぼ同じですので、下記のQiita記事を参考に続きの可視化をして見て下さい
国マスタとのリレーションは、step:8 で既に作成済みですので、このレポートビューで操作は不要です

https://qiita.com/mimocihz/items/c157e1b5e51fb0b58b6d#%E5%90%84%E5%9B%BD%E3%81%AE%E8%A8%AA%E6%97%A5%E5%A4%96%E5%AE%A2%E6%95%B0%E3%81%AE%E6%A7%8B%E6%88%90%E6%AF%94%E3%82%92%E5%8F%AF%E8%A6%96%E5%8C%96%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B


国マスタのようなマスタテーブルが存在する場合は、凡例にはマスタの項目を設定しましょう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/8969e0fa-f7f6-3649-797f-c5740f8c4d1d.png)

③ 右上の保存ボタンをクリックし、レポートの名前を入力して、「保存」する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/3a18b8b4-3cf7-a904-3d27-a8c671743f6f.png)

・ワークスペースのリストから、レポートを開くことができる
　レポートを編集したい場合は「編集」ボタンをクリックして、編集モードで内容変更する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/328d2ff9-edfb-be14-e258-2cbc480df1e7.png)

# Power BI Desktop のあの機能はどこ行った？ 
操作方法は Power BI Desktop とほぼ同じですが、メジャー項目設定のように事前にレイクハウスの「SQLエンドポイント」画面で設定する機能がいくつかあります

筆者が、訪日外客数レポート作成をFabricで設定してる中で、あれ？あの機能どこ行った？と迷った機能 4 点について、Fabricではどこでどう設定するのかを共有します

## ★数値の桁数カンマ区切り等の書式設定はどこで設定できる？
Power BI Desktop では、データペインの対象項目を選択した状態で、「列ツール」> 「書式設定」で編集できた書式設定機能は、
Fabric では、レイクハウスの「SQLエンドポイント」画面で「モデル」モードにして、対象テーブル・項目を選択した状態で、右のプロパティの「書式設定」で編集できます
桁区切りを入れたい場合は、「桁区切り記号」を「はい」に設定します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/23fa66e1-00d2-b686-e087-951cded14a3e.png)

## ★「計算列（新しい項目）」はどこで作成できる？
Power BI Desktop では、データペインから「新しい列」でDAX計算式を用いて新しい計算列を自由に追加できましたが、
Fabric では、レイクハウスの「SQLエンドポイント」画面では「メジャー項目」は作成できるますが、「計算列」を作成する機能は現時点(2023年6月)ありません
なので、列の追加は「データフロー Gen2 」= Power Query エディター側で作成しておく必要があります

少々不便になったように感じますが、実はPower BI Desktop 時代から列の追加は Power Query で実装することがパフォーマンスの観点でお勧めなのです

https://learn.microsoft.com/ja-jp/power-bi/guidance/import-modeling-data-reduction#preference-for-custom-columns


## ★日付の階層設定はどこで設定できる？
Power BI Desktop では、データペインの対象項目を選択して右クリックメニューで「階層の作成」ができましたが、
Fabric では、レイクハウスの「SQLエンドポイント」画面で「モデル」モードにして、対象テーブル・項目を選択した状態で、右のプロパティの「階層」で設定できます
ただし、Power BI Desktop 時には「日付の階層」という機能がありましたが、Fabric では現時点(2023年6月)ありませんので、階層型にしたい「年」「四半期」「月」などの項目を予め作成しておき、階層に設定する必要があります
また、このような日付階層は、カレンダーマスタを作成し、そこに集中管理させることが望ましいです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/0c4b9d58-eb21-90d5-9e29-9a969c733338.png)


## ★棒グラフ等のビジュアルでの軸の並べ替えはどこて設定できる？
Power BI Desktop では、各ビジュアルの右上のプロパティから「軸の並べ替え」ができるビジュアルもありましたが、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482258/fdfdb2ce-68dd-1292-708d-67cc5601b329.png)
Fabric では現時点(2023年6月)ありません
Power BI Desktop 時代からの以下のQiita記事を参考に代替え実装してみて下さい

https://qiita.com/rygondo/items/11cd5f78d47f51d59c21


# 次回は
Power BI ユーザ視点の Microsoft Fabric 解説と操作体験 ~ 訪日外客数データ取り込み＋加工フローの自動パイプライン化
について記事公開しようと思います