• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
    您當(dāng)前的位置是:  首頁(yè) > 資訊 > 文章精選 >
     首頁(yè) > 資訊 > 文章精選 >

    阿里巴巴大數(shù)據(jù)實(shí)踐—數(shù)據(jù)開(kāi)發(fā)平臺(tái)

    2020-08-12 13:52:38   作者:數(shù)據(jù)中臺(tái)君   來(lái)源:CTI論壇   評(píng)論:0  點(diǎn)擊:


      數(shù)據(jù)只有被整合和計(jì)算,才能被用于洞察商業(yè)規(guī)律,挖掘潛在信息,從而實(shí)現(xiàn)大數(shù)據(jù)價(jià)值,達(dá)到賦能于商業(yè)和創(chuàng)造價(jià)值的目的。面對(duì)海量的數(shù)據(jù)和復(fù)雜的計(jì)算,阿里巴巴的數(shù)據(jù)計(jì)算層包括兩大體系:數(shù)據(jù)存儲(chǔ)及計(jì)算平臺(tái)(離線(xiàn)計(jì)算平臺(tái)MaxCompute和實(shí)時(shí)計(jì)算平臺(tái)StreamCompute)、數(shù)據(jù)整合及管理體系(OneData)。
      阿里數(shù)據(jù)研發(fā)崗位的工作大致可以概括為:了解需求→模型設(shè)計(jì)→ETL開(kāi)發(fā)→測(cè)試→發(fā)布上線(xiàn)→日常運(yùn)維→任務(wù)下線(xiàn)。與傳統(tǒng)的數(shù)據(jù)倉(cāng)庫(kù)開(kāi)發(fā)(ETL)相比,阿里數(shù)據(jù)研發(fā)有如下幾個(gè)特點(diǎn):
    • 業(yè)務(wù)變更頻繁——業(yè)務(wù)發(fā)展非常快,業(yè)務(wù)需求多且變更頻繁;
    • 需要快速交付——業(yè)務(wù)驅(qū)動(dòng),需要快速給出結(jié)果;
    • 頻繁發(fā)布上線(xiàn)——迭代周期以天為單位,每天需要發(fā)布數(shù)次;
    • 運(yùn)維任務(wù)多——在集團(tuán)公共層平均每個(gè)開(kāi)發(fā)人員負(fù)責(zé)上百多個(gè)任務(wù);
    • 系統(tǒng)環(huán)境復(fù)雜——阿里平臺(tái)系統(tǒng)多為自研,且為了保證業(yè)務(wù)的發(fā)展,平臺(tái)系統(tǒng)的迭代速度較快,平臺(tái)的穩(wěn)定性壓力較大。
    • 通過(guò)統(tǒng)一的計(jì)算平臺(tái)(MaxCompute)、統(tǒng)一的開(kāi)發(fā)平臺(tái)、統(tǒng)一的數(shù)據(jù)模型規(guī)范和統(tǒng)一的數(shù)據(jù)研發(fā)規(guī)范,可以在一定程度上解決數(shù)據(jù)研發(fā)的痛點(diǎn)。
      本文主要介紹MaxCompute和阿里巴巴內(nèi)部基于MaxCompute的大數(shù)據(jù)開(kāi)發(fā)套件,并對(duì)在數(shù)據(jù)開(kāi)發(fā)過(guò)程中經(jīng)常遇到的問(wèn)題和相關(guān)解決方案進(jìn)行介紹。
      1、統(tǒng)一計(jì)算平臺(tái)
      阿里離線(xiàn)數(shù)據(jù)倉(cāng)庫(kù)的存儲(chǔ)和計(jì)算都是在阿里云大數(shù)據(jù)計(jì)算服務(wù)MaxCompute上完成的。
      大數(shù)據(jù)計(jì)算服務(wù)MaxCompute是由阿里云自主研發(fā)的海量數(shù)據(jù)處理平臺(tái),主要服務(wù)于海量數(shù)據(jù)的存儲(chǔ)和計(jì)算,提供完善的數(shù)據(jù)導(dǎo)入方案,以及多種經(jīng)典的分布式計(jì)算模型,提供海量數(shù)據(jù)倉(cāng)庫(kù)的解決方案,能夠更快速地解決用戶(hù)的海量數(shù)據(jù)計(jì)算問(wèn)題,有效降低企業(yè)成本,并保障數(shù)據(jù)安全。
      MaxCompute采用抽象的作業(yè)處理框架,將不同場(chǎng)景的各種計(jì)算任務(wù)統(tǒng)一在同一個(gè)平臺(tái)之上,共享安全、存儲(chǔ)、數(shù)據(jù)管理和資源調(diào)度,為來(lái)自不同用戶(hù)需求的各種數(shù)據(jù)處理任務(wù)提供統(tǒng)一的編程接口和界面。它提供數(shù)據(jù)上傳/下載通道、SQL、MapReduce、機(jī)器學(xué)習(xí)算法、圖編程模型和流式計(jì)算模型多種計(jì)算分析服務(wù),并且提供完善的安全解決方案。
      1.MaxCompute的體系架構(gòu)
      MaxCompute由四部分組成,分別是客戶(hù)端(MaxCompute Client)、接入層(MaxCompute Front End)、邏輯層(MaxCompute Server)及存儲(chǔ)與計(jì)算層(Apsara Core)。
      圖:MaxCompute體系架構(gòu)圖
      2.MaxCompute的特點(diǎn)
      (1)計(jì)算性能高且更加普惠
      2016年11月10日,Sort Benchmark在官方網(wǎng)站公布了2016年排序競(jìng)賽CloudSort項(xiàng)目的最終成績(jī)。阿里云以$1.44/TB的成績(jī)獲得 Indy(專(zhuān)用目的排序)和Daytona(通用目的排序)兩個(gè)子項(xiàng)的世界冠軍,打破了AWS在2014年保持的紀(jì)錄$4.51/TB。這意味著阿里云將世界頂級(jí)的計(jì)算能力,變成普惠科技的云產(chǎn)品。CloudSort又被稱(chēng)為“云計(jì)算效率之爭(zhēng)”,這項(xiàng)目賽比拼的是完成100TB數(shù)據(jù)排序誰(shuí)的花費(fèi)更少,也是Sort Benchmark的各項(xiàng)比賽當(dāng)中最具現(xiàn)實(shí)意義的項(xiàng)目之一。
      (2)集群規(guī)模大且穩(wěn)定性高
      MaxCompute平臺(tái)共有幾萬(wàn)臺(tái)機(jī)器、存儲(chǔ)近1000PB,支撐著阿里巴巴的很多業(yè)務(wù)系統(tǒng),包括數(shù)據(jù)倉(cāng)庫(kù)、BI分析和決策支持、信用評(píng)估和無(wú)擔(dān)保貸款風(fēng)險(xiǎn)控制、廣告業(yè)務(wù)、每天幾十億流量的搜索和推薦相關(guān)性分析等,系統(tǒng)運(yùn)行非常穩(wěn)定。同時(shí),MaxCompute能保證數(shù)據(jù)的正確性,如對(duì)數(shù)據(jù)的準(zhǔn)確性要求非常高的螞蟻金服小額貸款業(yè)務(wù),就運(yùn)行于MaxCompute平臺(tái)之上。
      (3)功能組件非常強(qiáng)大
    • MaxCompute SQL:標(biāo)準(zhǔn)SQL的語(yǔ)法,提供各類(lèi)操作和函數(shù)來(lái)處理數(shù)據(jù)。
    • MaxCompute MapReduce:提供Java MapReduce 編程模型,通過(guò)接口編寫(xiě)MR程序處理MaxCompute中的數(shù)據(jù)。還提供基于MapReduce的擴(kuò)展模型MR2,在該模型下,一個(gè)Map函數(shù)后可以接入連續(xù)多個(gè)Reduce函數(shù),執(zhí)行效率比普通的MapReduce模型高。
    • MaxCompute Graph:面向迭代的圖計(jì)算處理框架,典型應(yīng)用有PageRank、單源最短距離算法、K-均值聚類(lèi)算法。
    • Spark:使用Spark接口編程處理存儲(chǔ)在MaxCompute中的數(shù)據(jù)。
    • RMaxCompute:使用R處理MaxCompute中的數(shù)據(jù)。
    • Volume:MaxCompute以Volume的形式支持文件,管理非二維表數(shù)據(jù)。
      (4)安全性高
      MaxCompute提供功能強(qiáng)大的安全服務(wù),為用戶(hù)的數(shù)據(jù)安全提供保護(hù)。MaxCompute采用多租戶(hù)數(shù)據(jù)安全體系,實(shí)現(xiàn)用戶(hù)認(rèn)證、項(xiàng)目空間的用戶(hù)與授權(quán)管理、跨項(xiàng)目空間的資源分享,以及項(xiàng)目空間的數(shù)據(jù)保護(hù)。如支付寶數(shù)據(jù),符合銀行監(jiān)管的安全性要求,支持各種授權(quán)鑒權(quán)審查和“最小訪問(wèn)權(quán)限”原則,確保數(shù)據(jù)安全。
      2、統(tǒng)一開(kāi)發(fā)平臺(tái)
      阿里數(shù)據(jù)開(kāi)發(fā)平臺(tái)集成了多個(gè)子系統(tǒng)來(lái)解決實(shí)際生產(chǎn)中的各種痛點(diǎn)。圍繞MaxCompute計(jì)算平臺(tái),從任務(wù)開(kāi)發(fā)、調(diào)試、測(cè)試、發(fā)布、監(jiān)控、報(bào)警到運(yùn)維管理,形成了整套工具和產(chǎn)品,既提高了開(kāi)發(fā)效率,又保證了數(shù)據(jù)質(zhì)量,并且在確保數(shù)據(jù)產(chǎn)出時(shí)效的同時(shí),能對(duì)數(shù)據(jù)進(jìn)行有效管理。
      數(shù)據(jù)研發(fā)人員完成需求了解和模型設(shè)計(jì)之后,進(jìn)入開(kāi)發(fā)環(huán)節(jié),開(kāi)發(fā)工作流如圖所示。
     
      圖:開(kāi)發(fā)工作流圖
      對(duì)應(yīng)于開(kāi)發(fā)工作流的產(chǎn)品和工具如下圖所示,我們將對(duì)其功能進(jìn)行簡(jiǎn)要介紹。
      1.在云端(D2)
      D2是集成任務(wù)開(kāi)發(fā)、調(diào)試及發(fā)布,生產(chǎn)任務(wù)調(diào)度及大數(shù)據(jù)運(yùn)維,數(shù)據(jù)權(quán)限申請(qǐng)及管理等功能的一站式數(shù)據(jù)開(kāi)發(fā)平臺(tái),并能承擔(dān)數(shù)據(jù)分析工作臺(tái)的功能。
      圖:對(duì)應(yīng)于開(kāi)發(fā)工作流的產(chǎn)品和工具
      用戶(hù)使用D2進(jìn)行數(shù)據(jù)開(kāi)發(fā)的基本流程如下:
      ——用戶(hù)使用IDE進(jìn)行計(jì)算節(jié)點(diǎn)的創(chuàng)建,可以是SQL/MR任務(wù),也可以是Shell任務(wù)或者數(shù)據(jù)同步任務(wù)等,用戶(hù)需要編寫(xiě)節(jié)點(diǎn)代碼、設(shè)置節(jié)點(diǎn)屬性和通過(guò)輸入輸出關(guān)聯(lián)節(jié)點(diǎn)間依賴(lài)。設(shè)置好這些后,可以通過(guò)試運(yùn)行來(lái)測(cè)試計(jì)算邏輯是否正確、結(jié)果是否符合預(yù)期。
      ——用戶(hù)點(diǎn)擊提交,節(jié)點(diǎn)進(jìn)入開(kāi)發(fā)環(huán)境中,并成為某個(gè)工作流的其中一個(gè)節(jié)點(diǎn)。整個(gè)工作流可以被觸發(fā)調(diào)度,這種觸發(fā)可以是人為的(稱(chēng)之為“臨時(shí)工作流”),也可以是系統(tǒng)自動(dòng)的(稱(chēng)之為“日常工作流”)。當(dāng)某個(gè)節(jié)點(diǎn)滿(mǎn)足所有觸發(fā)條件后,會(huì)被下發(fā)到調(diào)度系統(tǒng)的執(zhí)行引擎Alisa中,完成資源分配和執(zhí)行的整個(gè)過(guò)程。
      如果節(jié)點(diǎn)在開(kāi)發(fā)環(huán)境中運(yùn)行無(wú)誤,用戶(hù)可以點(diǎn)擊發(fā)布,將該節(jié)點(diǎn)正式提交到生產(chǎn)環(huán)境中,成為線(xiàn)上生產(chǎn)鏈路的一個(gè)環(huán)節(jié)。
      2.SQLSCAN
      SQLSCAN將在任務(wù)開(kāi)發(fā)中遇到的各種問(wèn)題,如用戶(hù)編寫(xiě)的SQL質(zhì)量差、性能低、不遵守規(guī)范等,總結(jié)后形成規(guī)則,并通過(guò)系統(tǒng)及研發(fā)流程保障,事前解決故障隱患,避免事后處理。
      SQLSCAN與D2進(jìn)行結(jié)合,嵌入到開(kāi)發(fā)流程中,用戶(hù)在提交代碼時(shí)會(huì)觸發(fā)SQLSCAN檢查。SQLSCAN工作流程如下圖所示。
     
      圖:SQLSCAN工作流程圖
      用戶(hù)在D2的IDE中編寫(xiě)代碼。
    • ——用戶(hù)提交代碼,D2將代碼、調(diào)度等信息傳到SQLSCAN。
    • ——SQLSCAN根據(jù)所配置的規(guī)則執(zhí)行相應(yīng)的規(guī)則校驗(yàn)。
    • ——SQLSCAN將檢查成功或者失敗的信息傳回D2。
    • ——D2的IDE顯示OK(成功)、WARNNING(警告)、FAILED(失敗,禁止用戶(hù)提交)等消息。
      SQLSCAN主要有如下三類(lèi)規(guī)則校驗(yàn):
      代碼規(guī)范類(lèi)規(guī)則,如表命名規(guī)范、生命周期設(shè)置、表注釋等。
      代碼質(zhì)量類(lèi)規(guī)則,如調(diào)度參數(shù)使用檢查、分母為0提醒、NULL值參與計(jì)算影響結(jié)果提醒、插入字段順序錯(cuò)誤等。
      代碼性能類(lèi)規(guī)則,如分區(qū)裁剪失效、掃描大表提醒、重復(fù)計(jì)算檢測(cè)等。
      SQLSCAN規(guī)則有強(qiáng)規(guī)則和弱規(guī)則兩類(lèi)。觸發(fā)強(qiáng)規(guī)則后,任務(wù)的提交會(huì)被阻斷,必須修復(fù)代碼后才能再次提交;而觸發(fā)弱規(guī)則,則只會(huì)顯示違反規(guī)則的提示,用戶(hù)可以繼續(xù)提交任務(wù)。
      3.DQC
      DQC(Data Quality Center,數(shù)據(jù)質(zhì)量中心)主要關(guān)注數(shù)據(jù)質(zhì)量,通過(guò)配置數(shù)據(jù)質(zhì)量校驗(yàn)規(guī)則,自動(dòng)在數(shù)據(jù)處理任務(wù)過(guò)程中進(jìn)行數(shù)據(jù)質(zhì)量方面的監(jiān)控。
      DQC主要有數(shù)據(jù)監(jiān)控和數(shù)據(jù)清洗兩大功能。數(shù)據(jù)監(jiān)控,顧名思義,能監(jiān)控?cái)?shù)據(jù)質(zhì)量并報(bào)警,其本身不對(duì)數(shù)據(jù)產(chǎn)出進(jìn)行處理,需要報(bào)警接收人判斷并決定如何處理;而數(shù)據(jù)清洗則是將不符合既定規(guī)則的數(shù)據(jù)清洗掉,以保證最終數(shù)據(jù)產(chǎn)出不含“臟數(shù)據(jù)”,數(shù)據(jù)清洗不會(huì)觸發(fā)報(bào)警。
      DQC數(shù)據(jù)監(jiān)控規(guī)則有強(qiáng)規(guī)則和弱規(guī)則之分,強(qiáng)規(guī)則會(huì)阻斷任務(wù)的執(zhí)行(將任務(wù)置為失敗狀態(tài),其下游任務(wù)將不會(huì)被執(zhí)行);而弱規(guī)則只告警而不會(huì)阻斷任務(wù)的執(zhí)行。常見(jiàn)的DQC監(jiān)控規(guī)則有:主鍵監(jiān)控、表數(shù)據(jù)量及波動(dòng)監(jiān)控、重要字段的非空監(jiān)控、重要枚舉字段的離散值監(jiān)控、指標(biāo)值波動(dòng)監(jiān)控、業(yè)務(wù)規(guī)則監(jiān)控等。
      阿里數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)清洗采用非侵入式的清洗策略,在數(shù)據(jù)同步過(guò)程中不進(jìn)行數(shù)據(jù)清洗,避免影響數(shù)據(jù)同步的效率,其過(guò)程在數(shù)據(jù)進(jìn)入ODS層之后執(zhí)行。對(duì)于需要清洗的表,首先在DQC配置清洗規(guī)則;對(duì)于離線(xiàn)任務(wù),每隔固定的時(shí)間間隔,數(shù)據(jù)入倉(cāng)之后,啟動(dòng)清洗任務(wù),調(diào)用DQC配置的清洗規(guī)則,將符合清洗規(guī)則的數(shù)據(jù)清洗掉,并保存至DIRTY表歸檔。如果清洗掉的數(shù)據(jù)量大于預(yù)設(shè)的閾值,則阻斷任務(wù)的執(zhí)行;否則不會(huì)阻斷。
      DQC工作流程如下圖所示。
      
      圖:DQC工作流程圖
      4.在彼岸
      數(shù)據(jù)測(cè)試的典型測(cè)試方法是功能測(cè)試,主要驗(yàn)證目標(biāo)數(shù)據(jù)是否符合預(yù)期。其主要有如下場(chǎng)景:
      (1)新增業(yè)務(wù)需求
      新增產(chǎn)品經(jīng)理、運(yùn)營(yíng)、BI等的報(bào)表、應(yīng)用或產(chǎn)品需求,需要開(kāi)發(fā)新的ETL任務(wù),此時(shí)應(yīng)對(duì)上線(xiàn)前的ETL任務(wù)進(jìn)行測(cè)試,確保目標(biāo)數(shù)據(jù)符合業(yè)務(wù)預(yù)期,避免業(yè)務(wù)方根據(jù)錯(cuò)誤數(shù)據(jù)做出決策。其主要對(duì)目標(biāo)數(shù)據(jù)和源數(shù)據(jù)進(jìn)行對(duì)比,包括數(shù)據(jù)量、主鍵、字段空值、字段枚舉值、復(fù)雜邏輯(如UDF、多路分支)等的測(cè)試。
      (2)數(shù)據(jù)遷移、重構(gòu)和修改
      由于數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)遷移、源系統(tǒng)業(yè)務(wù)變化、業(yè)務(wù)需求變更或重構(gòu)等,需要對(duì)現(xiàn)有的代碼邏輯進(jìn)行修改,為保證數(shù)據(jù)質(zhì)量需要對(duì)修改前后的數(shù)據(jù)進(jìn)行對(duì)比,包括數(shù)據(jù)量差異、字段值差異對(duì)比等,保證邏輯變更正確。為了嚴(yán)格保證數(shù)據(jù)質(zhì)量,對(duì)于優(yōu)先級(jí)(優(yōu)先級(jí)的定義見(jiàn)“數(shù)據(jù)質(zhì)量”章節(jié))大于某個(gè)閾值的任務(wù),強(qiáng)制要求必須使用在彼岸進(jìn)行回歸測(cè)試,在彼岸回歸測(cè)試通過(guò)之后,才允許進(jìn)入發(fā)布流程。
      在彼岸則是用于解決上述測(cè)試問(wèn)題而開(kāi)發(fā)的大數(shù)據(jù)系統(tǒng)的自動(dòng)化測(cè)試平臺(tái),將通用的、重復(fù)性的操作沉淀在測(cè)試平臺(tái)中,避免被“人肉”,提高測(cè)試效率。
      在彼岸主要包含如下組件,除滿(mǎn)足數(shù)據(jù)測(cè)試的數(shù)據(jù)對(duì)比組件之外,還有數(shù)據(jù)分布和數(shù)據(jù)脫敏組件。
    • 數(shù)據(jù)對(duì)比:支持不同集群、異構(gòu)數(shù)據(jù)庫(kù)的表做數(shù)據(jù)對(duì)比。表級(jí)對(duì)比規(guī)則主要包括數(shù)據(jù)量和全文對(duì)比;字段級(jí)對(duì)比規(guī)則主要包括字段的統(tǒng)計(jì)值(如SUM、AVG、MAX、MIN等)、枚舉值、空值、去重?cái)?shù)、長(zhǎng)度值等。
    • 數(shù)據(jù)分布:提取表和字段的一些特征值,并將這些特征值與預(yù)期值進(jìn)行比對(duì)。表級(jí)數(shù)據(jù)特征提取主要包括數(shù)據(jù)量、主鍵等;字段級(jí)數(shù)據(jù)特征提取主要包括字段枚舉值分布、空值分布、統(tǒng)計(jì)值(如SUM、AVG、MAX、MIN等)、去重?cái)?shù)、長(zhǎng)度值等。
    • 數(shù)據(jù)脫敏:將敏感數(shù)據(jù)模糊化。在數(shù)據(jù)安全的大前提下,實(shí)現(xiàn)線(xiàn)上數(shù)據(jù)脫敏,在保證數(shù)據(jù)安全的同時(shí)又保持?jǐn)?shù)據(jù)形態(tài)的分布,以便業(yè)務(wù)聯(lián)調(diào)、數(shù)據(jù)調(diào)研和數(shù)據(jù)交換。
      使用在彼岸進(jìn)行回歸測(cè)試的流程如下圖所示。
     
      圖:使用在彼岸進(jìn)行回歸測(cè)試流程圖
      注:本書(shū)中出現(xiàn)的部分專(zhuān)有名詞、專(zhuān)業(yè)術(shù)語(yǔ)、產(chǎn)品名稱(chēng)、軟件項(xiàng)目名稱(chēng)、工具名稱(chēng)等,是淘寶(中國(guó))軟件有限公司內(nèi)部項(xiàng)目的慣用詞語(yǔ),如與第三方名稱(chēng)雷同,實(shí)屬巧合。來(lái)源:阿里云云棲號(hào)
    【免責(zé)聲明】本文僅代表作者本人觀點(diǎn),與CTI論壇無(wú)關(guān)。CTI論壇對(duì)文中陳述、觀點(diǎn)判斷保持中立,不對(duì)所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請(qǐng)讀者僅作參考,并請(qǐng)自行承擔(dān)全部責(zé)任。

    相關(guān)閱讀:

    評(píng)論排行

    專(zhuān)題

    CTI論壇會(huì)員企業(yè)

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 南漳县| 抚顺县| 太白县| 绍兴县| 邵武市| 宜兰县| 黑山县| 东源县| 五台县| 紫阳县| 迁安市| 陈巴尔虎旗| 衡阳市| 论坛| 曲麻莱县| 灵武市| 万州区| 古丈县| 绥芬河市| 阳泉市| 玉龙| 西充县| 缙云县| 沙河市| 富民县| 阳春市| 松原市| 临颍县| 历史| 大安市| 三门县| 桐梓县| 乾安县| 富阳市| 湄潭县| 峨山| 沙河市| 建平县| 扎鲁特旗| 延寿县| 古田县| http://444 http://444 http://444 http://444 http://444 http://444