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

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀應(yīng)對(duì)數(shù)據(jù)快速變化的難題
應(yīng)對(duì)數(shù)據(jù)快速變化的難題
2014-10-09
收藏
         當(dāng)我們開(kāi)始深入調(diào)查分析一個(gè)企業(yè)的數(shù)據(jù)管理架構(gòu)時(shí),這是一項(xiàng)不可避免的步驟。

以下是我的理由:過(guò)去應(yīng)用程序通常是用一個(gè)操作數(shù)據(jù)庫(kù)組建來(lái)編寫(xiě)的。應(yīng)用程序開(kāi)發(fā)人員很少擔(dān)心分析是如何進(jìn)行的——過(guò)去,這由其他人負(fù)責(zé)。他們只編寫(xiě)操作應(yīng)用程序。

       但是數(shù)據(jù)已經(jīng)變成了新型財(cái)富,而且應(yīng)用程序開(kāi)發(fā)人員也已經(jīng)意識(shí)到如今應(yīng)用程序需要與快速數(shù)據(jù)流和分析進(jìn)行交互充分利用可用數(shù)據(jù)。這就是高速數(shù)據(jù)的來(lái) 源以及為什么我說(shuō)這是不可避免的。這些從EMC Digital Universe的報(bào)告和Mary Meeker在2013年的Internet Trends報(bào)告中都能體現(xiàn)出來(lái)。

       因此,如果你正在建立類似這些運(yùn)行在數(shù)據(jù)流之上的數(shù)據(jù)驅(qū)動(dòng)應(yīng)用程序,你會(huì)需要什么呢?在與人們協(xié)作建立這些應(yīng)用程序中,一般可以歸結(jié)出五項(xiàng)需求并使之正確。當(dāng)然,你可以給出一些,然后人們來(lái)做。但是還是要讓?xiě)?yīng)用程序需求來(lái)驅(qū)動(dòng)決策,而非受制于你所選擇的數(shù)據(jù)管理技術(shù)。

Fast Data應(yīng)用程序的五項(xiàng)需求:


獲取數(shù)據(jù)與交互

       如今很多有價(jià)值的數(shù)據(jù)的運(yùn)行速度正在加快,它們以更多的來(lái)源和更快的頻率進(jìn)入。這些數(shù)據(jù)源通常是任何正在建立的數(shù)據(jù)管道的核心。但是,僅僅是調(diào)查這些數(shù)據(jù)是不夠的。記住,應(yīng)用程序面對(duì)的是數(shù)據(jù)流,而且在另一端的事物通常在尋找的是某些交互的形式。

比如:VoltDB正推動(dòng)大量的智能電網(wǎng)應(yīng)用程序,包括一項(xiàng)在UK部署5300萬(wàn)個(gè)儀表的計(jì)劃(接入U(xiǎn)K電網(wǎng))。當(dāng)你擁有如此大量的儀表且每秒有多個(gè)傳感器讀數(shù)的時(shí)候,你就會(huì)面臨嚴(yán)峻的數(shù)據(jù)獲取挑戰(zhàn)。此外,每個(gè)讀數(shù)需要檢查確定傳感器的狀態(tài)以及是否需要交互。


對(duì)每個(gè)事件作出決策

       使用其他數(shù)據(jù)來(lái)決定如何回應(yīng)以上交互所描述的提升——它提供了你做決策所急需的語(yǔ)境。需要用一定數(shù)量的存儲(chǔ)數(shù)據(jù)來(lái)做出這些決策。如果一個(gè)事件的發(fā)生僅限于其表面意義,那你就會(huì)錯(cuò)失事件發(fā)生的語(yǔ)境。要有能力來(lái)做出更好的決策,因?yàn)槟銓?duì)整個(gè)應(yīng)用程序可能了解的東西會(huì)是迷失的。

比如:當(dāng)我能夠?qū)⒁粋€(gè)儀表的讀數(shù)與其他十個(gè)連接相同變壓器的儀表讀數(shù)進(jìn)行對(duì)比來(lái)確定變壓器問(wèn)題,而不是僅僅是從一個(gè)位于家中的儀表進(jìn)行判斷的時(shí)候,我們的傳感器讀數(shù)會(huì)變得信息更加豐富且有價(jià)值。

