Azure Data Factory(簡寫 ADF)是Azure的雲ETL服務,簡單的說,就是雲上的SSIS。ADF是基於雲的ETL,用於資料整合和資料轉換,不需要程式碼,直接通過UI(code-free UI)來設計,可進行直觀監控和管理。使用者還可以把現有的SSIS packages部署到Azure,並和ADF完全相容地執行。
一,ADF適用的場景
在大資料的世界中,原始的、無結構的資料通常存在在關係型、非關係型和其他儲存系統中,由於原始資料沒有適當的上下文含義,無法被資料分析師、資料科學家提供有意義的insights。
ADF能夠處理海量的資料,對這些原始資料進行處理和提煉,獲得有用的資訊和洞察。Azure Data Factory 建立Pineline,從不同的資料來源(如:Azuer Storage,File, SQL DataBase,Azure Data Lake等)中提取資料,對資料進行加工處理和複雜計算後,把這些有價值的資料儲存到不同的目標儲存(如:Azuer Storage,File, SQL DataBase,Azure Data Lake等)上,供資料分析師或資料科學家進行分析。
Azure 資料工廠是基於雲的資料整合服務,用於在雲中建立資料驅動型工作流,以便協調和自動完成資料移動和資料轉換。 使用 Azure 資料工廠可執行以下任務:
- 建立管道(Pipeline),以便從不同的資料儲存中提取資料。
- 處理和轉換原始資料,獲得一個結構化的資料。
- 把處理之後的資料釋出到資料儲存(例如 Azure Synapse Analytics),供商業智慧 (BI) 應用程式使用。
二,ADF的工作原理
ADF 包含一系列的相互連線元件,為資料工程師提供完整的端到端(end-to-end)的平臺。Azure 資料工廠中的管道(資料驅動型工作流)通常執行以下三個步驟:
1,連線和收集
企業有不同型別的資料,這些資料位於不同的源中,比如on-permises,雲上的,有結構的、無結構的,並且以不同的間隔和速度到達。構建資訊生成系統的第一步是連線到所有必需的資料來源,對資料進行處理,這些源包括:SaaS 服務、檔案共享、FTP、Web 服務,然後,把需要的資料移到中心位置進行後續處理和分析。
如果沒有ADF,那麼企業就必須建立自定義的資料移動元件或編寫自定義的服務,以便整合這些資料來源並進行處理。整合和維護此類系統既昂貴又困難,這些系統通常還缺乏企業級監視、警報和控制,而這些功能是完全託管的服務能夠提供的。但是藉助ADF,使用者可以在pipeline中使用“Copy Activity”,把資料從本地和雲的源資料儲存轉移到雲上的集中資料儲存,進行進一步的分析。
2,轉換和擴充
把資料集中到雲上的資料儲存以後,使用ADF對映資料流處理或轉換資料,資料流使資料工程師能夠構建和維護資料轉換,而無需瞭解Spark叢集或Spart變成。如果使用者喜歡手工編碼轉換,那麼ADF支援外部活動(External Activity),以在HDInsight Hadoop,Spark,Data Lake Analytics和Machine Learning等計算服務上執行轉換。
3,釋出
ADF使用Azure DevOps和GitHub全面支援Pipeline,在釋出最終版本之前進行迭代式的開發。把原始資料精煉成可用於商業分析的資料之後,使用者可以把轉換的資料從雲上的儲存傳送到本地源(例如 SQL Server),也可將其保留在雲端儲存源中,供 BI 和分析工具及其他應用程式使用。
4,Source Control 和 Monitor
ADF內建監控器,用於監控ADF中的活動(Activity)和Pipeline的成功率和失敗率。
V2版本的ADF具有GitHub和DevOps的source control功能。
三,ADF的關鍵元件
ADF 由下面4個關鍵元件構成:
- Pipelines
- Activities
- Datasets
- 連線(Linked services和Integration runtimes)
ADF的4個關鍵元件之間的關係:
1,管道(Pipeline)
ADF包含一個或多個Pipeline,管道是Activity的邏輯分組,一個管道作為一個工作單元,管道中的Activity作為一個整體來執行任務。
管道使使用者可以把多個Activity作為一個整體進行管理,而不必單獨管理每個Activity,管道中的Activity可以連線在一起按照順序串聯執行,也可以單獨以併發方式執行。
2,活動(Activity)
管道可以包含一個或多個活動,活動定義對資料執行的操作,是Pipeline中的一個步驟。 例如,使用者可以使用Copy Activity把資料從一個資料儲存複製到另一個資料儲存。ADF支援三種型別的活動:資料移動活動、資料轉換活動和控制流活動。
- 資料移動活動:用於把資料從源資料儲存賦值到接收資料儲存,來自任何源的資料都可以寫入到任何接收器。
- 資料轉換活動:使用者對資料進行轉換處理
- 控制流活動:控制流負責對管道活動進行控制,包含按照順序連線活動、在管道級別定義引數、進行迴圈控制等。
3,資料集(Datasets)
資料集程式碼資料儲存中的資料結構,這些結構指向或引用在活動中使用的資料(輸入或輸出),也就是說,一個活動使用零個或多個資料集作為輸入,使用一個或多個資料集作為輸出。
4,連線(Connection)
連線有兩種型別:Linked services 和 Integration runtimes,連線服務十分類似於連線字串,用於定義ADF連線到外部資源時所需要的連線資訊,連線服務定義如何連線到外部資料來源,而資料集代表外部源資料的結構。
5,其他元件
引數(Parameters)是一個只讀的Key-Value對,引數定義在管道中,在管道執行時,引數傳遞到管道中的Activity中。
變數(Variable)用於在管道中儲存臨時值,並可以接收引數的值,把值傳遞到其他管道、資料流和Activity中。
參考文件: