Microsoft Fabric使ってみる(データフローGen2編)

今回はデータフロー(Gen2)を使ってパイプラインを作成する練習です。
レイクハウスの使い方は前回の記事に書いております。
アカウントの準備、ワークスペースの作成方法については、下記内容を参照ください。

https://qiita.com/fsd-kozue/items/94a3dfcacfc5d872321c

## データを取り込むためのデータフロー(Gen2)を作成する
1. ワークスペースのホームページで、 [New Dataflow Gen2] を選択します。数秒後、次に示すように、新しいデータフローの Power Query エディターが開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/b92cabd3-5fad-d87d-043d-79475167c4b5.png)

1. [テキスト/CSV ファイルからインポート] を選択し、次の設定で新しいデータ ソースを作成します。
ファイルパスは `https://raw.githubusercontent.com/MicrosoftLearning/dp-data/main/orders.csv`を入力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/05a5b8e7-e0db-09d2-624a-e586c7f5516a.png)
1. [次へ] を選択してファイル データをプレビューします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/f1695fd4-ba44-b3d0-48bb-003be2a9f9d2.png)
1. 作成ボタンを押してデータソースを作成します。
Power BI Desktopを使用したことがある方は見たことある画面レイアウトだと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/2a6e76c2-c2cc-7928-b7bb-1f3e386c3a1f.png)
1. 次にツールバーのリボンで、列の追加タブを選択します。次に、 [カスタム列] を選択し、新しい列を作成します。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/840485a9-8b58-5496-7789-981f966323c8.png)
1. [新しい列名] を` MonthNo ` と設定し、[データ型] を [整数] に設定して、カスタム列の式` Date.Month([OrderDate]) `を追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/3206e98a-09a2-77a1-a31f-c68f357bc645.png)
1. [OK] を選択して列を作成し、カスタム列を追加する手順がクエリにどのように追加されるかを確認します。結果の列がデータ ウィンドウに表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/0ebe4a61-8cf8-dcef-b43b-544d2e7dd928.png)

## Dataflow のデータ送信先を追加する
1. ツールバーのリボンで、[ホーム]タブを選択します。次に、 [データ送信先の追加] ドロップダウン メニューで、 [Lakehouse] を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/1711917d-7103-3fc0-040d-954e5e025f9a.png)
1. [データの送信先に接続] ダイアログ ボックスで、接続を編集し、Power BI 組織アカウントを使用してサインインし、データフローがレイクハウスへのアクセスに使用する ID を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/befc3a18-fba9-6a71-fa67-c3eb24f003b8.png)
1. [次へ] を選択し、使用可能なワークスペースの一覧でワークスペースを見つけて、この演習の最初に作成したレイクハウスを選択します。次に、orders という名前の新しいテーブルを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/53dd13ea-8684-4803-5595-6af0d962d017.png)
1. [宛先設定の選択] ページで、[追加] を選択し、 [設定の保存] を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/78af6dc2-f673-f86b-bc6e-979ec496d295.png)
1. メニュー バーで [表示] を開き、[ダイアグラム ビュー] を選択するとアイコンでフロー図が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/092d49b0-1d09-a418-80a9-7e0bf949413d.png)
1. 最後に公開ボタンを押してデータフローがワークスペースに作成されるのを待ちます。

## パイプラインにデータフローを追加する
1. ワークスペースに戻って、[新規]→[データ パイプライン] の順に選択し、メッセージが表示されたらパイプライン名を付けて、データの読み込み という名前の新しいパイプラインを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/5928d218-d2be-0d84-c59b-4a26023e7973.png)
1. [パイプライン アクティビティの追加] を選択し、パイプラインに Dataflow アクティビティを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/88d5053a-0dc2-1af6-10ad-2003207c5c1a.png)
1. 新しい Dataflow1 アクティビティを選択した状態で、[設定] タブの [データフロー] ドロップダウン リストで [データフロー 1] (以前に作成したデータ フロー) を選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/39d21633-9a13-f6d2-12fb-8207ebde22ba.png)
1. [ホーム] タブで、(保存) アイコンを使用して🖫パイプラインを保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/eac03e1c-993b-f16b-0c3f-32dbbd2fee1d.png)
1. ▷ 実行 ボタンを使用してパイプラインを実行し、完了するのを待ちます。数分かかる場合があります。
エラーになった場合は、Dataflowの設定ミスや移送先のテーブルとアンマッチな可能性がありますので見直しましょう。(私も沼りました)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/c2c9a147-94f1-ed4e-f915-e148dde065a4.png)
1. 最後に取り込んだデータをレイクハウスで確認します。
[テーブル] のメニューで [更新] を選択します。次に、 [テーブル] を展開し、データフローによって作成された orders テーブルを選択すると、元データと同じデータ項目でテーブルに取り込まれていることが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885406/c875e560-2ef4-86f1-12e6-170c56236c36.png)

## まとめ
データフローGen2を使ってデータを取り込む方法は、Azure DataFactoryと同等の機能ですので、すでにDataFactoryの利用方法をマスターされている方は違和感なく操作できそうです。