在一些自動化場景中,對 Blob 中的 .zip 檔解壓縮是很常見的需求,而一般的做法會自行搭 AP 來處理,使用 SDK 編寫「下載、解壓縮、上傳」的類 ETL 流程,進階一點還可以使用 Azure Function 與 Event Grid 做事件觸發的自動解壓縮。
本篇介紹使用 Azure Data Factory 來實現 Blob 中的 .zip 檔解壓縮,搭配 Data Factory 中的 Trigger 來偵測 .zip 檔到 Blob 的上傳事件,自動觸發解壓縮 Pipeline,而最重要的是整個搭建過程不用寫一行 Code,全部都能在 Portal 上滑鼠點擊設定完成!
建立 Blob Storage 與 Container
首先當然是建立用來上傳 .zip 檔的 Blob Storage ,建立時沒有太多的限制,基本上可以直接使用 Portal 的預設值來建立 Blob Storage,不過這次選擇使用 Gen 2 來做範例。
這邊有沒有使用 Gen 2 都可以做到 .zip 檔解壓縮,只是後續在 Data Factory 中的設定會略有不同,可以自行評估需求來選擇是否啟用。
| 建立啟用階層命名空間的 Data Lake Gen2 |
Storage 建立完成後就切換到容器頁面,接著隨意建立一個測試用的容器,
| 在 Storage 中建立容器 |
建立 Azure Data Factory
| 開始建立 Data Factory |
這邊一樣沒有特別需要注意的設定,可以直接預設值一路下一步到底。
設定 Azure Data Factory 權限
因為接下來會透過 Data Factory 對 Blob 中的資料做處理,代表 Data Factory 在 Blob 中需要有相應的執行權限,這邊使用 Managed Identity 做授權是最方便快速的。
| 賦予 ADF 在 Blob 中的權限 |
在建立 Data Factory 時會順帶拉起 Managed Identity,所以直接搜尋 Data Factory 建立時的名稱就能找到了,而權限的部份這邊先給「儲存體 Blob 資料參與者」。
在 Azure Data Factory 中新增連結服務
| 點擊啟動工作室 |
左邊選擇「管理」→「連接」→「連結服務」,因為我們剛剛建立的是 Gen2 的 Storage,所以在右邊的彈跳介面中找到「Azure Data Lake Storage Gen2」,
留言
張貼留言