天天看點

連載:阿裡巴巴大資料實踐—資料開發平台1、統一計算平台2、統一開發平台

前言:

-更多關于數智化轉型、資料中台内容請加入

阿裡雲資料中台交流群—數智俱樂部 和關注官方微信公總号(文末掃描二維碼或 點此加入

-阿裡雲資料中台官網 https://dp.alibaba.com/index

資料隻有被整合和計算,才能被用于洞察商業規律,挖掘潛在資訊,進而實作大資料價值,達到賦能于商業和創造價值的目的。面對海量的資料和複雜的計算,阿裡巴巴的資料計算層包括兩大體系:資料存儲及計算平台(離線計算平台MaxCompute和實時計算平台StreamCompute)、資料整合及管理體系(OneData)。

阿裡資料研發崗位的工作大緻可以概括為:了解需求→模型設計→ETL開發→測試→釋出上線→日常運維→任務下線。與傳統的資料倉庫開發(ETL)相比,阿裡資料研發有如下幾個特點:

  • 業務變更頻繁——業務發展非常快,業務需求多且變更頻繁;
  • 需要快速傳遞——業務驅動,需要快速給出結果;
  • 頻繁釋出上線——疊代周期以天為機關,每天需要釋出數次;
  • 運維任務多——在集團公共層平均每個開發人員負責上百多個任務;
  • 系統環境複雜——阿裡平台系統多為自研,且為了保證業務的發展,平台系統的疊代速度較快,平台的穩定性壓力較大。

通過統一的計算平台(MaxCompute)、統一的開發平台、統一的資料模型規範和統一的資料研發規範,可以在一定程度上解決資料研發的痛點。

本文主要介紹MaxCompute和阿裡巴巴内部基于MaxCompute的大資料開發套件,并對在資料開發過程中經常遇到的問題和相關解決方案進行介紹。

1、統一計算平台

阿裡離線資料倉庫的存儲和計算都是在阿裡雲大資料計算服務MaxCompute上完成的。

大資料計算服務MaxCompute是由阿裡雲自主研發的海量資料處理平台,主要服務于海量資料的存儲和計算,提供完善的資料導入方案,以及多種經典的分布式計算模型,提供海量資料倉庫的解決方案,能夠更快速地解決使用者的海量資料計算問題,有效降低企業成本,并保障資料安全。

MaxCompute采用抽象的作業處理架構,将不同場景的各種計算任務統一在同一個平台之上,共享安全、存儲、資料管理和資源排程,為來自不同使用者需求的各種資料處理任務提供統一的程式設計接口和界面。它提供資料上傳/下載下傳通道、SQL、MapReduce、機器學習算法、圖程式設計模型和流式計算模型多種計算分析服務,并且提供完善的安全解決方案。

1.MaxCompute的體系架構

MaxCompute由四部分組成,分别是用戶端(MaxCompute Client)、接入層(MaxCompute Front End)、邏輯層(MaxCompute Server)及存儲與計算層(Apsara Core)。

連載:阿裡巴巴大資料實踐—資料開發平台1、統一計算平台2、統一開發平台

圖:MaxCompute體系架構圖

2.MaxCompute的特點

(1)計算性能高且更加普惠

2016年11月10日,Sort Benchmark在官方網站公布了2016年排序競賽CloudSort項目的最終成績。阿裡雲以$1.44/TB的成績獲得 Indy(專用目的排序)和Daytona(通用目的排序)兩個子項的世界冠軍,打破了AWS在2014年保持的紀錄$4.51/TB。這意味着阿裡雲将世界頂級的計算能力,變成普惠科技的雲産品。CloudSort又被稱為“雲計算效率之争”,這項目賽比拼的是完成100TB資料排序誰的花費更少,也是Sort Benchmark的各項比賽當中最具現實意義的項目之一。

(2)叢集規模大且穩定性高

MaxCompute平台共有幾萬台機器、存儲近1000PB,支撐着阿裡巴巴的很多業務系統,包括資料倉庫、BI分析和決策支援、信用評估和無擔保貸款風險控制、廣告業務、每天幾十億流量的搜尋和推薦相關性分析等,系統運作非常穩定。同時,MaxCompute能保證資料的正确性,如對資料的準确性要求非常高的螞蟻金服小額貸款業務,就運作于MaxCompute平台之上。

(3)功能元件非常強大

MaxCompute SQL:标準SQL的文法,提供各類操作和函數來處理資料。

MaxCompute MapReduce:提供Java MapReduce 程式設計模型,通過接口編寫MR程式處理MaxCompute中的資料。還提供基于MapReduce的擴充模型MR2,在該模型下,一個Map函數後可以接入連續多個Reduce函數,執行效率比普通的MapReduce模型高。

MaxCompute Graph:面向疊代的圖計算處理架構,典型應用有PageRank、單源最短距離算法、K-均值聚類算法。

Spark:使用Spark接口程式設計處理存儲在MaxCompute中的資料。

RMaxCompute:使用R處理MaxCompute中的資料。

Volume:MaxCompute以Volume的形式支援檔案,管理非二維表資料。

(4)安全性高

MaxCompute提供功能強大的安全服務,為使用者的資料安全提供保護。MaxCompute采用多租戶資料安全體系,實作使用者認證、項目空間的使用者與授權管理、跨項目空間的資源分享,以及項目空間的資料保護。如支付寶資料,符合銀行監管的安全性要求,支援各種授權鑒權審查和“最小通路權限”原則,確定資料安全。

2、統一開發平台

阿裡資料開發平台內建了多個子系統來解決實際生産中的各種痛點。圍繞MaxCompute計算平台,從任務開發、調試、測試、釋出、監控、報警到運維管理,形成了整套工具和産品,既提高了開發效率,又保證了資料品質,并且在確定資料産出時效的同時,能對資料進行有效管理。

資料研發人員完成需求了解和模型設計之後,進入開發環節,開發工作流如圖所示。

連載:阿裡巴巴大資料實踐—資料開發平台1、統一計算平台2、統一開發平台

圖:開發工作流圖

對應于開發工作流的産品和工具如下圖所示,我們将對其功能進行簡要介紹。

1.在雲端(D2)

D2是內建任務開發、調試及釋出,生産任務排程及大資料運維,資料權限申請及管理等功能的一站式資料開發平台,并能承擔資料分析工作台的功能。

連載:阿裡巴巴大資料實踐—資料開發平台1、統一計算平台2、統一開發平台

圖:對應于開發工作流的産品和工具

使用者使用D2進行資料開發的基本流程如下:

——使用者使用IDE進行計算節點的建立,可以是SQL/MR任務,也可以是Shell任務或者資料同步任務等,使用者需要編寫節點代碼、設定節點屬性和通過輸入輸出關聯節點間依賴。設定好這些後,可以通過試運作來測試計算邏輯是否正确、結果是否符合預期。

——使用者點選送出,節點進入開發環境中,并成為某個工作流的其中一個節點。整個工作流可以被觸發排程,這種觸發可以是人為的(稱之為“臨時工作流”),也可以是系統自動的(稱之為“日常工作流”)。當某個節點滿足所有觸發條件後,會被下發到排程系統的執行引擎Alisa中,完成資源配置設定和執行的整個過程。

如果節點在開發環境中運作無誤,使用者可以點選釋出,将該節點正式送出到生産環境中,成為線上生産鍊路的一個環節。

2.SQLSCAN

SQLSCAN将在任務開發中遇到的各種問題,如使用者編寫的SQL品質差、性能低、不遵守規範等,總結後形成規則,并通過系統及研發流程保障,事前解決故障隐患,避免事後處理。

SQLSCAN與D2進行結合,嵌入到開發流程中,使用者在送出代碼時會觸發SQLSCAN檢查。SQLSCAN工作流程如下圖所示。

連載:阿裡巴巴大資料實踐—資料開發平台1、統一計算平台2、統一開發平台

圖:SQLSCAN工作流程圖

使用者在D2的IDE中編寫代碼。

——使用者送出代碼,D2将代碼、排程等資訊傳到SQLSCAN。

——SQLSCAN根據所配置的規則執行相應的規則校驗。

——SQLSCAN将檢查成功或者失敗的資訊傳回D2。

——D2的IDE顯示OK(成功)、WARNNING(警告)、FAILED(失敗,禁止使用者送出)等消息。

SQLSCAN主要有如下三類規則校驗:

代碼規範類規則,如表命名規範、生命周期設定、表注釋等。

代碼品質類規則,如排程參數使用檢查、分母為0提醒、NULL值參與計算影響結果提醒、插入字段順序錯誤等。

代碼性能類規則,如分區裁剪失效、掃描大表提醒、重複計算檢測等。

SQLSCAN規則有強規則和弱規則兩類。觸發強規則後,任務的送出會被阻斷,必須修複代碼後才能再次送出;而觸發弱規則,則隻會顯示違反規則的提示,使用者可以繼續送出任務。

3.DQC

DQC(Data Quality Center,資料品質中心)主要關注資料品質,通過配置資料品質校驗規則,自動在資料處理任務過程中進行資料品質方面的監控。

DQC主要有資料監控和資料清洗兩大功能。資料監控,顧名思義,能監控資料品質并報警,其本身不對資料産出進行處理,需要報警接收人判斷并決定如何處理;而資料清洗則是将不符合既定規則的資料清洗掉,以保證最終資料産出不含“髒資料”,資料清洗不會觸發報警。

DQC資料監控規則有強規則和弱規則之分,強規則會阻斷任務的執行(将任務置為失敗狀态,其下遊任務将不會被執行);而弱規則隻告警而不會阻斷任務的執行。常見的DQC監控規則有:主鍵監控、表資料量及波動監控、重要字段的非空監控、重要枚舉字段的離散值監控、名額值波動監控、業務規則監控等。

阿裡資料倉庫的資料清洗采用非侵入式的清洗政策,在資料同步過程中不進行資料清洗,避免影響資料同步的效率,其過程在資料進入ODS層之後執行。對于需要清洗的表,首先在DQC配置清洗規則;對于離線任務,每隔固定的時間間隔,資料入倉之後,啟動清洗任務,調用DQC配置的清洗規則,将符合清洗規則的資料清洗掉,并儲存至DIRTY表歸檔。如果清洗掉的資料量大于預設的門檻值,則阻斷任務的執行;否則不會阻斷。

DQC工作流程如下圖所示。

連載:阿裡巴巴大資料實踐—資料開發平台1、統一計算平台2、統一開發平台

圖:DQC工作流程圖

4.在彼岸

資料測試的典型測試方法是功能測試,主要驗證目标資料是否符合預期。其主要有如下場景:

(1)新增業務需求

新增産品經理、營運、BI等的報表、應用或産品需求,需要開發新的ETL任務,此時應對上線前的ETL任務進行測試,確定目标資料符合業務預期,避免業務方根據錯誤資料做出決策。其主要對目标資料和源資料進行對比,包括資料量、主鍵、字段空值、字段枚舉值、複雜邏輯(如UDF、多路分支)等的測試。

(2)資料遷移、重構和修改

由于資料倉庫系統遷移、源系統業務變化、業務需求變更或重構等,需要對現有的代碼邏輯進行修改,為保證資料品質需要對修改前後的資料進行對比,包括資料量差異、字段值差異對比等,保證邏輯變更正确。為了嚴格保證資料品質,對于優先級(優先級的定義見“資料品質”章節)大于某個門檻值的任務,強制要求必須使用在彼岸進行回歸測試,在彼岸回歸測試通過之後,才允許進入釋出流程。

在彼岸則是用于解決上述測試問題而開發的大資料系統的自動化測試平台,将通用的、重複性的操作沉澱在測試平台中,避免被“人肉”,提高測試效率。

在彼岸主要包含如下元件,除滿足資料測試的資料對比元件之外,還有資料分布和資料脫敏元件。

資料對比:支援不同叢集、異構資料庫的表做資料對比。表級對比規則主要包括資料量和全文對比;字段級對比規則主要包括字段的統計值(如SUM、AVG、MAX、MIN等)、枚舉值、空值、去重數、長度值等。

資料分布:提取表和字段的一些特征值,并将這些特征值與預期值進行比對。表級資料特征提取主要包括資料量、主鍵等;字段級資料特征提取主要包括字段枚舉值分布、空值分布、統計值(如SUM、AVG、MAX、MIN等)、去重數、長度值等。

資料脫敏:将敏感資料模糊化。在資料安全的大前提下,實作線上資料脫敏,在保證資料安全的同時又保持資料形态的分布,以便業務聯調、資料調研和資料交換。

使用在彼岸進行回歸測試的流程如下圖所示。

連載:阿裡巴巴大資料實踐—資料開發平台1、統一計算平台2、統一開發平台

圖:使用在彼岸進行回歸測試流程圖

注:本書中出現的部分專有名詞、專業術語、産品名稱、軟體項目名稱、工具名稱等,是淘寶(中國)軟體有限公司内部項目的慣用詞語,如與第三方名稱雷同,實屬巧合。

本文節選自《大資料之路:阿裡巴巴大資料實踐》已受版權保護,未經授權不得轉載

資料中台是企業數智化的新基建,阿裡巴巴認為資料中台是集方法論、工具、組織于一體的,“快”、“準”、“全”、“統”、“通”的智能大資料體系。目前正通過阿裡雲資料中台解決方案對外輸出,包括

零售

金融 網際網路 政務

等領域,其中核心産品有:

官方站點:

資料中台官網

https://dp.alibaba.com
連載:阿裡巴巴大資料實踐—資料開發平台1、統一計算平台2、統一開發平台