🙆‍♀️

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

2024/03/02に公開

やること

下記の応用版
https://zenn.dev/headwaters/articles/dc363e16af40a9
Azure Blob Storageのデータを毎回すべてコピーするのではなく、差分だけコピーするようにする

結論

差分を検知する機能は、Data Factoryには現時点(2024/03/02)ではなさそう。
代替案として、最終変更日時でフィルターする方法を紹介します。

手順

  1. 下記のコードを実行し、Jsonファイルを2つ作成する
import json

# 作成するデータ
data1 = {
    'name': 'John',
    'age': 30,
    'city': 'New York'
}

data2 = {
    'name': 'Alice',
    'age': 25,
    'city': 'Los Angeles'
}

# JSONファイルとして書き込む
with open('test01.json', 'w') as f:
    json.dump(data1, f)

with open('test02.json', 'w') as f:
    json.dump(data2, f)

  1. Azure Storageを構築
    https://learn.microsoft.com/ja-jp/azure/storage/common/storage-account-create?tabs=azure-portal
  2. コンテナーを構築
    https://learn.microsoft.com/ja-jp/azure/storage/blobs/storage-quickstart-blobs-portal
  3. 1で作成したtest01.jsonだけコンテナーにアップロード
  4. Microsoft Fabric(https://app.fabric.microsoft.com/home)にアクセス
  5. 「Data Factory」をクリック
  6. 「マイワークスペース」をクリック
  7. 「+新規」を選択し、「レイクハウス」をクリック
  8. 名前を入力し、「作成」をクリック
  9. Filesを選択し、新しいサブフォルダーをクリック
  10. 名前を入力し、「作成」をクリック
  11. 11で作成したフォルダーを選択し、「MyWorkSpace」をクリック
  12. 「+新規」を選択し、「データパイプライン」をクリック
  13. 名前を入力し、「作成」をクリック
  14. 「データコピー」を選択し、「キャンパスに追加」をクリック
  15. 「外部」を選択し、「+新規」をクリック
  16. 「Blob」と検索し、「Azure Blobストレージ」をクリック
  17. アカウント名、接続名(コンテナーまで指定)、認証種類を選択し、「作成」をクリック
  18. 「参照」をクリック
  19. 該当のコンテナーを選択し、「OK」をクリック
  20. 「詳細」をクリック
  21. 「動的なコンテンツの追加」をクリック
  22. 下記のコードを入力する
@formatDateTime(
    addMinutes(utcNow(), -2), 
    'yyyy-MM-ddTHH:mm:ss.fffZ'
)
  1. 「動的なコンテンツの追加」をクリック
  2. 下記のコードを入力する
@formatDateTime(
    utcNow(), 
    'yyyy-MM-ddTHH:mm:ss.fffZ'
)
  1. 宛先を入力する
  2. 1で作成したtest2.jsonをアップロードする
  3. パイプラインを実行する
  4. パイプラインを実行した時間から2分前までにアップロード/変更されたファイルだけをコピーされている
ヘッドウォータース

Discussion