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

熱線(xiàn)電話(huà):13121318867

登錄
首頁(yè)精彩閱讀讓你的大數(shù)據(jù)應(yīng)用具備更高性能
讓你的大數(shù)據(jù)應(yīng)用具備更高性能
2015-09-04
收藏

讓你的大數(shù)據(jù)應(yīng)用具備更高性能


大數(shù)據(jù)應(yīng)用在大型企業(yè)中變得越來(lái)越常見(jiàn)。企業(yè)具備歷史數(shù)據(jù)分析和趨勢(shì)預(yù)測(cè)的能力,能夠?yàn)樽陨韯?chuàng)造可觀(guān)價(jià)值;此外,商業(yè)智能分析不僅可以避免出現(xiàn)運(yùn)輸中斷、資源短缺,還能減少服務(wù)水平協(xié)議SLA和預(yù)測(cè)客戶(hù)所需的產(chǎn)品和服務(wù)。BI能夠給企業(yè)帶來(lái)巨額紅利。

隨著購(gòu)物節(jié)的臨近,利用客戶(hù)交互的明顯增加,可以預(yù)期到你的企業(yè)將會(huì)開(kāi)展更多的BI活動(dòng)。通過(guò)優(yōu)化大數(shù)據(jù)應(yīng)用,提高性能,IT企業(yè)應(yīng)該積極為更大數(shù)據(jù)量和更多的分析活動(dòng)做好準(zhǔn)備

從哪里開(kāi)始

DBA、支持人員應(yīng)將他們的努力集中在以下幾個(gè)領(lǐng)域:災(zāi)難恢復(fù),數(shù)據(jù)倉(cāng)庫(kù)性能和數(shù)據(jù)組織以及大數(shù)據(jù)的應(yīng)用中的數(shù)據(jù)存儲(chǔ)。

災(zāi)難恢復(fù)

大多數(shù)IT人員認(rèn)為災(zāi)難恢復(fù)并不屬于性能調(diào)優(yōu)的范疇。在大數(shù)據(jù)環(huán)境下,這一誤解又有所加深,因?yàn)槿藗兤毡檎J(rèn)為建立在大數(shù)據(jù)應(yīng)用上的數(shù)據(jù)分析,相對(duì)于計(jì)算工資,總帳,訂單輸入,運(yùn)輸和客戶(hù)服務(wù)之類(lèi)的應(yīng)用來(lái)說(shuō),并不十分重要。

但是,大數(shù)據(jù)應(yīng)用在過(guò)去的幾年里已經(jīng)日趨成熟,企業(yè)所使用的業(yè)務(wù)分析功能也隨之日臻完善。曾經(jīng)的臨時(shí)查詢(xún)現(xiàn)在被作為常規(guī)報(bào)表來(lái)執(zhí)行;額外的歷史數(shù)據(jù)允許查詢(xún)對(duì)大量數(shù)據(jù)進(jìn)行比較和分析,通過(guò)進(jìn)行負(fù)載均衡,商業(yè)分析軟件可以讓你的大數(shù)據(jù)應(yīng)用得以更加方便快捷的執(zhí)行查詢(xún)。這使得今天的大數(shù)據(jù)應(yīng)用提供了大量的可操作數(shù)據(jù),可以提供更好的客戶(hù)服務(wù),消耗更低的成本并獲得更高的利潤(rùn)。

這意味著,即使大數(shù)據(jù)應(yīng)用遭遇一次很小的中斷,都可能在你的用戶(hù)群中產(chǎn)生連鎖反應(yīng),報(bào)表無(wú)法按時(shí)交付、查詢(xún)無(wú)法正常運(yùn)行、以及那些基于商業(yè)分析結(jié)果的決策被延遲等。

DBA應(yīng)該經(jīng)常審核DR計(jì)劃,以保證大數(shù)據(jù)應(yīng)用在其控制之下。他們需要關(guān)注下列幾種情況。

審核恢復(fù)過(guò)程。一年中最忙的時(shí)候就是遭到災(zāi)難性故障的時(shí)候。中斷將會(huì)顯著的影響企業(yè)的營(yíng)利,特別是在事務(wù)頻繁的時(shí)期。DBA應(yīng)該協(xié)助恢復(fù)過(guò)程,避免浪費(fèi)時(shí)間和精力。

