亚洲综合伊人,成人欧美一区二区三区视频不卡,欧美日韩在线高清,日韩国产午夜一区二区三区,大胆美女艺术,一级毛片毛片**毛片毛片,你瞅啥图片

您當(dāng)前的位置是:  首頁 > 資訊 > 文章精選 >
 首頁 > 資訊 > 文章精選 >

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

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

相關(guān)閱讀:

專題

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

宜州市| 海盐县| 林周县| 武义县| 临海市| 普安县| 双桥区| 汉中市| 上蔡县| 阿拉善右旗| 阳山县| 垣曲县| 迭部县| 新郑市| 湖州市| 营口市| 金山区| 广灵县| 邹平县| 永昌县| 察雅县| 文成县| 镇赉县| 哈尔滨市| 彭水| 北海市| 晋中市| 青海省| 调兵山市| 师宗县| 东乡族自治县| 基隆市| 西乡县| 岱山县| 庄浪县| 翁牛特旗| 永仁县| 大石桥市| 保德县| 饶河县| 巧家县|