99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀數(shù)據(jù)統(tǒng)一的七原則
數(shù)據(jù)統(tǒng)一的七原則
2017-11-27
收藏

數(shù)據(jù)統(tǒng)一的七原則

“所有的可規(guī)?;到y(tǒng),都必須自動(dòng)進(jìn)行絕大多數(shù)的操作?!?

? “‘模式為先’(schema-first)的產(chǎn)品永遠(yuǎn)無法規(guī)?;?。唯一的選擇是采用‘模式為后’(schema-last)的產(chǎn)品?!?
? “需要進(jìn)行具體的域操作時(shí),只有協(xié)作性的系統(tǒng)才可實(shí)現(xiàn)規(guī)?;?。”
? “為了實(shí)現(xiàn)可規(guī)?;?,任何的統(tǒng)一計(jì)算必須在多個(gè)核心和多個(gè)處理器上運(yùn)行。”
? “盡管存在第四條原則,但真正的可擴(kuò)展應(yīng)用需要復(fù)雜性低于N ** 2的并行算法。”
? “規(guī)則系統(tǒng)實(shí)現(xiàn)是無法規(guī)?;摹V挥?a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)系統(tǒng)才能將規(guī)模擴(kuò)展到大公司所需要的程度?!?
? “必須支持實(shí)時(shí)增量統(tǒng)一。”

數(shù)據(jù)統(tǒng)一可以說是數(shù)據(jù)分析領(lǐng)域的一個(gè)長(zhǎng)期挑戰(zhàn)。雖然聯(lián)合式的方法獲得了一些青睞,但絕大部分的數(shù)據(jù)分析從業(yè)者希望在分析之前,所有數(shù)據(jù)都能在同一個(gè)地方呈現(xiàn)出來。這意味著,來自不同實(shí)體的數(shù)據(jù)必須統(tǒng)一起來,而問題就出在這個(gè)地方。

