Microsoft FabricのData Factoryを使ってみた-⑤

2024/02/25に公開1

やること

Data Factoryの中でNotebookを実行してみる

全体像

BlobからJsonファイルをLakehouseのFilesにコピーする
Notebookを起動しJsonファイルを読み込み、Tableに変換する

前提

・Azure上にAzure Blob storageを構築済みであること
・コンテナーを作成済みであること
・コンテナー内に適当にjsonファイルをアップロード済みであること
↓Jsonファイルの中身

[
  {"id": 1, "temperature": 23.5, "humidity": 40.1},
  {"id": 2, "temperature": 24.2, "humidity": 42.3},
  {"id": 3, "temperature": 22.8, "humidity": 45.6},
  {"id": 4, "temperature": 24.1, "humidity": 43.8},
  {"id": 5, "temperature": 25.6, "humidity": 41.2},
  {"id": 6, "temperature": 23.9, "humidity": 44.5},
  {"id": 7, "temperature": 24.5, "humidity": 40.6},
  {"id": 8, "temperature": 22.4, "humidity": 43.9},
  {"id": 9, "temperature": 23.2, "humidity": 42.8},
  {"id": 10, "temperature": 24.8, "humidity": 45.7},
  {"id": 11, "temperature": 25.3, "humidity": 41.1},
  {"id": 12, "temperature": 23.7, "humidity": 44.4},
  {"id": 13, "temperature": 24.4, "humidity": 40.5},
  {"id": 14, "temperature": 22.9, "humidity": 43.7},
  {"id": 15, "temperature": 23.6, "humidity": 42.9},
  {"id": 16, "temperature": 24.3, "humidity": 45.8},
  {"id": 17, "temperature": 25.7, "humidity": 41.4},
  {"id": 18, "temperature": 23.1, "humidity": 44.3},
  {"id": 19, "temperature": 24.6, "humidity": 40.7},
  {"id": 20, "temperature": 22.5, "humidity": 43.6},
  {"id": 21, "temperature": 23.8, "humidity": 42.5},
  {"id": 22, "temperature": 24.7, "humidity": 45.9},
  {"id": 23, "temperature": 25.2, "humidity": 41.3},
  {"id": 24, "temperature": 23.3, "humidity": 44.2},
  {"id": 25, "temperature": 24.9, "humidity": 40.8},
  {"id": 26, "temperature": 22.6, "humidity": 43.5},
  {"id": 27, "temperature": 23.4, "humidity": 42.4},
  {"id": 28, "temperature": 24.0, "humidity": 45.3},
  {"id": 29, "temperature": 25.5, "humidity": 41.0},
  {"id": 30, "temperature": 23.0, "humidity": 44.1}
]

全体の手順

  1. Lakehouseとデータ変換用のNotebookを用意する
  2. Data Factoryのパイプラインを用意し、実行する
  3. 確認

1.Lakehouseとデータ変換用のNotebookを用意する

  1. Microsoft Fabric(https://app.fabric.microsoft.com/home)にアクセス
  2. 「Synapse Data Engineering」をクリック
  3. 「ワークスペース」をクリック

    4.作業を行うワークスペースをクリック

    5.「+新規」をクリック

    6.「ノートブック」をクリック

    7.ノートブックが開くことを確認

    8.「Add」をクリック

    9.「新しいレイクハウス」をクリックし、「追加」をクリック
  4. 名前を入力し、「作成」をクリック
  5. Notebookに下記のことを入力する
df = spark.read.option("multiline", "true").json("Files/test01.json")
table_name = "test"
df.write.mode("overwrite").format("delta").save("Tables/"+table_name)
  1. Notebookを保存する

2.Data Factoryのパイプラインを用意する

  1. Microsoft Fabric(https://app.fabric.microsoft.com/home)にアクセス
  2. 「Data Factory」をクリック
  3. 「データパイプライン」をクリック
  4. 名前を入力し、「作成」をクリック
  5. 「パイプライン アクティビティの追加」をクリック
  6. 「データのコピー」をクリック
  7. Blobに接続をし、コピーをするファイルを選択する
  8. コピーしたいレイクハウスを選択する
  9. Notebookをクリック
  10. 先程作成したNotebookを選択する
  11. データのコピーとノートブックを→で繋ぐ
  12. アクティビティを選択し、Teamsのアイコンをクリック
  13. 「サインイン」をクリックし、サインインをする
  14. 投稿したいチャネルの選択、メッセージを作成する
  15. 同様にもう一つ作成する
  16. 作成後、→で繋ぐ
  17. 「実行」をクリック
  18. 成功したことを確認

3.確認

  1. 先程作成したNotebookを開く
  2. 下記のコードを実行する
df = spark.sql("SELECT * FROM dataconversion.test LIMIT 1000")
display(df)
  1. テーブがあることを確認
  2. Teamsにも成功通知が来ることを確認

まとめ

Data FactoryでNotebookを呼び出すことが出来た。
データの変換作業が楽になるなと感じました。

ヘッドウォータース

Discussion

まっきーまっきー

非エンジニアの人でもある程度、データ周りの整備とか出来るか?という検証で、
Fabric copilot とか使って実験してみたいと思った!

あと、Notebooksも CopilotのようにAIアシスタントっている?