驗(yàn)證恢復(fù)時(shí)間。很多DR計(jì)劃包括一個(gè)目標(biāo)恢復(fù)時(shí)間,表示可以完全恢復(fù)的最晚時(shí)間點(diǎn)。對(duì)于數(shù)據(jù)庫(kù)來(lái)說(shuō),這可能意味著從備份文件恢復(fù)數(shù)據(jù),并將日志從備份時(shí)間調(diào)整到恢復(fù)時(shí)間點(diǎn)。在高峰時(shí)期,數(shù)據(jù)和事務(wù)量較大;因此,恢復(fù)時(shí)間可能延長(zhǎng)。為了降低這種風(fēng)險(xiǎn),DBA應(yīng)該考慮實(shí)施更頻繁的關(guān)鍵數(shù)據(jù)庫(kù)備份。由于在數(shù)據(jù)表恢復(fù)過(guò)程中,通常需要花時(shí)間來(lái)重建索引,DBA應(yīng)該將DB2的備份和恢復(fù)能力考慮在內(nèi)。

數(shù)據(jù)倉(cāng)庫(kù)性能

一般來(lái)說(shuō),大數(shù)據(jù)的存儲(chǔ)和分析或存在于企業(yè)數(shù)據(jù)倉(cāng)庫(kù)(EDW)內(nèi)部,或者與其相關(guān)。要整合各地的大數(shù)據(jù)解決方案,你需要為每一部分的EDW過(guò)程設(shè)置接口。下面是一個(gè)關(guān)于EDW子系統(tǒng)的總結(jié),涉及大數(shù)據(jù)對(duì)它們的影響,以及如何提前制定性能計(jì)劃。

數(shù)據(jù)獲取和采集。包括一個(gè)在數(shù)據(jù)轉(zhuǎn)移到EDW之前,用于暫存數(shù)據(jù)的方案,以避免硬件故障造成的延誤。還應(yīng)確定這些新資產(chǎn)和流程將如何影響你的災(zāi)難恢復(fù)計(jì)劃。開(kāi)發(fā)人員喜歡在旺季開(kāi)始之前實(shí)現(xiàn)新功能或加固操作系統(tǒng)。其中一些增強(qiáng)數(shù)據(jù)可能需要傳遞到你的數(shù)據(jù)倉(cāng)庫(kù),隨后為大數(shù)據(jù)應(yīng)用可能執(zhí)行的查詢(xún)提供服務(wù)。在此之前你要確定,這些新應(yīng)用或者改動(dòng)后的應(yīng)用可能需要一個(gè)業(yè)務(wù)分析組件,

數(shù)據(jù)轉(zhuǎn)換和遷移。快速遷移大量數(shù)據(jù)可能需要額外的資源,甚至特殊的軟件或硬件。你的網(wǎng)絡(luò)有能力將日益增長(zhǎng)的數(shù)據(jù)從操作系統(tǒng)遷移到數(shù)據(jù)倉(cāng)庫(kù),并最終部署到大數(shù)據(jù)應(yīng)用中么?

數(shù)據(jù)訪(fǎng)問(wèn)和分析。隨著數(shù)據(jù)持續(xù)填滿(mǎn)倉(cāng)庫(kù),在倉(cāng)庫(kù)和大數(shù)據(jù)的應(yīng)用合并后,用戶(hù)可以運(yùn)行分析軟件。捕獲數(shù)據(jù)訪(fǎng)問(wèn)路徑和數(shù)據(jù)分布統(tǒng)計(jì)信息并留作分析。你需要確定是否有足夠的系統(tǒng)資源(CPU、磁盤(pán)存儲(chǔ)、網(wǎng)絡(luò)容量等)來(lái)支持預(yù)期的查詢(xún)工作負(fù)載。

數(shù)據(jù)歸檔。大量的數(shù)據(jù)分析,龐大的數(shù)據(jù)量可能會(huì)占用寶貴的存儲(chǔ)介質(zhì),使一些進(jìn)程運(yùn)行緩慢。IT和業(yè)務(wù)合作伙伴必須決定如何以及何時(shí)將舊的大數(shù)據(jù)存檔清除,以及它是否必須保留以供日后使用。

大數(shù)據(jù)的組織和存儲(chǔ)

供應(yīng)商銷(xiāo)售的第一大數(shù)據(jù)應(yīng)用通常是即插即用型的。幾乎沒(méi)有調(diào)優(yōu)選項(xiàng)。主要的原因是,應(yīng)用依賴(lài)一個(gè)專(zhuān)有的,混合的硬件和軟件解決方案,該解決方案使用大規(guī)模并行存儲(chǔ)和I / O,以實(shí)現(xiàn)對(duì)分析查詢(xún)的快速應(yīng)答。

