Azure Data Factory(二)複製數據
一,引言
上一篇主要只講了Azure Data Factory的一些主要概念,今天開始新的內容,我們開始通過Azure DevOps 或者 git 管理 Azure Data Factory 中的源程式碼,同時創建 Pipleline 將 Azure Blob1 的 Container 的數據通過 Copy Data 複製到 Azure Blob2的 Container中。我選擇的是Azure DevOps 作為程式碼管理的工具
——————–我是分割線——————–
1,Azure Data Factory(一)入門簡介
2,Azure Data Factory(二)複製數據
二,正文
1,Azure DevOps 創建項目
首先我們得在Azure DevOps 上創建一個項目
Azure DevOps 地址:dev.azure.com,點擊 「Sign in to Azure DevOps」 進行登陸,首次登陸的話,需要新創建一個組織,這裡我就不過多演示了。
輸入項目名稱 「CnBateBlogWeb_Proj」,選擇項目的是否 「公開/私有」,點擊 「+ Create project」 進行創建項目。
我們可以看到項目的Repos資訊,複製當前項目的Git倉庫地址鏈接備用
2,創建 Azure Blob 存儲和Azure Data Factory
Azure Portal 中點擊 「Create a resource」,選擇 「Storage Account」 進行創建數據源以及目標源
Storage account name:「cnbateblogwebaccount1dev」
Location:「East Aisa」
“Performance”:「Standard」
Account kind:「BlobStorage」
其他的選擇默認,點擊 「Review + create」 進行創建預校驗。
校驗成功後,點擊 「Create」 進行創建操作
接下來,使用同樣的步驟創建目標源Storage Account—– “cnbateblogweb2dev”
cnbateblogweb1dev 的 Azure Blob Storage 初始化數據,選擇 「Blob service =》Containers」 ,點擊「+ Container」 添加 Container
Name 輸入 「resformfoler」 其他選擇默認,點擊 「Create」 進行創建。
點擊進去當前 「resformfolder」 容器
選擇上傳,我這裡只是作為演示上傳一個 txt 文本文件,實際項目中當前數據應該為 Azure Factory 的數據源。
以下是我上傳的文件—-「AZ-300考試說明.txt」
回到 」cnbateblogwebaccount2dev「 中,新建容器—–」restofolder「
最後,創建搜索 「Data Factory」
Resource group 選擇 :「Web_Test_DF_RG」
Region :『East Asia「
Name:」ADF-CnBateBlogWeb-Dev「
其他選擇默認,點擊 」Next:Git configuration「 配置 git 程式碼管理資訊
選擇 「Configure Git later」,稍後進行配置,點擊 」Review+create「 進行創建預校驗
建議完成後,點擊 」Create「 進行創建
3,配置 Azure Data Factory
配置 Azure DevOps
點擊進去新創建的叫 」ADF-CnBateBlogWeb-Dev「,點擊圖中圈起來的 」Author & Montor「 跳轉到作業和監控頁面
點擊圖中箭頭指向的地方,進行先配置程式碼管理設置
選擇 」Source control =》Git configuration「 ,點擊 」Set up code repository「 進行配置
選擇 」Azure DevOps Git「
選擇Azure DevOps 所在目錄
選擇帳號 」allenMaster「
選擇項目 」CnBateBlogWeb_Proj「
Git repository name 選擇:」Use existing「(使用現有),也就是」CnBateBlogWeb_Proj「
Collaboration branch(協作分支):」master「
Publish branch(發布分支):」adf_publish「
其他選擇默認後,點擊 」Apply「 進行應用
設置完畢後,會彈出,需要讓我們設置 Azure Data Factory 的工作分支,我們選擇 」Use existing「,選擇 」master「 進行保持操作
配置 Data Factory Pipeline
首選,我們需要新建分支,就如同我們寫程式碼一樣,都新建自己的 」feature branch「。經開發,測試完成後,再 “merge” 到 “master” 分支。Azure Data Factor 也是一樣,我們需要有一個很規範的操作流程。
點擊 “+ New branch”,進行新創建分支
輸入分支名稱 」allen/Feature-1「,點擊 」Save「 進行保存操作。
可以看到當前工作環境在我們自己的」allen/Feature-1「 開發分支上
點擊圖中的 」+「 ,先添加 pipeline 資訊
可以看到圖中,我們可以更改 pipeline 的名稱,我這裡就不再進行修改,繼續使用默認的名稱 」pipeline1「,在 」Activities(活動)「 下的搜索框搜索 」Copy Data「 具體的活動,然後將 」Copy Data「 拖拽到 pipeline 設計器的圖中。關於Name,我們可以進行改名操作。這裡我也不進行改名操作。
配置 Data Factory DataSets
點擊 」Source「 切換到設置數據源頁面,點擊 」+ New「 添加新的數據源。
選擇 」Azure Blob Storage「,點擊 」Continue「
選擇」Binary(二進位)「文件,點擊 」Continue「
將 Name 修改為 」FromBinaryData「,Linked service(鏈接服務)選擇創建新的:」+ New「
關於配置鏈接服務
Name 修改為:」CnBateFromBlobStorage「
Azure subscription 選擇 之前創建 Blob Storage 的訂閱
Storage account name 選擇:」cnbateblogwebaccount1dev「
點擊 」Create「 進行創建,確認。
創建好鏈接服務後,我們需要設置其 」File path(文件路徑)「,點擊圖中箭頭所指的位置,進行設置
點擊 」resformfolder「 選擇容器,點擊 」OK「 進行確認操作(我們不需要設置具體的某個文件,我們的目標就是將 」resformfoler「 當前容器下的所有文件 複製到目標源的容器中)
設置完成後,點擊 」OK「 進行確認
同時,我們設置完成後,打開進行測試剛剛設置的鏈接服務,以保證能正常,成功的連接到 Blob Storage。
最後,回到 pipeline中,選擇 “Sink”,設置目標源,幾乎是同樣操作,我們需要將 “cnbateblogwebaccount2dev” 設置為目標源,具體參數,請看下圖
設置完畢後,我們回到pipeline1 中,點擊 」Save all「 進去全部保存操作。
Data Factory 的驗證、測試
接下來,我們要對 ADF 中配置的 pipeline 進程校驗操作,點擊 」validate all「,可以看到右邊現在未發現錯誤
最後,就是調試,手動點擊 」Debug「 進行測試pipiline,同時可以在底部看到輸入當前pipeline 運行狀態。
同時,我們也可以看到在 」cnbateblogwebaccount2dev「 這個Blob Storage 的 」restofolder「 這個容器中也出現了之前在數據源 Blob Storage 的 」resformfolder「 容器中的文件
測試完畢後,我們可以將當前自己分支上的程式碼合併到 』master」 分支,並進行分布操作
輸入當前合併分支的Title,已經完成/修改了那些功能等,這些操作我就不一一演示了,大家可以對照自己實際開發工程中關於程式碼提交的流程,點擊「Create」
先進行同意此次 合併請求,再點擊 完成合併請求
點擊 「Complete merge」 完成合併操作
測試,我們通過程式碼,也可以看到當前master 分支上已經有了我們開發好,驗證好的程式碼
回到Azure Data Factory 中,提到 「allen/Feature-1」 分支不存在,讓我們重新選擇工作的分支,(因為剛剛在合併程式碼的時候,我們勾選了「合併後刪除此分支」的選項)我們繼續選擇 「master」 分支
切換到 「master」 分支後,就需要進行發布操作(注意,我們確保合併到master 分支的程式碼是完全校驗過,測試過的),發布完成後,其實當前Data Factory 的pipiline 是不會不會進行觸發的,除非我們進行,手動 「Debug」/設置 「trigger」
點擊 「Add trigger」 設置觸發器
Name:「CtriggernBate_CopyData_Trigger」
Type 選擇:「Schedule」
Start date “11/02/2020 3:40 PM”
time zone(時區):「UTC+8」
Recurrence 設置為 每5分鐘 循環一次
勾選 」Specify an end date(指定截至日期)「
End on(截至):」11/02/2020 4:00 PM「
點擊 」OK「 進行添加,保存操作
設置完觸發器後,再進行發布操作
最後,我們可以看到當前pipeline的運行狀態
OK,今天的分享到此結束,*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。🎊🎊🎊🎊🎊🎊(由於時間的關係,集成CI/CD放到下一篇進行講解)
三,結尾
今天實地的演示了一下將 Blob Storage1 容器中的數據通過Azure Data Factory 複製到 Blob Storage2 容器中,同時也很粗糙的使用Azure DevOps 作為 ADF的程式碼管理工具。通過驗證,測試將開發好的分支程式碼合併到master分支上,在通過master 分支進行發布pipeline。最近經過設置Trigger,進行發布,定時進行觸發pipeline,經過 監視器觀察每次管道運行狀態。
作者:Allen
版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。