這里有另外一個(gè)例子可能會(huì)更為貼切。一位女士在商店購(gòu)買香蕉。如果我們給出其他顧客在購(gòu)買了香蕉的同時(shí)還購(gòu)買了些什么的建議,這可能會(huì)是及時(shí)的建 議,但并不一定相關(guān);即,我們并不知道她購(gòu)買香蕉是否是用來(lái)制作香蕉面包,或僅僅是作為水果。因此,如果我們是基于購(gòu)買聚合數(shù)據(jù)給她提供的建議,那么這些 建議會(huì)是相關(guān)的,但是可能并不具備個(gè)性化。我們的建議需要語(yǔ)境才能具有相關(guān)性,他們需要及時(shí)且有用,并且還需要滿足顧客的個(gè)性需求。要滿足這三點(diǎn)——不加 權(quán)衡的做這些——我們需要在語(yǔ)境條件下在每個(gè)事件上加以行動(dòng),例如,存儲(chǔ)數(shù)據(jù)。獲取數(shù)據(jù)種子或是與其進(jìn)行交互的能力意味著我們能夠準(zhǔn)確知道顧客想要什么, 在確切的時(shí)刻了解他/她的需求。


用實(shí)時(shí)分析為高速數(shù)據(jù)提供可視性

        可以給大家講一個(gè)故事。記得在2011年首屆JasperWorld會(huì)議上。講述如何利用VoltDB來(lái)查看高速數(shù)據(jù)的集合和儀表盤(pán)。觀眾問(wèn):“當(dāng)然,你讓數(shù)據(jù)移動(dòng)的那么快,那么你打算怎樣做來(lái)搞清楚它呢?”

但是要能夠理解高速數(shù)據(jù)超出了一個(gè)人查看儀表盤(pán)的范圍。有一樣?xùn)|西讓高速數(shù)據(jù)應(yīng)用程序與老派的OLTP比起來(lái)顯得與眾不同,就是在決策流程中引入了 實(shí)時(shí)分析。通過(guò)在高速數(shù)據(jù)引擎內(nèi)運(yùn)行這些分析,會(huì)給操作決策提供信息。在進(jìn)行決策的時(shí)候,此功能不僅僅是將單一事件納入語(yǔ)境,它讓決策信息更加充分。在大 數(shù)據(jù)中,甚至在生活中,語(yǔ)境就是一切。

比如:繼續(xù)拿我們的智能儀表舉例,我聽(tīng)說(shuō)變壓器在故障前會(huì)顯示一個(gè)特定的趨勢(shì)。而且那種電子元器件類型的故障會(huì)非常明顯。因此,如果可能的話,我們 想在真的發(fā)生之前確認(rèn)這些即將到來(lái)的故障。這就是實(shí)時(shí)分析注入決策流程的經(jīng)典案例。如果一個(gè)變壓器30分鐘的歷史數(shù)據(jù)顯示了這樣的趨勢(shì),那么就關(guān)閉它并重 定電力。


將高速數(shù)據(jù)系統(tǒng)無(wú)縫集成到大數(shù)據(jù)存儲(chǔ)系統(tǒng)

        我們已經(jīng)明確地確信在涉及到21世紀(jì)的數(shù)據(jù)庫(kù)技術(shù)時(shí),某一種方法并非萬(wàn)靈丹。因此,當(dāng)某個(gè)快速操作數(shù)據(jù)庫(kù)正好適于用來(lái)勝任高速數(shù)據(jù)的工作,那么其他工具則最好是優(yōu)化用戶存儲(chǔ)和深入分析大數(shù)據(jù)處理。在這些系統(tǒng)間遷移數(shù)據(jù)是必要的需求。

       然而,這不僅僅是數(shù)據(jù)的遷移。除了純粹的數(shù)據(jù)遷移,還需要考慮大數(shù)據(jù)和高速數(shù)據(jù)的集成:

處理大系統(tǒng)導(dǎo)入能力和高速數(shù)據(jù)到達(dá)率之間的阻抗失配;

      系統(tǒng)間的可靠傳輸,包括持久性和緩沖,以及數(shù)據(jù)預(yù)處理,因此當(dāng)它到達(dá)數(shù)據(jù)湖就準(zhǔn)備好了被使用(集成,清洗,豐富)。

比如:來(lái)自于遍布整個(gè)國(guó)家的智能儀表的高速數(shù)據(jù)會(huì)迅速積累。這一歷史數(shù)據(jù)在展示季節(jié)性趨勢(shì),還有諸如同比電網(wǎng)效率上有著明顯的價(jià)值。將這些數(shù)據(jù)遷移 至數(shù)據(jù)湖是至關(guān)重要的。但是,在數(shù)據(jù)到達(dá)數(shù)據(jù)湖之前會(huì)做有效性和安全性檢查并對(duì)數(shù)據(jù)進(jìn)行清洗。越是將此更多的集成進(jìn)數(shù)據(jù)管理產(chǎn)品,應(yīng)用程序所需要解決的問(wèn) 題就會(huì)越少(“如果系統(tǒng)故障,我要如何保存數(shù)據(jù)?”“如果我的數(shù)據(jù)湖無(wú)法繼續(xù)獲取,我要從哪里溢出數(shù)據(jù)呢?”…)。