客戶(hù)對(duì)于大數(shù)據(jù)分析的需求日益成熟,供應(yīng)商解決方案需要提供多個(gè)同步存儲(chǔ)和檢索數(shù)據(jù)的方法。其結(jié)果是供應(yīng)商設(shè)計(jì)并實(shí)現(xiàn)了可選數(shù)據(jù)存儲(chǔ)和檢索選項(xiàng)。一個(gè)例子是指定關(guān)鍵記錄如何存儲(chǔ)的能力。設(shè)想一個(gè)大數(shù)據(jù)應(yīng)用,實(shí)現(xiàn)了一百個(gè)獨(dú)立的磁盤(pán)驅(qū)動(dòng)器。原始的應(yīng)用通常將記錄隨機(jī)分散到這些驅(qū)動(dòng)器。一些分析查詢(xún)可以在邏輯上分成一百個(gè)獨(dú)立的查詢(xún),每個(gè)查詢(xún)?cè)L問(wèn)一個(gè)驅(qū)動(dòng)器,所有查詢(xún)的結(jié)果合并成最終的答案,比相同的序列數(shù)據(jù)庫(kù)查詢(xún)快上一百倍。

然而,考慮一個(gè)基于鍵的,需要連接兩個(gè)表的查詢(xún)。隨機(jī)分布在一百個(gè)磁盤(pán)驅(qū)動(dòng)器的兩個(gè)表將不再具備性能優(yōu)勢(shì),因?yàn)樾羞B接操作與兩個(gè)表存儲(chǔ)在同一個(gè)磁盤(pán)驅(qū)動(dòng)器上時(shí)已經(jīng)完全不同了。

目前很多大數(shù)據(jù)應(yīng)用解決方案包含選項(xiàng)和算法以支持跨驅(qū)動(dòng)器的表查詢(xún),存儲(chǔ)是按鍵值排序的,并不是隨機(jī)分布。通過(guò)在每一個(gè)磁盤(pán)驅(qū)動(dòng)器存儲(chǔ)相同范圍的鍵值行,行連接操作將在同一個(gè)驅(qū)動(dòng)器上執(zhí)行。因此按鍵值指定數(shù)據(jù)分布的能力提供了巨大性能提升。

考慮到這一點(diǎn),以下是一些建議,可用于大數(shù)據(jù)應(yīng)用的性能調(diào)優(yōu)。

檢查數(shù)據(jù)分布統(tǒng)計(jì)信息。使用RunStats程序來(lái)收集表鍵和數(shù)據(jù)分布信息。特別是主鍵和外鍵索引,因?yàn)楸磉B接通常會(huì)基于這些列。

審查數(shù)據(jù)訪(fǎng)問(wèn)路徑。在本質(zhì)上分析查詢(xún)是臨時(shí)的,數(shù)據(jù)表最有可能使用相同或相似的訪(fǎng)問(wèn)路徑加被訪(fǎng)問(wèn)。捕獲和分析這些訪(fǎng)問(wèn)路徑尋找常見(jiàn)的連接方法。這一信息,加上數(shù)據(jù)分布統(tǒng)計(jì)信息,將幫助您確定數(shù)據(jù)表應(yīng)如何按鍵值分布在大數(shù)據(jù)應(yīng)用中。

存儲(chǔ)數(shù)據(jù)訪(fǎng)問(wèn)路徑以進(jìn)行分析。作為上面的建議的延伸,你應(yīng)該有一個(gè)方法用于捕獲和儲(chǔ)存分析查詢(xún)的訪(fǎng)問(wèn)路徑。方法返回結(jié)果應(yīng)展示出表和索引是如何被訪(fǎng)問(wèn),以及使用了哪些索引,執(zhí)行了哪些排序等等。查詢(xún)獲取更多的數(shù)據(jù),數(shù)據(jù)量增加返過(guò)來(lái)審查你的歷史訪(fǎng)問(wèn)路徑并比較。數(shù)據(jù)量增加引起的變化,觀(guān)察訪(fǎng)問(wèn)路徑的變化都可能表明性能出了問(wèn)題。

總結(jié)

通過(guò)審核數(shù)據(jù)恢復(fù)流程,提高數(shù)據(jù)倉(cāng)庫(kù)的性能,評(píng)估當(dāng)前大數(shù)據(jù)應(yīng)用性能的優(yōu)化選項(xiàng),可以讓你的大數(shù)據(jù)應(yīng)用為即將到來(lái)高峰做好準(zhǔn)備。大數(shù)據(jù)應(yīng)用的數(shù)據(jù)組織方式對(duì)性能有這十分顯著的影響;此外,你還應(yīng)該仔細(xì)考慮可能發(fā)生的故障,為災(zāi)難做好準(zhǔn)備,即使大數(shù)據(jù)應(yīng)用上一個(gè)小的中斷都可能對(duì)企業(yè)利益造成重大影響。

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

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

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

OK
客服在線(xiàn)
立即咨詢(xún)
客服在線(xiàn)
立即咨詢(xún)
') } 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, // 表示用戶(hù)后臺(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); }