🙆♀️
Microsoft FabricのData Factoryを使ってみた-⑦
やること
下記の応用版
Azure Blob Storageのデータを毎回すべてコピーするのではなく、差分だけコピーするようにする結論
差分を検知する機能は、Data Factoryには現時点(2024/03/02)ではなさそう。
代替案として、最終変更日時でフィルターする方法を紹介します。
手順
- 下記のコードを実行し、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)
- Azure Storageを構築
https://learn.microsoft.com/ja-jp/azure/storage/common/storage-account-create?tabs=azure-portal - コンテナーを構築
https://learn.microsoft.com/ja-jp/azure/storage/blobs/storage-quickstart-blobs-portal - 1で作成したtest01.jsonだけコンテナーにアップロード
- Microsoft Fabric(https://app.fabric.microsoft.com/home)にアクセス
- 「Data Factory」をクリック
- 「マイワークスペース」をクリック
- 「+新規」を選択し、「レイクハウス」をクリック
- 名前を入力し、「作成」をクリック
- Filesを選択し、新しいサブフォルダーをクリック
- 名前を入力し、「作成」をクリック
- 11で作成したフォルダーを選択し、「MyWorkSpace」をクリック
- 「+新規」を選択し、「データパイプライン」をクリック
- 名前を入力し、「作成」をクリック
- 「データコピー」を選択し、「キャンパスに追加」をクリック
- 「外部」を選択し、「+新規」をクリック
- 「Blob」と検索し、「Azure Blobストレージ」をクリック
- アカウント名、接続名(コンテナーまで指定)、認証種類を選択し、「作成」をクリック
- 「参照」をクリック
- 該当のコンテナーを選択し、「OK」をクリック
- 「詳細」をクリック
- 「動的なコンテンツの追加」をクリック
- 下記のコードを入力する
@formatDateTime(
addMinutes(utcNow(), -2),
'yyyy-MM-ddTHH:mm:ss.fffZ'
)
- 「動的なコンテンツの追加」をクリック
- 下記のコードを入力する
@formatDateTime(
utcNow(),
'yyyy-MM-ddTHH:mm:ss.fffZ'
)
- 宛先を入力する
- 1で作成したtest2.jsonをアップロードする
- パイプラインを実行する
- パイプラインを実行した時間から2分前までにアップロード/変更されたファイルだけをコピーされている
Discussion