關(guān)閉數(shù)據(jù)循環(huán),從大數(shù)據(jù)系統(tǒng)為用戶和應(yīng)用程序快速提供分析結(jié)果和知識(shí)

       由BI報(bào)告生成并由數(shù)據(jù)專家分析的具有深刻洞察力的分析需要可操作化。這可以通過(guò)兩種方式來(lái)實(shí)現(xiàn):

       通過(guò)分析系統(tǒng)所能支持的更多的人或設(shè)備來(lái)讓BI報(bào)告更具消費(fèi)性,采用從分析中獲得的情報(bào)并將其遷移進(jìn)操作系統(tǒng)。


第一條很容易描述。報(bào)告系統(tǒng)(如數(shù)據(jù)倉(cāng)庫(kù)Hadoop)在生成和計(jì)算報(bào)告方面做了不錯(cuò)的工作。它們并不是設(shè)計(jì)用來(lái)在毫秒級(jí)延遲下提供這些報(bào)告給數(shù) 以千計(jì)的并發(fā)用戶的。要滿足此需求,很多客戶正在將這些分析結(jié)果遷移存儲(chǔ)至一個(gè)內(nèi)存操作組件,這樣就可以以高速數(shù)據(jù)的頻率和速度提供結(jié)果了。坦率的講,我 認(rèn)為我們會(huì)在將來(lái)看到僅以此為目的的將這些分析存儲(chǔ)的內(nèi)存加速。


第二條則更為強(qiáng)大。我們從所有大數(shù)據(jù)處理中所獲得的知識(shí)應(yīng)該用于為決策提供信息。將這些知識(shí)遷移至可操作存儲(chǔ)便會(huì)有助于這些決策,由深入分析理解加以驅(qū)動(dòng),并為每個(gè)進(jìn)入系統(tǒng)的事件可操作化。

比如:如果我們的系統(tǒng)到目前為止如所描述的工作,我們正在基于智能儀表和基于電網(wǎng)的讀數(shù)來(lái)進(jìn)行可操作決策。我們正在使用來(lái)自當(dāng)前月的數(shù)據(jù)以訪問(wèn)組件 趨勢(shì),確定計(jì)費(fèi)并提供電網(wǎng)管理。我們將數(shù)據(jù)導(dǎo)出至大數(shù)據(jù)系統(tǒng),在那里專家會(huì)探究季節(jié)性趨勢(shì),并通過(guò)所收集的某些事件的數(shù)據(jù)來(lái)獲取信息。

我們說(shuō)這些探索性分析已經(jīng)有所發(fā)現(xiàn),鑒于目前的電網(wǎng)規(guī)模,如果在夏末出現(xiàn)一個(gè)+10度的熱浪,電力就需要轉(zhuǎn)換或是從其他供應(yīng)商那里進(jìn)行補(bǔ)充。這些知 識(shí)如今也可以用于我們的操作系統(tǒng),即如果我們遇到了+10度的熱浪,電網(wǎng)會(huì)根據(jù)當(dāng)前數(shù)據(jù)及歷史信息進(jìn)行動(dòng)態(tài)調(diào)整。我們已經(jīng)在電網(wǎng)內(nèi)部關(guān)閉了數(shù)據(jù)情報(bào)循環(huán)。


       最后,我已經(jīng)在實(shí)際部署中見(jiàn)到了這些需求。不,并不是每個(gè)客戶都希望馬上解決所有五個(gè)方面。但是通過(guò)我經(jīng)歷的幾乎每個(gè)談話過(guò)程,大多數(shù)觀點(diǎn)都包括在 最終需求文檔中。掩蓋這些需求是有風(fēng)險(xiǎn)的;我要警告人們不要因?yàn)橄氘?dāng)然的認(rèn)為“我只是現(xiàn)在必須擔(dān)心獲取”而在高速數(shù)據(jù)組件上做出戰(zhàn)術(shù)性的決策。這是一個(gè)確 定的五步路徑來(lái)反應(yīng)這一架構(gòu),并且可能要比實(shí)際情況要快得多。

數(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ù)說(shuō)明請(qǐng)參見(jiàn):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); }