1. はじめに
1-1 ご挨拶
初めまして、井村と申します。
Microsoft Fabricは、データの統合、エンジニアリング、分析、ビジネスインテリジェンスなどの機能を統合したSaaS型データ分析ツールです。
そしてMicrosoft Fabricは60日間のフリートライアル期間があります。
さらに、Microsoftが提供する無料のオンライン学習プラットフォームであるMicrosoft Learn(MSLearn)にはたくさんのMicrosoft Fabricに関する記事があります。
本記事はフリートライアル期間を利用してMSLearnの演習を行っていきます。
演習を通して気づいた点、Tips、なるべく多くのスクリーンショットをとりつつ備忘録として残していきます。
1-2 MSLearn
今回はMicrosoft Fabric でのレイクハウスの概要を行います。
この演習の学習の目的は以下の通りです。
- Microsoft Fabric のレイクハウスのコア機能について説明する。
- レイクハウスを作成します。
- レイクハウス内にあるファイルとテーブルにデータを取り込む。
- SQL を使用してレイクハウス テーブルでクエリを実行する。
1-3 Get started with Microsoft Fabric
以下からMicrosoft Fabricのフリートライアルを開始できます。
Get started with Microsoft Fabric
2. Microsoft Fabric のレイクハウスについて
Microsoft Fabricのレイクハウスについての概要になります。
-
レイクハウスの定義:
データベースとして表示され、Delta形式テーブルを使用してデータレイクを基盤として構築されます。リレーショナルデータウェアハウスのSQLベースの分析機能とデータレイクの柔軟性とスケーラビリティを組み合わせたものです。 -
利点:
- SparkエンジンとSQLエンジンを使用して大規模なデータを処理し、機械学習や予測モデリング分析をサポート。
- データの一貫性と整合性のためのACIDトランザクションがDelta Lake形式のテーブルを介してサポートされます。
- データエンジニア、データサイエンティスト、データアナリストがデータにアクセスして使用するための一元化された場所。
- データの取り込み:ローカルファイル、データベース、APIなど、さまざまなソースからデータを取り込むことができます。Azure Data Lake Store Gen2やOneLakeなどの外部ソースのデータに対してショートカットを作成することも可能です。
- セキュリティ:ワークスペースまたはアイテムレベルの共有を通じて管理され、秘密度ラベルを含むデータガバナンス機能もサポートされています。
3. 演習スタート
演習 - Microsoft Fabric レイクハウスを作成する
上記URLから演習を開始できます。実際のMicrosoft Fabricを使うため、とても勉強になります。
3-1 レイクハウスを作成する
1 . 赤枠の新しいワークスペースを押下します。
2 . ワークスペースの名前を記入し適用ボタンを押下します。
3 . 左側のメニューバーの (...) から作成を押下します。
4 . [データ エンジニアリング] セクションで、[レイクハウス] を選択します。
-
Tables フォルダには、SQL セマンティクスを使用してクエリを実行できるテーブルが含まれています。Microsoft Fabric レイクハウスのテーブルは、Apache Spark で一般的に使用されるオープン ソースの Delta Lake ファイル形式に基づいています。
-
Files フォルダーには、レイクハウスの OneLake ストレージに、マネージド デルタ テーブルに関連付けられていないデータ ファイルが含まれています。また、このフォルダにショートカットを作成して、外部に保存されているデータを参照することもできます。
3-2 ファイルのアップロード
検証材料であるcsvファイルは以下のURLに格納されています。このあとcsvファイルをダウウンロードし、レイクハウスにアップロードします。
1 . [ファイル] フォルダーの [...] メニューで [新しいサブフォルダー] を選択し、data という名前のサブフォルダーを作成します。
2 . 新しいデータ フォルダのメニューで [アップロード] と [ファイルのアップロード] を選択し、ローカル コンピューター からsales.csvファイルをアップロードします。
3 . sales.csvがレイクハウスにアップロードされたことを確認します。
3-3 ショートカット機能の確認
レイクハウスのOneLakeストレージにデータを取り込む方法はたくさんありますが、ショートカットを使用すると、外部ソースのデータを分析ソリューションに含めることができ、オーバーヘッドやコピーに関連するデータの不整合のリスクを回避できます。
今回は利用しませんがショートカットの画面を確認します。
1 . sales.csvがレイクハウスにアップロードされたことを確認します。
2 . ショートカットで使用可能なデータソースの種類を表示します。次に、ショートカットを作成せずに[新しいショートカット]ダイアログボックスを閉じます。
3-4 ファイル・データをテーブルにロードする
アップロードした売上データ(sales.csv)はファイル内にあり、データ アナリストやエンジニアは Apache Spark コードを使用して直接操作できます。ここではSQL を使用してクエリを実行できるように、ファイルからテーブルにデータをロードします。
1 . sales.csv ファイルのメニューで、[テーブルに読み込む] > [新しいテーブル] を選択します。
2 . [新しいテーブルにファイルを読み込む] ダイアログボックスで、テーブル名を sales に設定し、読み込みボタンを押下します。
3 . Tables フォルダ配下にsalesテーブルが作成されます。sales テーブルのメニューで [ファイルの表示] を選択し、このテーブルの基になるファイルを表示します。
差分テーブルのファイルは Parquet 形式で保存され、テーブルに適用されたトランザクションの詳細が記録される _delta_log という名前のサブフォルダが含まれます。
3-5 SQL を使用してテーブルをクエリする
レイクハウスを作成し、その中にテーブルを定義すると、SQL ステートメントを使用してテーブルをクエリできる SQL エンドポイントが自動的に作成されます。
1 . 画面右上の [Lakehouse]から[SQL分析エンドポイント]に切り替えます。こちらを行うことで、レイクハウスの SQL 分析エンドポイントがビジュアル インターフェイスで開き、そこからテーブルに対してクエリを実行できるようになります。
2 . ツールバーで、 [新しい SQL クエリ] オプションを展開し、 [新しい SQL クエリ] を選択して新しいクエリ エディタを開きます。
クエリ エディタを開き、次の SQL クエリを入力します。
SELECT Item, SUM(Quantity * UnitPrice) AS Revenue
FROM sales
GROUP BY Item
ORDER BY Revenue DESC;
3 . [実行]ボタンを押下後、各製品の合計収益を表示する結果を表示することができます。
3-6 ビジュアル クエリを作成する
Power BI の経験を持つデータ アナリストは、Power Query のスキルを適用してビジュアル クエリを作成できます。
1 . ツールバーで、 [新しい SQL クエリ] オプションを展開し、 [新しいビジュアル クエリ] を選択します。
2 . sales テーブルを選択し右クリック [キャンパスに挿入]を選択します。
※公式ドキュメントよりsales テーブルを新しいビジュアル クエリ エディター ウィンドウにドラッグして開く事もできるそうです。
3 . [列の管理] メニューで、[列の選択] を選択します。
4 . [列の選択] ダイアログボックスで、SalesOrderNumber 列と SalesOrderLineNumber 列のみを選択します。[OK]を押下します。
5 . 画面遷移後、下記テーブルが2列のみになっていることを確認できます。次に、[変換] メニューで、[グループ化] を選択します。
6 . [変換] メニューで、[グループ化] を選択します。次に、次の基本設定を使用してデータをグループ化します。[OK]を押下します。
- グループ化: SalesOrderNumber
- 新しい列名: LineItems
- 操作: 個別の値をカウントする
- 列: SalesOrderLineNumber
7 . 完了すると、ビジュアル クエリの結果ウィンドウに、各販売注文の品目の数が表示されます。
3-7 リソースをクリーンアップする
以上で演習は終了になります。最後はワークスペースを削除します。
1 . 左側のバーで、ワークスペースのアイコンを選択して、演習で作成したワークスペースの[...] - [ワークスペースの設定]を選択します。
2 . [全般] セクションで、名前を確認し、[このワークスペースの削除する] を選択します。
3 . [ワークスペースを削除しますか]ダイアログボックスで、[削除] を選択します。
以上でワークスペースが削除されます。お疲れ様でした!