《阿里云:阿里云專有云大數據版技術白皮書(35頁).pdf》由會員分享,可在線閱讀,更多相關《阿里云:阿里云專有云大數據版技術白皮書(35頁).pdf(35頁珍藏版)》請在三個皮匠報告上搜索。
1、阿里云專有云大數據版DataWorks技術白皮書產品版本:V2.5.0文檔版本:20200629DataWorks技術白皮書/法律聲明法律聲明阿里云提醒您在閱讀或使用本文檔之前仔細閱讀、充分理解本法律聲明各條款的內容。如果您閱讀或使用本文檔,您的閱讀或使用行為將被視為對本聲明全部內容的認可。1.您應當通過阿里云網站或阿里云提供的其他授權通道下載、獲取本文檔,且僅能用于自身的合法合規的業務活動。本文檔的內容視為阿里云的保密信息,您應當嚴格遵守保密義務;未經阿里云事先書面同意,您不得向任何第三方披露本手冊內容或提供給任何第三方使用。2.未經阿里云事先書面許可,任何單位、公司或個人不得擅自摘抄、翻譯
2、、復制本文檔內容的部分或全部,不得以任何方式或途徑進行傳播和宣傳。3.由于產品版本升級、調整或其他原因,本文檔內容有可能變更。阿里云保留在沒有任何通知或者提示下對本文檔的內容進行修改的權利,并在阿里云授權通道中不時發布更新后的用戶文檔。您應當實時關注用戶文檔的版本變更并通過阿里云授權渠道下載、獲取最新版的用戶文檔。4.本文檔僅作為用戶使用阿里云產品及服務的參考性指引,阿里云以產品及服務的“現狀”、“有缺陷”和“當前功能”的狀態提供本文檔。阿里云在現有技術的基礎上盡最大努力提供相應的介紹及操作指引,但阿里云在此明確聲明對本文檔內容的準確性、完整性、適用性、可靠性等不作任何明示或暗示的保證。任何單
3、位、公司或個人因為下載、使用或信賴本文檔而發生任何差錯或經濟損失的,阿里云不承擔任何法律責任。在任何情況下,阿里云均不對任何間接性、后果性、懲戒性、偶然性、特殊性或刑罰性的損害,包括用戶使用或信賴本文檔而遭受的利潤損失,承擔責任(即使阿里云已被告知該等損失的可能性)。5.阿里云文檔中所有內容,包括但不限于圖片、架構設計、頁面布局、文字描述,均由阿里云和/或其關聯公司依法擁有其知識產權,包括但不限于商標權、專利權、著作權、商業秘密等。非經阿里云和/或其關聯公司書面同意,任何人不得擅自使用、修改、復制、公開傳播、改變、散布、發行或公開發表阿里云網站、產品程序或內容。此外,未經阿里云事先書面同意,任
4、何人不得為了任何營銷、廣告、促銷或其他目的使用、公布或復制阿里云的名稱(包括但不限于單獨為或以組合形式包含“阿里云”、“Aliyun”、“萬網”等阿里云和/或其關聯公司品牌,上述品牌的附屬標志及圖案或任何類似公司名稱、商號、商標、產品或服務名稱、域名、圖案標示、標志、標識或通過特定描述使第三方能夠識別阿里云和/或其關聯公司)。6.如若發現本文檔存在任何錯誤,請與阿里云取得直接聯系。文檔版本:20200629IDataWorks技術白皮書/通用約定通用約定格式說明樣例該類警示信息將導致系統重大變更甚至故障,或者導致人身傷害等結果。禁止:重置操作將丟失用戶配置數據。該類警示信息可能會導致系統重大變
5、更甚至故障,或者導致人身傷害等結果。警告:重啟操作將導致業務中斷,恢復業務時間約十分鐘。用于警示信息、補充說明等,是用戶必須了解的內容。注意:權重設置為0,該服務器不會再接受新請求。用于補充說明、最佳實踐、竅門等,不是用戶必須了解的內容。說明:您也可以通過按Ctrl+A選中全部文件。多級菜單遞進。單擊設置 網絡 設置網絡類型。粗體表示按鍵、菜單、頁面名稱等UI元素。在結果確認頁面,單擊確定。Courier字體命令。執行cd/d C:/window命令,進入Windows系統文件夾。斜體表示參數、變量。bae log list-instanceidInstance_ID或者a|b表示可選項,至多
6、選擇一個。ipconfig-all|-t或者a|b表示必選項,至多選擇一個。switch active|stand文檔版本:20200629IDataWorks技術白皮書/目錄目錄法律聲明.I通用約定.I1 什么是DataWorks.11.1 產品概述.11.2 技術優勢.21.3 應用場景.32 產品架構.63 功能原理.83.1 數據開發IDE.83.2 數據管理.83.3 數據集成.93.4 租戶管理.133.5 數據質量.143.5.1 數據質量概述.143.5.2 離線數據質量.163.5.3 實時數據質量.193.6 數據資產管理.213.7 實時分析.213.8 數據服務.223
7、.9 智能監控.233.10 調度系統.253.10.1 調度系統概述.253.10.2 相關概念.263.10.3 整體架構.263.10.4 狀態機.273.10.5 任務依賴規則.28II文檔版本:20200629DataWorks技術白皮書/1 什么是DataWorks1 什么是DataWorks1.1 產品概述DataWorks是阿里云推出的一站式大數據智能研發與治理平臺。面向企業和個人用戶提供端到端的一站式大數據開發、管理、離線調度、治理和應用解決方案。DataWorks以讓更多人使用更多數據為使命,提供DT時代的大數據基礎服務:讓大型企業構建PB、EB級別的數據倉庫,實現超大規模
8、數據集成,對數據進行資產化管理,通過對數據價值的深度挖掘實現業務的數據化運營。讓中小企業和個人用戶快速構建數據應用,助力中小企業的數據業務創新。圖 1-1:產品組成文檔版本:202006291DataWorks技術白皮書/1 什么是DataWorksDataWorks產品由數據開發IDE、離線調度系統、數據集成工具和數據管理四大部分組成:數據開發IDE:提供開箱即用的一站式數據開發工具,滿足在線SQL、MR、Shell的編碼工作,并提供多人協同開發和代碼版本管理功能。通過可視化的流程設計工具可以滿足快速構建數倉調度的依賴關系。離線調度系統:提供百萬級的離線任務調度能力,以及在線運維、在線日志查
9、詢、調度狀態監控報警等一系列功能。數據集成工具:提供海量異構數據源的數據集成能力,打通阿里云80%的數據庫及存儲設備的數據鏈路,以及常用關系型數據庫、FTP、HDFS等多種數據鏈路,并且提供周期性定時集成的能力。數據管理系統:提供對MaxCompute(原ODPS)、EMR(E-MapReduce)等引擎中,以公司為單位的全量數據的管理能力,并提供權限管理、數據血緣和元數據查看等功能。1.2 技術優勢超大規模數據處理能力DataWorks與大數據計算服務MaxCompute(原ODPS)天然集成,單個集群的規??蛇_5000臺,并且具備跨機房的線性擴展能力,輕松處理海量數據。離線調度支持百萬級任
10、務量,實時監控告警。核心指標萬億級數據JOIN,百萬級并發job,作業I/O可達PB級/天。具備跨集群(機房)數據共享能力,支持萬級別的集群數,擴容不受限制。提供功能強大易用的SQL、MR引擎,兼容大部分標準SQL語法。MaxCompute(原ODPS)采用三重備份、讀寫請求鑒權、應用沙箱、系統沙箱等多層次數據存儲和訪問安全機制來保護用戶的數據,使其不丟失、不泄露、不被竊取。一站式的數據開發環境數據開發、離線調度、調度運維、監控告警、數據管理全流程串通。核心指標提供全流程所有功能。提供可視化工作流程設計器功能,類似Kettle的工具,支持用戶對流程進行設計并編輯。多人協同作業機制,分角色進行任
11、務開發、線上調度、運維、數據權限管理等功能,數據及任務無需落地即可完成復雜的操作流程。2文檔版本:20200629DataWorks技術白皮書/1 什么是DataWorks海量異構數據源快速集成能力提供11種異構數據源的數據讀取能力,12種異構數據源的數據寫入能力。并提供臟數據過濾、流量控制等功能。核心指標提供MySQL、Oracle、SQL Server、PostgreSQL、RDS、DRDS、MaxCompute、FTP、OSS、HDFS、DM、Sybase的數據讀取能力。提供MySQL、Oracle、SQL Server、PostgreSQL、RDS、DRDS、MaxCompute、AD
12、S、OCS、OSS、HDFS、DM、Sybase的數據寫入能力。提供臟數據過濾、流量控制能功能??梢灾芷谛哉{度,周期性數據集成能力。Web化的軟件服務可以在互聯網/內部網絡環境下直接使用,無需安裝部署,拎包入駐,開箱即用。多租戶權限模型多租戶模型確保用戶的數據被安全隔離,以租戶為單位進行統一的權限管控、數據管理、調度資源管理和成員管理工作。開放的平臺所有模塊已實現組件化、服務化,您可以基于DataWorks的Open API來定制開發擴展功能。1.3 應用場景大型數據倉庫搭建大型企業可在專有云環境下使用DataWorks來構建超大型的數據倉庫。文檔版本:202006293DataWorks技術
13、白皮書/1 什么是DataWorksDataWorks為這類客戶提供卓越的海量數據集成能力。海量存儲:可支持PB、EB級別的數據倉庫,存儲規??删€性擴展。數據集成:支持多種異構數據源的數據同步和整合,消除數據孤島。數據開發:基于MaxCompute的大數據開發,支持SQL、MR等編程框架,以及貼近業務場景的白屏化工作流設計器。數據管理:基于統一的元數據服務來提供數據資源管理視圖,以及數據權限審批流程。離線調度:可以提供多時間維度的周期性調度能力,支持每天百萬級的調度并發,并對任務調度實時監控,對錯誤及時告警。數據化運營創新業務:通過數據挖掘建模和實時決策系統,將大數據加工結果直接應用于業務系統
14、。中小企業:基于DataWorks平臺快速使用和分析數據,助力企業的經營決策。阿里小貸的數據業務運營模式如下所示。4文檔版本:20200629DataWorks技術白皮書/1 什么是DataWorks文檔版本:202006295DataWorks技術白皮書/2 產品架構2 產品架構系統開放性架構DataWorks采用組件化、服務化設計理念,分為以下三層??刂茖樱篋ataWorks離線加工的核心,工作流調度引擎承接著整個DataWorks的調度,包括工作流的轉實例、工作流調度,AlisaDriver主要協調、控制所有任務的執行。服務層:為應用層或外部其他應用提供服務。應用層:基于底層服務直接和用
15、戶進行交互,為您提供可視化操作的界面。安全架構DataWorks的安全架構,由平臺自身的安全實現層、平臺內置的安全服務層、租戶可選的安全產品層構成。平臺自身的安全實現層:保障平臺在代碼實現和部署配置時產品自身的安全性。平臺內置的安全服務層:為租戶和其用戶提供平臺基礎性的安全服務能力,如租戶資源隔離、身份認證、權限鑒別和日志合規審計等。租戶可選的安全產品層:為租戶和其用戶提供可選的、已集成的安全產品或工具,幫助租戶根據其自行定義的安全策略對其擁有的系統、數據進行安全防護和運維管理。6文檔版本:20200629DataWorks技術白皮書/2 產品架構多租戶模型DataWorks擁有自己的多租戶權
16、限模型。彈性的存儲和計算資源:租戶可按需申請資源配額,獨立管理自己的資源。租戶獨立管理自有的數據、權限、用戶、角色,彼此隔離,以確保數據安全。文檔版本:202006297DataWorks技術白皮書/3 功能原理3 功能原理3.1 數據開發IDEDataWorks的數據開發IDE模塊,提供一站式的集成開發環境,可滿足大數據環境下的快速數倉建模、數據查詢、ETL開發、算法開發等需求,并提供多人在線協同開發、文件版本控制等功能。功能特性提供可視化工作流程設計器功能,類似Kettle的工具,支持您對流程進行設計并編輯,對流程中的每一個任務節點進行相應的開發工作。提供本地數據上傳功能,支持本地文本數據
17、快速上云。提供海量異構數據源的數據快速集成能力。說明:目前數據同步任務支持的數據源類型如下所示。-取數據支持的數據源:MySQL、Oracle、SQL Server、PostgreSQL、RDS、DRDS、MaxCompute、FTP、OSS、HDFS、DM、Sybase。-寫數據支持的數據源:MySQL、Oracle、SQL Server、PostgreSQL、RDS、DRDS、MaxCompute、ADS、OCS、OSS、HDFS、DM、Sybase。提供Web IDE編程和調試環境,支持SQL、MR、SHELL(有限支持)、數據同步等多種程序類型??珥椖堪l布:快速將任務及代碼部署到其他項
18、目的調度系統。協同開發:代碼版本管理,多人協同模式下的代碼鎖管理和沖突檢測機制。提供MaxCompute表搜索、資源搜索引用、自定義函數搜索引用、數據查詢功能,您可輕松索引數據。3.2 數據管理數據管理為您提供租戶范圍內數據表搜索、數據表詳情查看、數據表權限管理、收藏數據表等功能。詳細操作請參見DataWorks用戶指南中的數據管理。8文檔版本:20200629DataWorks技術白皮書/3 功能原理3.3 數據集成數據集成(Data Integration,簡稱DI)是阿里集團對外提供的穩定高效、彈性伸縮的數據同步平臺,為阿里云大數據計算引擎(包括ODPS、ADS、OSPS)提供離線(批量
19、)的數據進出通道。提供多種異構數據源的快速集成服務,為跨平臺的異構數據提供快速數據整合的能力。DI采用了框架+插件的模式,插件負責數據讀取或者寫入本身,而框架負責同步的共性問題。DI的插件分為以下兩種。Reader插件對數據進行讀取Writer插件對數據進行寫入您可根據不同的數據源,分別開發相關的Reader和Writer,很好地保證了DI的擴展能力。在最上層DI暴露出REST API、JAVA SDK、Console三種類型的服務調用方式,您可根據具體場景使用。REST API是跨語言的,如果您是JAVA開發者,建議使用JAVA SDK,避免手動處理認證、鑒權、底層HTTP調用等細節。Con
20、sole是一個命令行封裝,能夠在命令行中使用DI大多數功能。數據集成DI根據REST API實現了一套WEB界面,推薦開發者使用。服務層主要包括資源管理、作業管理、鑒權管理等,具體概念在產品概念部分已經闡述。文檔版本:202006299DataWorks技術白皮書/3 功能原理最下面是工具和執行層,此為DI同步體系的核心,在這里真實的實現了數據的抽取和加載邏輯。向DI提交的的同步作業,最終都會在執行層執行。DI的執行層使用了同步引擎DataX。圖 3-1:數據傳輸流向圖10文檔版本:20200629DataWorks技術白皮書/3 功能原理功能特性支持以多種數據通道-關系型數據庫:MySQL、
21、SQL Server、PostgreSQL、DRDS、Oracle、DB2、通用關系數據庫等。-NoSQL數據存儲:OTS、OCS。-數據倉庫:ODPS、ADS。-非結構化存儲:OSS、HDFS、FTP。其中,通用關系數據庫包括達夢、DB2、PPAS,具體配置數據庫JDBC URL格式為:-達夢數據庫格式為jdbc:dm:/ip:port/database-DB2數據庫格式為jdbc:db2:/ip:port/database-PPAS數據庫格式jdbc:edb:/ip:port/database目前DI支持批量數據同步模式,離線數據同步指的是數據周期性(例如每天、每周、每月等)、成批量地從源
22、端系統傳輸到目標端系統。對于離線數據同步系統,數據以讀取Snapshot(快照)的方式從源端傳輸到目的端。離線同步存在生命周期,一個離線同步的任務有起止同樣也有結束狀態。DI定義只完成數據同步/傳輸過程,并且整體數據傳輸過程完全控制于DI同步集群模型下,同步的通道以及同步數據流對用戶完全隔離。同時,DI本身不提供傳輸同步數據流的消費功能,即您不能直接通過DI的API消費數據流,所有針對數據操作,您必須在同步數據流兩端存儲端操作。文檔版本:2020062911DataWorks技術白皮書/3 功能原理可靠的數據質量-支持各種數據類型間的轉換。-精確識別臟數據,進行過濾、采集、展示,為您提供可靠的
23、臟數據處理功能,讓您準確把控數據質量。-支持作業的執行情況匯報,讓您能夠及時了解任務的狀態,如查看同步的數據量、臟數據等信息。強勁的傳輸速度-擁有單通道插件性能,單進程能夠使單機網卡(200MB/s)滿負荷。-全新的分布式模型,吞吐量無限水平擴展,能夠為您提供GB級、乃至TB級數據流量。友好的控制體驗-精確且強大的流控保證,支持通道、記錄流、字節流三種流控模式。-完備且健全的容錯處理,能夠做到線程級別、進程級別、作業級別多層次局部/全局的重試。清晰的內核設計-擁有專業的框架設計和強大的執行引擎,引擎解決了通用的插件需求,規范了制定流程,同時能夠自動發現新增插件。-更加清晰易用的插件接口,讓插件
24、開發人員專注于業務開發,而不再關注框架細節。12文檔版本:20200629DataWorks技術白皮書/3 功能原理3.4 租戶管理項目配置項目配置界面顯示了基本屬性,以及相關簡單配置。-沙箱白名單:配置可以訪問的IP或者域名。-計算引擎信息:顯示已有的計算引擎信息。成員管理成員管理界面顯示已有成員,您也可在該界面添加成員。文檔版本:2020062913DataWorks技術白皮書/3 功能原理權限列表權限列表顯示現有系統的所有權限點,以及權限點的分類。3.5 數據質量3.5.1 數據質量概述數據質量覆蓋了離線、實時兩種場景,提供了貫穿生命周期全鏈路的數據質量解決方案。通過實時數據監控,能夠發
25、現數據的斷流、延遲,以及業務自定義的數據問題。通過離線數據監控,能夠在生產加工過程中監控到業務數據的異常,阻斷問題數據對下游的污染,并讓您第一時間收到通知,保障業務的正確性。14文檔版本:20200629DataWorks技術白皮書/3 功能原理數據質量依賴元數據、租戶提供的表、字段管理以及用戶和租戶訪問控制。底層離線使用ODPS提供計算服務,實時規則使用Flink流計算框架。數據質量內部有三個服務,Portal頁面管理、后端服務和數據收集處理服務。圖 3-2:數據質量架構圖文檔版本:2020062915DataWorks技術白皮書/3 功能原理3.5.2 離線數據質量技術架構用戶界面層(we
26、b):Web UI提供了客戶可操作的交互界面,包括規則配置、任務查詢、訂閱管理、全局概覽等功能,此外,還實現了權限管控及緩存處理。服務層(web service):數據質量service提供了數據庫訪問、質量校驗、job的解析和觸發機制。Checker factory模塊提供了樣本的校驗服務,內置了固定值校驗器、波動校驗器、方差校驗器等校驗器模型。采集層(collector):采集層由多臺采集引擎組成,負責對規則采集樣本。采集引擎根據規則強弱分類、規則分裂、采樣方法分類,將規則進行邏輯拆分和聚合,最終提交到MaxCompute集群執行樣本采集job。16文檔版本:20200629DataWor
27、ks技術白皮書/3 功能原理工作原理1.調度觸發數據質量服務器對指定表的分區執行質量校驗。請求中帶有該次校驗的實際校驗分區、表信息和業務執行時間。2.數據質量服務器根據表信息搜尋用戶配置的分區表達式,結合業務執行時間進行計算,將結果與調度請求的實際分區匹配,得到該次task要校驗的規則集。之后提交請求給采集引擎,并返回調度請求結果。如果task包含強規則,則返回調度同步等待,反之則異步放行。3.采集引擎經過規則強弱分類、規則分類、采樣方法分類,將規則集進一步歸類,并根據不同類型的采樣方法、先強后弱的時序提交給MaxCompute集群執行采集。4.當強規則執行結束,采集引擎通知服務器模塊進行校驗
28、。校驗結束后,回調調度系統校驗結果,決策是否需要阻塞該調度節點。5.強規則校驗結束后,服務器模塊返回采集引擎,采集引擎繼續執行弱規則采集,結束后通知服務器進行弱規則校驗。至此,校驗結束。文檔版本:2020062917DataWorks技術白皮書/3 功能原理技術優勢內置基礎業務模板,擁有完備的數據質量度量標準。模板中提供了波動閾值比較、固定值比較兩種度量方式,覆蓋字段級、表級規則,包含空值、唯一值、離散值、最大值、最小值、平均值、匯總值等采集方法,并且提供自定義規則適配多樣化業務需求。高并發高可用,采集引擎支持可配的資源池,且支持水平擴展。此外,提供了可靠的容錯機制,保障采集作業的狀態一致性和
29、正確性。規則強弱分類、紅橙等級預警。服務將規則按照重要程度劃分成強、弱兩種,按照偏離預期程度劃分成紅色、橙色閾值。當重要的規則嚴重偏離期望值時能夠阻塞數據生產鏈路,防止臟數據污染下游,保障生產鏈路的數據正確性。優先級保障機制。采集引擎執行層面,提供優先級錯峰保障機制。-資源有限的情況下,保障強規則的任務能夠得到第一時間的執行。-資源空閑的情況下,弱規則的任務能夠得到有效的執行。18文檔版本:20200629DataWorks技術白皮書/3 功能原理3.5.3 實時數據質量技術架構數據質量實時規則,會在啟動時轉化成Flink SQL從DataHub源端寫入SLS結果表。Collector服務定時
30、從SLS采集問題數據寫入到Redis,并喚起告警服務。Service模塊會對Redis中的告警數據進行遷移,同步數據到數據庫后提供查詢等服務。文檔版本:2020062919DataWorks技術白皮書/3 功能原理工作原理1.啟動規則后,數據質量服務會建立相應的logstore,同時通過SQL parser對維表進行解析。然后通過規則轉化器生成SQL語句并對表的各種操作進行聚合,將實時數據提交給Flink,并更新下一次質量校驗時間。2.多臺Service服務經過搶鎖決出Master角色,Master的service將會定時獲取需要檢查的topic,下發到collector執行校驗。3.Coll
31、ector通過Loghub consumer訂閱相應的logstore的消息,讀取問題數據寫入Redis,并判斷是否達到告警通知條件。4.Service服務啟動quartz worker,將Redis的數據寫入數據庫,并提供前端查詢等服務。技術優勢覆蓋多場景下的實時數據質量。數據質量產品可以監控實時數據的斷流、延遲,同時還允許用戶自己書寫Flink SQL定義業務規則,支持同數據源下的多流join、維表join。支持秒級監控,數據質量能夠監控到秒級的數據延遲。支持最小告警時間間隔設置,支持告警條數設置,以減少冗余的通知。支持紅、橙分級告警,雙層等級界定數據偏離預期的程度。提供了更可靠的告警消息
32、,內部對告警源數據Hash去重,在實時計算加工過程中保障了數據冪等性,避免重復通知。20文檔版本:20200629DataWorks技術白皮書/3 功能原理3.6 數據資產管理數據資產管理提供數據資產門戶管理、數據資產歸類、數據資產類目管理、數據源管理以及與之相關的業務部門管理等功能。通過數據資產管理,可以了解平臺的核心數據資產,提供對應數據資產管理規范。3.7 實時分析通過和ODPS service mode結合,為您提供快速查詢、預覽數據功能。適合數據分析、探查時使用。文檔版本:2020062921DataWorks技術白皮書/3 功能原理支持文件夾和文件相關的新建、重命名和刪除等操作。1
33、.單擊運行按鈕,運行SQL。2.查看運行結果。3.8 數據服務數據服務提供API托管、鑒權、授權和管理等功能,提供快速將數據表生成API接口的服務,可將API對外提供調用,直接對接API網關服務。功能特性如下:22文檔版本:20200629DataWorks技術白皮書/3 功能原理支持多種數據源,包括關系型數據庫,分析性數據庫和NoSQL數據庫。支持生成API的數據源:MySQL、Oracle、SQLServer、PostgreSQL、RDS、DRDS、Analytic DB、Table Store、MongoDDB、Lightning。提供圖形化向導模式,實現零代碼生成API。提供腳本模式,
34、實現更高自由度和定制化API的能力,可自主編寫SQL來生成對應的API。提供精準的權限控制,從接口級別的權限,到行/列數據級別的權限,可自主定制權限范圍。提供API網關和HTTP的調用方式。支持多種網絡環境,包括獨立用戶網絡,VPC,經典網絡等。提供多種API管控,包括API分組管理,API管理,API上線下線等。提供基于項目/租戶級別的API隔離機制。提供OPEN API,支持API注冊管理展示等功能。支持多種API執行環境,包括用戶獨立環境,EAS容器服務等。提供在線調試API的功能,可實時查看API調用信息和性能。3.9 智能監控智能監控(Intelligent Monitor)是Dat
35、aWorks任務運行的監控及分析系統。根據監控規則和任務運行情況,智能監控決策是否報警、何時報警、如何報警以及給誰報警。智能監控會自動選擇最合理的報警時間,報警方式以及報警對象。智能監控旨在:降低您的配置成本。杜絕無效報警。自動覆蓋所有重要任務(數量已經達到您自己無法梳理的情況)。通常意義上的監控系統只需您配置相應的監控規則即可,但這樣無法滿足DataWorks的需求,原因如下:DataWorks的任務極多,您無法準確地梳理出哪些任務需要監控。部分DataWorks業務牽涉到成千上萬個任務,并且任務之間的依賴錯綜復雜。即使用戶知道最重要的任務是什么,也很難理清這些任務的所有上游并一同監控。在這
36、樣的背景下,假設您直接監控所有任務,會觸發較多無用報警,從而導致有用報警被忽略,效果等同于沒有監控。針對每個任務監控的報警方式不同:部分監控需要任務運行超過1個小時報警,而有些監控需要任務運行超過2個小時報警,因此對每個任務單獨設置監控極為繁瑣,并且很難預估每個任務應該設置的報警閾值。針對每個任務監控的報警時間不同:例如不重要的任務可以放到早上上班后再報警,而重要任務則需要夜間立刻報警,而每個任務的重要性是難以區分的。文檔版本:2020062923DataWorks技術白皮書/3 功能原理報警如何關閉問題:如果報警一直進行提醒,需要在用戶響應時提供關閉報警的入口。因此,智能監控擁有一整套的監控
37、報警邏輯:您只需要提供所關注業務的重要任務名稱,智能監控就可以全盤監控整體任務產出過程,并生成對應的標準統一的報警機制。同時智能監控也提供了輕量級的自助配置監控功能,使您可以根據自己的需求定義報警規則。技術架構Dagservice:根據設置的基線時間等信息分析每個DAG上的節點任務,計算包括預計完成時間,關鍵路徑,業務要求完成時間,是否被暫停等。這里產出的數據是TasksService工作的基礎。TaskService:根據DagService分析的針對節點的基礎數據,執行不同的計算任務,包括基線預測完成時間,事件的抓取和恢復、事件報警、自定義提醒報警和基線預警等。WebService:頁面請
38、求的http接口,頁面可以通過接口訪問智能監控的計算數據,包括基線實例、報警信息列表、事件列表、甘特圖等。24文檔版本:20200629DataWorks技術白皮書/3 功能原理工作原理DagService的工作原理是根據基線設置信息,任務的歷史平均運行時間,計算DAG上每個節點的信息,包括預期完成時間、業務要求完成時間、關鍵路徑、阻塞節點和是否處于暫停節點下游等。TaskService是基于DagService計算出來的數據完成各種業務任務的模塊,每個任務模塊都可以根據配置,設置運行周期。各個任務通過數據庫鎖,保證一個任務不會同時被多臺機器執行,并且在一臺機器宕機時可以由另外一臺機器接管,保
39、證監控服務的高可用。3.10 調度系統3.10.1 調度系統概述調度系統作為Dataworks的核心系統之一,負責管理您在Dataworks上部署的所有離線任務及其依賴關系,并且按照您指定的定時時間和依賴關系,把離線任務調度起來。調度系統可支撐的Job數量達到百萬級。執行框架采用分布式架構,并發作業數可線性擴展。支持多時間粒度的調度周期:分鐘、小時、日、周、月、年。支持多種任務的依賴關系:普通依賴、跨周期依賴、自依賴。支持節點空跑、暫停、一次性運行等特殊狀態控制。支持手動業務流程,用戶可以按需觸發一次性工作流??梢暬故菊{度任務DAG圖,極大地方便用戶對線上任務進行運維管理。支持實時任務運行狀
40、態監控告警功能,短信、郵件的告警方式。支持單任務重跑、多任務重跑、結束進程、置成功、暫停等線上運維操作功能。文檔版本:2020062925DataWorks技術白皮書/3 功能原理支持補數據(串行執行多周期實例)。提供全局的任務統計信息匯總界面,任務統計內容包括:總調度任務數、出錯調度任務數、運行調度任務數、計算資源消耗Top10調度任務、計算時間消耗Top10調度任務、任務類型分布等信息。3.10.2 相關概念節點定義:您在調度系統中部署的離線任務,節點定義主要包含該節點的類型、代碼版本、定時時間和依賴關系等。實例:每個節點在運行時生成的一份節點運行信息,用于調度系統跟蹤節點的每一次運行,實
41、例信息除包含節點定義的所有信息外,還包含一些運行時信息,比如實例狀態、各種狀態的遷移時間。工作流:有一組相互依賴的實例構成,調度系統會把每天自動調度所有實例放在一個工作流中進行統一管理。工作流也有一個整體上的狀態,改狀態與工作流下每個實例的狀態相關。3.10.3 整體架構上圖描述的是調度系統的內部架構及其與周邊系統的關系。調度系統的核心功能由調度引擎實現,內部有四個主要模塊。節點定義管理負責維護用戶向調度系統提交的離線任務的代碼、定時時間、依賴關系等定義;節點定義會被轉換模塊在每天的固定時間全量轉換調度所需的實例數據。實例狀態管理負責維護實例被調度時的狀態遷移邏輯。工作流狀態管理負責維護由一組
42、相互依賴的實例所構成的工作流的狀態遷移邏輯。調度系統通過API的方式向其他系統提供調度內部數據的增刪改查接口。26文檔版本:20200629DataWorks技術白皮書/3 功能原理調度系統橫向依賴租戶用戶系統,用于實現資源租戶級別隔離功能。當任務實例需要執行時,調度系統把任務下發給執行引擎觸發任務的具體執行工作。3.10.4 狀態機工作流狀態機工作流有未運行、運行中、成功和失敗4種狀態。工作流起始狀態為未運行,此時工作流下面所有實例均為未運行狀態;當工作流接收到調度事件時,由未運行遷移為運行中狀態,同時把工作流的根實例調度起來。當工作流內部有運行失敗的實例時,會觸發工作流的狀態由運行中遷移為
43、運行失敗。當工作流中所有的實例都運行成功后,會觸發工作流的狀態由運行中遷移到成功。任務實例狀態機任務實例有未運行、等時間、等資源、運行中、成功和失敗6種狀態。任務實例初始化為未運行,當它接收到調度請求時,它校驗自己的上游任務是否都已經成功了,如果都已經成功則進入定時器,遷移到等時間狀態。定時器會在任務實例的定時時間把實例喚醒,實例會被下發到執行引擎等待執行,此時實例進入等資源狀態。執行引擎給實例分配運行資源,把實例真正運行起來,并把運行中的狀態通知給調度,調度把實例的狀態遷移為運行中。然后執行引擎接下來把實例的運行結果(成功或失?。┩ㄖo調度系統,調度系統進行對應的狀態遷移。文檔版本:2020
44、062927DataWorks技術白皮書/3 功能原理3.10.5 任務依賴規則調度系統支持靈活的依賴規則,您可以使用這些依賴規則定制出豐富的數據處理場景。同周期依賴同周期依賴是最普通的依賴,當天的實例只會依賴當天的上游實例,可以分為天實例依賴于天實例、天實例依賴于小時實例、小時實例依賴于天實例、小時實例依賴于小時實例。其中小時實例依賴于小時實例分為上下游實例數相同、上游實例數多于下游、上游實例數小于下游三種情況。下文將為您詳細說明這些情況最終的依賴關系。說明:下文示例中的A節點均為上游節點、B節點均為下游節點。天實例依賴于天實例,假設B節點定時時間是8點,A節點定時時間是0點,最終的依賴關系
45、如下:小時實例依賴于天實例,假設B節點定時時間是0點、8點、16點,A節點定時時間是0點,最終的依賴關系如下:28文檔版本:20200629DataWorks技術白皮書/3 功能原理天實例依賴于小時實例,假設B節點定時時間是0點,A節點定時時間是0點、8點、16點,最終的依賴關系如下:小時實例依賴于小時實例,上下游實例數相等,假設B節點定時時間是1點、9點、17點,A節點定時時間是0點、8點、16點,最終的依賴關系如下:小時實例依賴于小時實例,上游實例數少于下游,假設B節點定時時間是0點、6點、12點、18點,A節點定時時間是1點、9點、17點,最終的依賴關系如下:文檔版本:202006292
46、9DataWorks技術白皮書/3 功能原理小時實例依賴于小時實例,上游實例數多于下游,假設B節點定時時間是2點、10點、18點,A節點定時時間是0點、4點、8點、12點、16點、20點,最終的依賴關系如下:跨周期依賴跨周期依賴為了解決數據處理中當天數據依賴于前一天數據的情況,跨周期依賴可分為小時實例依賴于小時實例且上下游實例數相同、其他情況。其他情況下,所有直接把當前的實例依賴到前一天的實例上即可,假設A節點定時時間是2點、14點,B節點定時時間為每天的8點,最終的依賴關系如下:對于小時實例依賴于小時實例且上下游實例數相同時,下游實例還會依賴于當天的實例,假設A節點定時時間為2點、14點,B節點定時時間為0點、12點,最終的依賴關系如下:30文檔版本:20200629DataWorks技術白皮書/3 功能原理自依賴自依賴為了解決用戶的相同任務的數據必須依賴于前一個運行周期產出數據來計算的情況。對于自依賴的情況,只需要考慮節點自身,比如A節點的定時時間為0點、12點,最終的依賴關系如下:文檔版本:2020062931