Azure Data Factory(二)複製資料

Grant_Allen發表於2020-11-02

一,引言

  上一篇主要只講了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 

版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。

相關文章