在新白皮書《可規(guī)模化數(shù)據(jù)統(tǒng)一的七原則》中,著名計(jì)算機(jī)科學(xué)家、Tamr聯(lián)合創(chuàng)始人兼首席技術(shù)官邁克爾·斯通布雷克(Michael Stonebraker)以其獨(dú)特和直白的方式,探討了上述挑戰(zhàn)。
說到斯通布雷克這個(gè)人,他同時(shí)也是圖靈獎(jiǎng)得主、麻省理工學(xué)院教授,以及大數(shù)據(jù)分析公司Vertica(這家公司已經(jīng)被惠普收購)的創(chuàng)始人。在那份白皮書的開頭,他對(duì)數(shù)據(jù)統(tǒng)一進(jìn)行了一番闡述。他說,數(shù)據(jù)統(tǒng)一由七步組成,包括獲取、清洗、轉(zhuǎn)換、模式集成、重復(fù)數(shù)據(jù)刪除、分類和導(dǎo)出(但不要把這七步和七條原則搞混了)。
一般來說,企業(yè)主要使用兩種方法來實(shí)現(xiàn)數(shù)據(jù)統(tǒng)一,包括提取轉(zhuǎn)換加載(ETL)和主數(shù)據(jù)管理(MDM)。
斯通布雷克說,這兩種方法各有利弊。
ETL非常靈活,適合不同的數(shù)據(jù)來源,使程序員可以手動(dòng)編寫轉(zhuǎn)換程序,確保源數(shù)據(jù)的模式與集中式數(shù)據(jù)倉庫項(xiàng)目采用的全局模式匹配。斯通布雷克說,由于自動(dòng)化程度低,沒有多少公司的ETL帶寬能超過20個(gè)數(shù)據(jù)源。
至于MDM,它與ETL類似的地方在于,也預(yù)設(shè)了一個(gè)“主記錄”,每一個(gè)專門類別(比如客戶、部件和供應(yīng)商)的所有文件都應(yīng)該符合主記錄的格式。但和ETL不同,MDM不是使用手動(dòng)定制腳本,而是依靠一套“模糊合并”規(guī)則,把所有不同的文件轉(zhuǎn)換成主格式。
但斯通布雷克說,不管是ETL還是MDM,都無法解決所有的數(shù)據(jù)統(tǒng)一難題,尤其是在數(shù)據(jù)量很大的情況下。針對(duì)這些限制,他提出了數(shù)據(jù)統(tǒng)一的七條原則。
由于當(dāng)今大數(shù)據(jù)集的龐大規(guī)模及其對(duì)程序員的苛刻要求,任何的可規(guī)?;瘮?shù)據(jù)統(tǒng)一項(xiàng)目都必須在很大程度上實(shí)現(xiàn)自動(dòng)化,不能依靠手動(dòng)編寫的程序。這催生了斯通布雷克的第一條原則:
“所有的可規(guī)?;到y(tǒng),都必須自動(dòng)進(jìn)行絕大多數(shù)的操作?!?
當(dāng)今數(shù)據(jù)的多樣性也催生出一個(gè)問題。比如,諾華制藥公司(Novartis)想把1萬名從事“濕性實(shí)驗(yàn)”工作的科學(xué)家的實(shí)驗(yàn)記錄統(tǒng)一起來,但遇到了全局模式問題??傊`活的“模式讀取”(Schema-On-Read)方法是解決數(shù)據(jù)多樣性問題的唯一方法。這催生了斯通布雷克的第二條原則:
“‘模式為先’(schema-first)的產(chǎn)品永遠(yuǎn)無法規(guī)?;?。唯一的選擇是采用‘模式為后’(schema-last)的產(chǎn)品?!?
雖然自動(dòng)化是數(shù)據(jù)統(tǒng)一的關(guān)鍵因素,但人類專家的地位是肯定取代不了的。就諾華的那個(gè)例子而言,只有科學(xué)家本人才能證實(shí)特定的一個(gè)數(shù)據(jù)(比如新化合物的名字)是否準(zhǔn)確,有沒有拼寫錯(cuò)誤。這催生了第三條原則:
“需要進(jìn)行具體的域操作時(shí),只有協(xié)作性的系統(tǒng)才可實(shí)現(xiàn)規(guī)?;??!?
對(duì)大規(guī)模數(shù)據(jù)統(tǒng)一來說,可擴(kuò)展性必不可少。當(dāng)數(shù)據(jù)集超過1000萬個(gè)文件時(shí),單個(gè)計(jì)算核心根本處理不了,更別說單個(gè)芯片或者單個(gè)電腦。這催生了第四條原則:
“為了實(shí)現(xiàn)可規(guī)模化,任何的統(tǒng)一計(jì)算必須在多個(gè)核心和多個(gè)處理器上運(yùn)行?!?
聚類算法是數(shù)據(jù)統(tǒng)一和數(shù)據(jù)清洗工具的核心。雖然這些算法是并行的,但如果太復(fù)雜的話,就會(huì)耗費(fèi)太多時(shí)間。這催生了第五條原則:
“盡管存在第四條原則,但真正的可擴(kuò)展應(yīng)用需要復(fù)雜性低于N ** 2的并行算法。”
很多MDM產(chǎn)品采用基于規(guī)則的方法來確定轉(zhuǎn)換。但考慮到當(dāng)今企業(yè)試圖統(tǒng)一的數(shù)據(jù)體量和多樣性,這些方法行不通。這催生了第六條原則:
“規(guī)則系統(tǒng)實(shí)現(xiàn)是無法規(guī)?;摹V挥?a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)系統(tǒng)才能將規(guī)模擴(kuò)展到大公司所需要的程度。”
最后,數(shù)據(jù)統(tǒng)一系統(tǒng)必須適應(yīng)客戶的工作方式。從技術(shù)上來說,雖然理論上可以靠“蠻力”更新每一條變化的記錄,但如果數(shù)據(jù)太多、變動(dòng)頻繁,就會(huì)造成混亂。這催生了第七條也是最后一條原則:
“必須支持實(shí)時(shí)增量統(tǒng)一?!?

  斯通布雷克說,ETL方法不符合第一、第二和第三條原則,而MDM方法不符合第一、第二和第六條原則。在大數(shù)據(jù)領(lǐng)域非常流行的自助式數(shù)據(jù)準(zhǔn)備方法“至少”不符合第一和第三條原則。他還說,目前所有產(chǎn)品(ETL、MDM和自助式數(shù)據(jù)準(zhǔn)備)可能都不符合第五和第七條原則。

數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請(qǐng)參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }