Azure Data Factory 系列博客:
- ADF 第一篇:Azure Data Factory介紹
- ADF 第二篇:使用UI創建數據工廠
- ADF 第三篇:Integration runtime和 Linked Service
- ADF 第四篇:管道的執行和觸發器
- ADF 第五篇:轉換數據
- ADF 第六篇:Copy Data Activity詳解
- ADF 第七篇:控制流概述
- ADF 第八篇:傳遞參數(Pipeline的Parameter和Variable,Activity的output)和應用表達式
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)
數據工廠包含一個或多個Pipeline,管道是Activity的邏輯分組,一個管道作為一個工作單元,管道中的Activity作為一個整體來執行任務。管道中的Activity對數據執行動作。
管道使用戶可以把多個Activity作為一個整體進行管理,而不必單獨管理每個Activity,管道中的Activity可以連接在一起按照順序串聯執行,也可以單獨以並發方式執行。
2,活動(Activity)
管道可以包含一個或多個活動,活動定義對數據執行的操作,是Pipeline中的一個步驟。 例如,用戶可以使用Copy Activity把數據從一個數據存儲復制到另一個數據存儲。ADF支持三種類型的活動:數據移動活動、數據轉換活動和控制流活動。
- 數據移動活動:用於把數據從源數據存儲賦值到接收數據存儲,來自任何源的數據都可以寫入到任何接收器。
- 數據轉換活動:用戶對數據進行轉換處理
- 控制流活動:控制流負責對管道活動進行控制,包含按照順序連接活動、在管道級別定義參數、進行循環控制等。
3,數據集(Datasets)
數據集代碼數據存儲中的數據結構,這些結構指向或引用在活動中使用的數據(輸入或輸出),也就是說,一個活動使用零個或多個數據集作為輸入,使用一個或多個數據集作為輸出。
數據集(Dataset)類似於數據的視圖,只是簡單地指向或引用在活動中用作輸入的數據源或者用作輸出的數據目標。在創建Dataset之前,必須創建Linked Service,把數據連接到數據工廠。Linked Service 就像連接字符串,定義數據工廠如何和外部資源進行連接。而Dataset代表的是數據的結構(Schema),而Linked Service定義如何連接到數據。
4,連接(Connection)
連接有兩種類型:Linked services 和 Integration runtimes,Linked services 是基於Integration runtimes的連接服務。
Integration runtime(IR) 是Azure 數據工廠在不同的網絡環境中進行數據集成的組件,
連接服務(Linked services )類似於連接字符串,用於定義ADF連接到外部資源時所需要的連接信息,連接服務定義如何連接到外部數據源,而數據集代表外部源數據的結構。
5,映射數據流(Mapped Data Flow)
在ADF V2版本中,新增了映射數據流組件,映射數據流用於數據轉換,數據流作為Activity在管道中執行。 數據流使數據工程師無需編寫代碼即可開發數據轉換邏輯。
6,其他組件
參數(Parameters)是一個只讀的Key-Value對,參數定義在管道中,在管道執行時,參數傳遞到管道中的Activity中。
變量(Variable)用於在管道中存儲臨時值,並可以接收參數的值,把值傳遞到其他管道、數據流和Activity中。
參考文檔: