如何打造高性能大數(shù)據(jù)分析平臺

? ? ? ? 大數(shù)據(jù)分析系統(tǒng)作為一個關(guān)鍵性的系統(tǒng)在各個公司迅速崛起袍榆,但是這種海量規(guī)模的數(shù)據(jù)帶來了前所未有的性能挑戰(zhàn)葡兑。同時洲守,如果大數(shù)據(jù)分析系統(tǒng)無法在第一時間為運(yùn)營決策提供關(guān)鍵數(shù)據(jù)叙谨,那么這樣的大數(shù)據(jù)分析系統(tǒng)一文不值竟终。本文將從技術(shù)無關(guān)的角度討論一些提高性能的方法瘾境。下面我們將討論一些能夠應(yīng)用在大數(shù)據(jù)分析系統(tǒng)不同階段的技巧和準(zhǔn)則(例如數(shù)據(jù)提取兑凿,數(shù)據(jù)清洗,處理,存儲,以及介紹)力麸。本文應(yīng)作為一個通用準(zhǔn)則翠拣,以確保最終的大數(shù)據(jù)分析平臺能滿足性能要求益缎。


1. 大數(shù)據(jù)是什么令哟?

大數(shù)據(jù)是最近IT界最常用的術(shù)語之一已维。然而對大數(shù)據(jù)的定義也不盡相同垛耳,所有已知的論點(diǎn)例如結(jié)構(gòu)化的和非結(jié)構(gòu)化飘千、大規(guī)模的數(shù)據(jù)等等都不夠完整。大數(shù)據(jù)系統(tǒng)通常被認(rèn)為具有數(shù)據(jù)的五個主要特征占婉,通常稱為數(shù)據(jù)的5 Vs。分別是大規(guī)模酌予,多樣性,高效性抛虫、準(zhǔn)確性和價值性简僧。

據(jù)Gartner稱,大規(guī)牡郝恚可以被定義為“在本(地)機(jī)數(shù)據(jù)采集和處理技術(shù)能力不足以為用戶帶來商業(yè)價值。當(dāng)現(xiàn)有的技術(shù)能夠針對性的進(jìn)行改造后來處理這種規(guī)模的數(shù)據(jù)就可以說是一個成功的大數(shù)據(jù)解決方案伞矩。

這種大規(guī)模的數(shù)據(jù)沒將不僅僅是來自于現(xiàn)有的數(shù)據(jù)源夏志,同時也會來自于一些新興的數(shù)據(jù)源,例如常規(guī)(手持、工業(yè))設(shè)備狱杰,日志厅须,汽車等,當(dāng)然包括結(jié)構(gòu)化的和非結(jié)構(gòu)化的數(shù)據(jù)九杂。

據(jù)Gartner稱,多樣性可以定義如下:“高度變異的信息資產(chǎn)甥捺,在生產(chǎn)和消費(fèi)時不進(jìn)行嚴(yán)格定義的包括多種形式镀层、類型和結(jié)構(gòu)的組合。同時還包括以前的歷史數(shù)據(jù)唱逢,由于技術(shù)的變革歷史數(shù)據(jù)同樣也成為多樣性數(shù)據(jù)之一 “。

高效性可以被定義為來自不同源的數(shù)據(jù)到達(dá)的速度备韧。從各種設(shè)備痪枫,傳感器和其他有組織和無組織的數(shù)據(jù)流都在不斷進(jìn)入IT系統(tǒng)。由此奶陈,實(shí)時分析和對于該數(shù)據(jù)的解釋(展示)的能力也應(yīng)該隨之增加。

根據(jù)Gartner潦俺,高效性可以被定義如下:“高速的數(shù)據(jù)流I/O(生產(chǎn)和消費(fèi))徐勃,但主要聚焦在一個數(shù)據(jù)集內(nèi)或多個數(shù)據(jù)集之間的數(shù)據(jù)生產(chǎn)的速率可變上”。

準(zhǔn)確性疏旨,或真實(shí)性或叫做精度是數(shù)據(jù)的另一個重要組成方面扎酷。要做出正確的商業(yè)決策,當(dāng)務(wù)之急是在數(shù)據(jù)上進(jìn)行的所有分析必須是正確和準(zhǔn)確(精確)的谁榜。

大數(shù)據(jù)系統(tǒng)可以提供巨大的商業(yè)價值。像電信窃植,金融,電子商務(wù)葛超,社交媒體等,已經(jīng)認(rèn)識到他們的數(shù)據(jù)是一個潛在的巨大的商機(jī)绣张。他們可以預(yù)測用戶行為关带,并推薦相關(guān)產(chǎn)品,提供危險交易預(yù)警服務(wù)芜飘,等等。

與其他IT系統(tǒng)一樣嗦明,性能是大數(shù)據(jù)系統(tǒng)獲得成功的關(guān)鍵蚪燕。本文的中心主旨是要說明如何讓大數(shù)據(jù)系統(tǒng)保證其性能。

2. 大數(shù)據(jù)系統(tǒng)應(yīng)包含的功能模塊

大數(shù)據(jù)系統(tǒng)應(yīng)該包含的功能模塊邻薯,首先是能夠從多種數(shù)據(jù)源獲取數(shù)據(jù)的功能,數(shù)據(jù)的預(yù)處理(例如累榜,清洗灵嫌,驗(yàn)證等),存儲數(shù)據(jù)寿羞,數(shù)據(jù)處理、數(shù)據(jù)分析等(例如做預(yù)測分析辨泳,生成在線使用建議等等)虱岂,最后呈現(xiàn)和可視化的總結(jié)第岖、匯總結(jié)果试溯。

下圖描述了大數(shù)據(jù)系統(tǒng)的這些高層次的組件:

本節(jié)的其余部分簡要說明了每個組分,如圖1键袱。

2.1 各種各樣的數(shù)據(jù)源

當(dāng)今的IT生態(tài)系統(tǒng),需要對各種不同種類來源的數(shù)據(jù)進(jìn)行分析杠纵。這些來源可能是從在線Web應(yīng)用程序钩骇,批量上傳或feed,流媒體直播數(shù)據(jù)倘屹,來自工業(yè)、手持务蝠、家居傳感的任何東西等等烛缔。

顯然從不同數(shù)據(jù)源獲取的數(shù)據(jù)具有不同的格式、使用不同的協(xié)議践瓷。例如,在線的Web應(yīng)用程序可能會使用SOAP / XML格式通過HTTP發(fā)送數(shù)據(jù)喷舀,feed可能會來自于CSV文件,其他設(shè)備則可能使用MQTT通信協(xié)議硫麻。

由于這些單獨(dú)的系統(tǒng)的性能是不在大數(shù)據(jù)系統(tǒng)的控制范圍之內(nèi)樊卓,并且通常這些系統(tǒng)都是外部應(yīng)用程序,由第三方供應(yīng)商或團(tuán)隊(duì)提供并維護(hù)碌尔,所以本文將不會在深入到這些系統(tǒng)的性能分析中去券敌。

2.2 數(shù)據(jù)采集

第一步陪白,獲取數(shù)據(jù)颈走。這個過程包括分析,驗(yàn)證轧钓,清洗锐膜,轉(zhuǎn)換,去重道盏,然后存到適合你們公司的一個持久化設(shè)備中(硬盤、存儲媒咳、云等)。

在下面的章節(jié)中涩澡,本文將重點(diǎn)介紹一些關(guān)于如何獲取數(shù)據(jù)方面的非常重要的技巧坠敷。請注意,本文將不討論各種數(shù)據(jù)采集技術(shù)的優(yōu)缺點(diǎn)膝迎。

2.3 存儲數(shù)據(jù)

第二步,一旦數(shù)據(jù)進(jìn)入大數(shù)據(jù)系統(tǒng)茎辐,清洗掂恕,并轉(zhuǎn)化為所需格式時,這些過程都將在數(shù)據(jù)存儲到一個合適的持久化層中進(jìn)行懊亡。

在下面的章節(jié)中,本文將介紹一些存儲方面的最佳實(shí)踐(包括邏輯上和物理上)速警。在本文結(jié)尾也會討論一部分涉及數(shù)據(jù)安全方面的問題叹誉。

2.4 數(shù)據(jù)處理和分析

第三步长豁,在這一階段中的一部分干凈數(shù)據(jù)是去規(guī)范化的忙灼,包括對一些相關(guān)的數(shù)據(jù)集的數(shù)據(jù)進(jìn)行一些排序,在規(guī)定的時間間隔內(nèi)進(jìn)行數(shù)據(jù)結(jié)果歸集该园,執(zhí)行機(jī)器學(xué)習(xí)算法,預(yù)測分析等啃勉。

在下面的章節(jié)中,本文將針對大數(shù)據(jù)系統(tǒng)性能優(yōu)化介紹一些進(jìn)行數(shù)據(jù)處理和分析的最佳實(shí)踐淮阐。

2.5 數(shù)據(jù)的可視化和數(shù)據(jù)展示

最后一個步驟刁品,展示經(jīng)過各個不同分析算法處理過的數(shù)據(jù)結(jié)果。該步驟包括從預(yù)先計(jì)算匯總的結(jié)果(或其他類似數(shù)據(jù)集)中的讀取和用一種友好界面或者表格(圖表等等)的形式展示出來哑诊。這樣便于對于數(shù)據(jù)分析結(jié)果的理解。

3. 數(shù)據(jù)采集中的性能技巧

數(shù)據(jù)采集是各種來自不同數(shù)據(jù)源的數(shù)據(jù)進(jìn)入大數(shù)據(jù)系統(tǒng)的第一步竞阐。這個步驟的性能將會直接決定在一個給定的時間段內(nèi)大數(shù)據(jù)系統(tǒng)能夠處理的數(shù)據(jù)量的能力暑劝。

數(shù)據(jù)采集過程基于對該系統(tǒng)的個性化需求,但一些常用執(zhí)行的步驟是 - 解析傳入數(shù)據(jù)担猛,做必要的驗(yàn)證,數(shù)據(jù)清晰先改,例如數(shù)據(jù)去重蒸走,轉(zhuǎn)換格式,并將其存儲到某種持久層比驻。

涉及數(shù)據(jù)采集過程的邏輯步驟示如下圖所示:

下面是一些性能方面的技巧:

●來自不同數(shù)據(jù)源的傳輸應(yīng)該是異步的岛抄》蛲郑可以使用文件來傳輸氯庆、或者使用面向消息的(MoM)中間件來實(shí)現(xiàn)。由于數(shù)據(jù)異步傳輸点晴,所以數(shù)據(jù)采集過程的吞吐量可以大大高于大數(shù)據(jù)系統(tǒng)的處理能力悯周。 異步數(shù)據(jù)傳輸同樣可以在大數(shù)據(jù)系統(tǒng)和不同的數(shù)據(jù)源之間進(jìn)行解耦。大數(shù)據(jù)基礎(chǔ)架構(gòu)設(shè)計(jì)使得其很容易進(jìn)行動態(tài)伸縮禽翼,數(shù)據(jù)采集的峰值流量對于大數(shù)據(jù)系統(tǒng)來說算是安全的。

●如果數(shù)據(jù)是直接從一些外部數(shù)據(jù)庫中抽取的锐墙,確保拉取數(shù)據(jù)是使用批量的方式长酗。

●如果數(shù)據(jù)是從feed file解析,請務(wù)必使用合適的解析器夺脾。例如,如果從一個XML文件中讀取也有不同的解析器像JDOM蚀乔,SAX,DOM等吉挣。類似地婉弹,對于CSV,JSON和其它這樣的格式镀赌,多個解析器和API是可供選擇。選擇能夠符合需求的性能最好的蛙粘。

●優(yōu)先使用內(nèi)置的驗(yàn)證解決方案垫卤。大多數(shù)解析/驗(yàn)證工作流程的通常運(yùn)行在服務(wù)器環(huán)境(ESB /應(yīng)用服務(wù)器)中穴肘。大部分的場景基本上都有現(xiàn)成的標(biāo)準(zhǔn)校驗(yàn)工具舔痕。在大多數(shù)的情況下,這些標(biāo)準(zhǔn)的現(xiàn)成的工具一般來說要比你自己開發(fā)的工具性能要好很多伯复。

●類似地,如果數(shù)據(jù)XML格式的啸如,優(yōu)先使用XML(XSD)用于驗(yàn)證。

●即使解析器或者校等流程使用自定義的腳本來完成想暗,例如使用java優(yōu)先還是應(yīng)該使用內(nèi)置的函數(shù)庫或者開發(fā)框架帘不。在大多數(shù)的情況下通常會比你開發(fā)任何自定義代碼快得多。

●盡量提前濾掉無效數(shù)據(jù)寞焙,以便后續(xù)的處理流程都不用在無效數(shù)據(jù)上浪費(fèi)過多的計(jì)算能力。

●大多數(shù)系統(tǒng)處理無效數(shù)據(jù)的做法通常是存放在一個專門的表中辽狈,請?jiān)谙到y(tǒng)建設(shè)之初考慮這部分的數(shù)據(jù)庫存儲和其他額外的存儲開銷。

●如果來自數(shù)據(jù)源的數(shù)據(jù)需要清洗稻艰,例如去掉一些不需要的信息侈净,盡量保持所有數(shù)據(jù)源的抽取程序版本一致,確保一次處理的是一個大批量的數(shù)據(jù)畜侦,而不是一條記錄一條記錄的來處理。一般來說數(shù)據(jù)清洗需要進(jìn)行表關(guān)聯(lián)澎语。數(shù)據(jù)清洗中需要用到的靜態(tài)數(shù)據(jù)關(guān)聯(lián)一次,并且一次處理一個很大的批量就能夠大幅提高數(shù)據(jù)處理效率擅羞。

●數(shù)據(jù)去重非常重要這個過程決定了主鍵的是由哪些字段構(gòu)成。通常主鍵都是時間戳或者id等可以追加的類型召烂。一般情況下,每條記錄都可能根據(jù)主鍵進(jìn)行索引來更新奏夫,所以最好能夠讓主鍵簡單一些历筝,以保證在更新的時候檢索的性能。

●來自多個源接收的數(shù)據(jù)可以是不同的格式梳猪。有時,需要進(jìn)行數(shù)據(jù)移植碟婆,使接收到的數(shù)據(jù)從多種格式轉(zhuǎn)化成一種或一組標(biāo)準(zhǔn)格式电抚。

●和解析過程一樣,我們建議使用內(nèi)置的工具俺祠,相比于你自己從零開發(fā)的工具性能會提高很多借帘。

●數(shù)據(jù)移植的過程一般是數(shù)據(jù)處理過程中最復(fù)雜、最緊急肺然、消耗資源最多的一步。因此际起,確保在這一過程中盡可能多的使用并行計(jì)算拾碌。

●一旦所有的數(shù)據(jù)采集的上述活動完成后校翔,轉(zhuǎn)換后的數(shù)據(jù)通常存儲在某些持久層,以便以后分析處理防症,綜述,聚合等使用饲嗽。

●多種技術(shù)解決方案的存在是為了處理這種持久(RDBMS,NoSQL的分布式文件系統(tǒng)喝噪,如Hadoop和等)指么。

●謹(jǐn)慎選擇一個能夠最大限度的滿足需求的解決方案。

4. 數(shù)據(jù)存儲中的性能技巧

一旦所有的數(shù)據(jù)采集步驟完成后伯诬,數(shù)據(jù)將進(jìn)入持久層。

在本節(jié)中將討論一些與數(shù)據(jù)數(shù)據(jù)存儲性能相關(guān)的技巧包括物理存儲優(yōu)化和邏輯存儲結(jié)構(gòu)(數(shù)據(jù)模型)哩陕。這些技巧適用于所有的數(shù)據(jù)處理過程,無論是一些解析函數(shù)生的或最終輸出的數(shù)據(jù)還是預(yù)計(jì)算的匯總數(shù)據(jù)等悍及。

●首先選擇數(shù)據(jù)范式接癌。您對數(shù)據(jù)的建模方式對性能有直接的影響,例如像數(shù)據(jù)冗余缺猛,磁盤存儲容量等方面。對于一些簡單的文件導(dǎo)入數(shù)據(jù)庫中的場景耻姥,你也許需要保持?jǐn)?shù)據(jù)原始的格式,對于另外一些場景琐簇,如執(zhí)行一些分析計(jì)算聚集等座享,你可能不需要將數(shù)據(jù)范式化。

●大多數(shù)的大數(shù)據(jù)系統(tǒng)使用NoSQL數(shù)據(jù)庫替代RDBMS處理數(shù)據(jù)征讲。

●不同的NoSQL數(shù)據(jù)庫適用不同的場景,一部分在select時性能更好癣籽,有些是在插入或者更新性能更好挽唉。

●數(shù)據(jù)庫分為行存儲和列存儲瓶籽。

●具體的數(shù)據(jù)庫選型依賴于你的具體需求(例如埂材,你的應(yīng)用程序的數(shù)據(jù)庫讀寫比)。

●同樣每個數(shù)據(jù)庫都會根據(jù)不同的配置從而控制這些數(shù)據(jù)庫用于數(shù)據(jù)庫復(fù)制備份或者嚴(yán)格保持?jǐn)?shù)據(jù)一致性

●這些設(shè)置會直接影響數(shù)據(jù)庫性能俏险。在數(shù)據(jù)庫技術(shù)選型前一定要注意。

●壓縮率裤唠、緩沖池、超時的大小种蘸,和緩存的對于不同的NoSQL數(shù)據(jù)庫來說配置都是不同的竞膳,同時對數(shù)據(jù)庫性能的影響也是不一樣的。

●數(shù)據(jù)Sharding和分區(qū)是這些數(shù)據(jù)庫的另一個非常重要的功能坦辟。數(shù)據(jù)Sharding的方式能夠?qū)ο到y(tǒng)的性能產(chǎn)生巨大的影響,所以在數(shù)據(jù)Sharding和分區(qū)時請謹(jǐn)慎選擇滔吠。

●并非所有的NoSQL數(shù)據(jù)庫都內(nèi)置了支持連接挠日,排序翰舌,匯總,過濾器懂算,索引等。

●如果有需要還是建議使用內(nèi)置的類似功能计技,因?yàn)樽约洪_發(fā)的還是不靈山橄。

●NoSQLs內(nèi)置了壓縮、編解碼器和數(shù)據(jù)移植工具。如果這些可以滿足您的部分需求萌衬,那么優(yōu)先選擇使用這些內(nèi)置的功能它抱。這些工具可以執(zhí)行各種各樣的任務(wù),如格式轉(zhuǎn)換观蓄、壓縮數(shù)據(jù)等,使用內(nèi)置的工具不僅能夠帶來更好的性能還可以降低網(wǎng)絡(luò)的使用率侮穿。

●許多NoSQL數(shù)據(jù)庫支持多種類型的文件系統(tǒng)。其中包括本地文件系統(tǒng)沮脖,分布式文件系統(tǒng)芯急,甚至基于云的存儲解決方案。

●如果在交互式需求上有嚴(yán)格的要求娶耍,否則還是盡量嘗試使用NoSQL本地(內(nèi)置)文件系統(tǒng)(例如HBase 使用HDFS)。

●這是因?yàn)榕卟玻绻褂靡恍┩獠课募到y(tǒng)/格式,則需要對數(shù)據(jù)進(jìn)行相應(yīng)的編解碼/數(shù)據(jù)移植紊婉。它將在整個讀/寫過程中增加原本不必要的冗余處理辑舷。

●大數(shù)據(jù)系統(tǒng)的數(shù)據(jù)模型一般來說需要根據(jù)需求用例來綜合設(shè)計(jì)。與此形成鮮明對比的是RDMBS數(shù)據(jù)建模技術(shù)基本都是設(shè)計(jì)成為一個通用的模型何缓,用外鍵和表之間的關(guān)系用來描述數(shù)據(jù)實(shí)體與現(xiàn)實(shí)世界之間的交互。

●在硬件一級传轰,本地RAID模式也許不太適用。請考慮使用SAN存儲慨蛙。

5. 數(shù)據(jù)處理分析中的性能技巧

數(shù)據(jù)處理和分析是一個大數(shù)據(jù)系統(tǒng)的核心。像聚合股淡,預(yù)測,聚集唯灵,和其它這樣的邏輯操作都需要在這一步完成。

本節(jié)討論一些數(shù)據(jù)處理性能方面的技巧垢揩。需要注意的是大數(shù)據(jù)系統(tǒng)架構(gòu)有兩個組成部分,實(shí)時數(shù)據(jù)流處理和批量數(shù)據(jù)處理叁巨。本節(jié)涵蓋數(shù)據(jù)處理的各個方面呐籽。

●在細(xì)節(jié)評估和數(shù)據(jù)格式和模型后選擇適當(dāng)?shù)臄?shù)據(jù)處理框架。

●其中一些框架適用于批量數(shù)據(jù)處理狡蝶,而另外一些適用于實(shí)時數(shù)據(jù)處理。

●同樣一些框架使用內(nèi)存模式苏章,另外一些是基于磁盤io處理模式。

●有些框架擅長高度并行計(jì)算枫绅,這樣能夠大大提高數(shù)據(jù)效率硼端。

●基于內(nèi)存的框架性能明顯優(yōu)于基于磁盤io的框架,但是同時成本也可想而知显蝌。

●概括地說,當(dāng)務(wù)之急是選擇一個能夠滿足需求的框架。否則就有可能既無法滿足功能需求也無法滿足非功能需求脏嚷,當(dāng)然也包括性能需求。

●一些這些框架將數(shù)據(jù)劃分成較小的塊父叙。這些小數(shù)據(jù)塊由各個作業(yè)獨(dú)立處理肴裙。協(xié)調(diào)器管理所有這些獨(dú)立的子作業(yè)

●在數(shù)據(jù)分塊是需要當(dāng)心涌乳。

●該數(shù)據(jù)快越小,就會產(chǎn)生越多的作業(yè)宛乃,這樣就會增加系統(tǒng)初始化作業(yè)和清理作業(yè)的負(fù)擔(dān)。

●如果數(shù)據(jù)快太大征炼,數(shù)據(jù)傳輸可能需要很長時間才能完成躬贡。這也可能導(dǎo)致資源利用不均衡,長時間在一臺服務(wù)器上運(yùn)行一個大作業(yè)拂玻,而其他服務(wù)器就會等待梢为。

●不要忘了查看一個任務(wù)的作業(yè)總數(shù)移层。在必要時調(diào)整這個參數(shù)二拐。

●最好實(shí)時監(jiān)控?cái)?shù)據(jù)塊的傳輸喉酌。在本機(jī)機(jī)型io的效率會更高飞蹂,這么做也會帶來一個副作用就是需要將數(shù)據(jù)塊的冗余參數(shù)提高(一般hadoop默認(rèn)是3份)這樣又會反作用使得系統(tǒng)性能下降肃廓。

●此外诲泌,實(shí)時數(shù)據(jù)流需要與批量數(shù)據(jù)處理的結(jié)果進(jìn)行合并。設(shè)計(jì)系統(tǒng)時盡量減少對其他作業(yè)的影響哀蘑。

●大多數(shù)情況下同一數(shù)據(jù)集需要經(jīng)過多次計(jì)算。這種情況可能是由于數(shù)據(jù)抓取等初始步驟就有報(bào)錯绘迁,或者某些業(yè)務(wù)流程發(fā)生變化卒密,值得一提的是舊數(shù)據(jù)也是如此。設(shè)計(jì)系統(tǒng)時需要注意這個地方的容錯哮奇。

●這意味著你可能需要存儲原始數(shù)據(jù)的時間較長睛约,因此需要更多的存儲哲身。

●數(shù)據(jù)結(jié)果輸出后應(yīng)該保存成用戶期望看到的格式。例如怔揩,如果最終的結(jié)果是用戶要求按照每周的時間序列匯總輸出,那么你就要將結(jié)果以周為單位進(jìn)行匯總保存沧踏。

●為了達(dá)到這個目標(biāo)巾钉,大數(shù)據(jù)系統(tǒng)的數(shù)據(jù)庫建模就要在滿足用例的前提下進(jìn)行。例如砰苍,大數(shù)據(jù)系統(tǒng)經(jīng)常會輸出一些結(jié)構(gòu)化的數(shù)據(jù)表,這樣在展示輸出上就有很大的優(yōu)勢茬缩。

●更常見的是,這可能會這將會讓用戶感覺到性能問題凰锡。例如用戶只需要上周的數(shù)據(jù)匯總結(jié)果圈暗,如果在數(shù)據(jù)規(guī)模較大的時候按照每周來匯總數(shù)據(jù),這樣就會大大降低數(shù)據(jù)處理能力员串。

●一些框架提供了大數(shù)據(jù)查詢懶評價功能。在數(shù)據(jù)沒有在其他地方被使用時效果不錯寸齐。

●實(shí)時監(jiān)控系統(tǒng)的性能,這樣能夠幫助你預(yù)估作業(yè)的完成時間扰法。

6. 數(shù)據(jù)可視化和展示中的性能技巧

精心設(shè)計(jì)的高性能大數(shù)據(jù)系統(tǒng)通過對數(shù)據(jù)的深入分析毅厚,能夠提供有價值戰(zhàn)略指導(dǎo)。這就是可視化的用武之地卧斟。良好的可視化幫助用戶獲取數(shù)據(jù)的多維度透視視圖。

需要注意的是傳統(tǒng)的BI和報(bào)告工具珍语,或用于構(gòu)建自定義報(bào)表系統(tǒng)無法大規(guī)模擴(kuò)展?jié)M足大數(shù)據(jù)系統(tǒng)的可視化需求。同時是偷,許多COTS可視化工具現(xiàn)已上市。

本文將不會對這些個別工具如何進(jìn)行調(diào)節(jié)蛋铆,而是聚焦在一些通用的技術(shù)放接,幫助您能打造可視化層。

●確本榔ⅲ可視化層顯示的數(shù)據(jù)都是從最后的匯總輸出表中取得的數(shù)據(jù)。這些總結(jié)表可以根據(jù)時間短進(jìn)行匯總糊渊,建議使用分類或者用例進(jìn)行匯總。這么做可以避免直接從可視化層讀取整個原始數(shù)據(jù)渺绒。

●這不僅最大限度地減少數(shù)據(jù)傳輸菱鸥,而且當(dāng)用戶在線查看在報(bào)告時還有助于避免性能卡頓問題。

●重分利用大化可視化工具的緩存采缚。緩存可以對可視化層的整體性能產(chǎn)生非常不錯的影響。

●物化視圖是可以提高性能的另一個重要的技術(shù)篡帕。

●大部分可視化工具允許通過增加線程數(shù)來提高請求響應(yīng)的速度。如果資源足夠镰烧、訪問量較大那么這是提高系統(tǒng)性能的好辦法楞陷。

●盡量提前將數(shù)據(jù)進(jìn)行預(yù)處理,如果一些數(shù)據(jù)必須在運(yùn)行時計(jì)算請將運(yùn)行時計(jì)算簡化到最小固蛾。

●可視化工具可以按照各種各樣的展示方法對應(yīng)不同的讀取策略度陆。其中一些是離線模式献幔、提取模式或者在線連接模式。每種服務(wù)模式都是針對不同場景設(shè)計(jì)的蹬蚁。

●同樣,一些工具可以進(jìn)行增量數(shù)據(jù)同步犀斋。這最大限度地減少了數(shù)據(jù)傳輸情连,并將整個可視化過程固化下來。

●保持像圖形蒙具,圖表等使用最小的尺寸。

●大多數(shù)可視化框架和工具的使用可縮放矢量圖形(SVG)禁筏。使用SVG復(fù)雜的布局可能會產(chǎn)生嚴(yán)重的性能影響。

7. 數(shù)據(jù)安全以及對于性能的影響

像任何IT系統(tǒng)一樣安全性要求也對大數(shù)據(jù)系統(tǒng)的性能有很大的影響每强。在本節(jié)中州刽,我們討論一下安全對大數(shù)據(jù)平臺性能的影響。

- 首先確保所有的數(shù)據(jù)源都是經(jīng)過認(rèn)證的穗椅。即使所有的數(shù)據(jù)源都是安全的,并且沒有針對安全方面的需求匹表,那么你可以靈活設(shè)計(jì)一個安全模塊來配置實(shí)現(xiàn)。

- 數(shù)據(jù)進(jìn)過一次認(rèn)證默蚌,那么就不要進(jìn)行二次認(rèn)證。如果實(shí)在需要進(jìn)行二次認(rèn)證绸吸,那么使用一些類似于token的技術(shù)保存下來以便后續(xù)繼續(xù)使用。這將節(jié)省數(shù)據(jù)一遍遍認(rèn)證的開銷攘轩。

- 您可能需要支持其他的認(rèn)證方式,例如基于PKI解決方案或Kerberos撑刺。每一個都有不同的性能指標(biāo)握玛,在最終方案確定前需要將其考慮進(jìn)去甫菠。

- 通常情況下數(shù)據(jù)壓縮后進(jìn)入大數(shù)據(jù)處理系統(tǒng)。這么做好處非常明顯不細(xì)說拂苹。

- 針對不同算法的效率、對cpu的使用量你需要進(jìn)行比較來選出一個傳輸量瓢棒、cpu使用量等方面均衡的壓縮算法丘喻。

- 同樣,評估加密邏輯和算法泉粉,然后再選擇。

- 明智的做法是敏感信息始終進(jìn)行限制嗡靡。

- 在審計(jì)跟蹤表或登錄時您可能需要維護(hù)記錄或類似的訪問,更新等不同的活動記錄歉井。這可能需要根據(jù)不同的監(jiān)管策略和用戶需求個性化的進(jìn)行設(shè)計(jì)和修改。

- 注意哩至,這種需求不僅增加了數(shù)據(jù)處理的復(fù)雜度黑滴,但會增加存儲成本。

- 盡量使用下層提供的安全技術(shù)袁辈,例如操作系統(tǒng)、數(shù)據(jù)庫等尾膊。這些安全解決方案會比你自己設(shè)計(jì)開發(fā)性能要好很多。

8. 總結(jié)

本文介紹了各種性能方面的技巧冈敛,這些技術(shù)性的指導(dǎo)可以作為打造大數(shù)據(jù)分析平臺的一般準(zhǔn)則。大數(shù)據(jù)分析平臺非常復(fù)雜抓谴,為了滿足這種類型系統(tǒng)的性能需求,需要我們從開始建設(shè)的時候進(jìn)行考量仰泻。

本文介紹的技術(shù)準(zhǔn)則可以用在大數(shù)據(jù)平臺建設(shè)的各個不同階段,包括安全如何影響大數(shù)據(jù)分析平臺的性能集侯。



來源:Building High Performance Big Data Analytics Systems ??

作者:Rohit Dhall

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末棠枉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子辈讶,更是在濱河造成了極大的恐慌,老刑警劉巖荞估,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件稚新,死亡現(xiàn)場離奇詭異,居然都是意外死亡飞醉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門缅帘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來难衰,“玉大人,你說我怎么就攤上這事盖袭”顺瑁” “怎么了弟塞?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長决记。 經(jīng)常有香客問我,道長系宫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任楼镐,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘凄杯。我一直安慰自己,他們只是感情好戒突,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著导而,像睡著了一般隔崎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上爵卒,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天,我揣著相機(jī)與錄音实牡,去河邊找鬼。 笑死创坞,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的题涨。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼携栋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了婉支?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤蝌以,失蹤者是張志新(化名)和其女友劉穎何之,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體溶推,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年虱痕,在試婚紗的時候發(fā)現(xiàn)自己被綠了辐赞。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡响委,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出夹囚,到底是詐尸還是另有隱情,我是刑警寧澤崔兴,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站敲茄,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏堰燎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一秆剪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧仅讽,春花似錦、人聲如沸洁灵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至双抽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間牍汹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工方椎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓琳疏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親空盼。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容

  • //我所經(jīng)歷的大數(shù)據(jù)平臺發(fā)展史(三):互聯(lián)網(wǎng)時代 ? 上篇http://www.infoq.com/cn/arti...
    葡萄喃喃囈語閱讀 51,191評論 10 200
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,732評論 25 707
  • 只喜歡,獨(dú)自抱膝賞月 在月光下 盡情傾瀉所有的情感 緊緊擁抱著風(fēng) 任思想聯(lián)翩 在這黑暗中 透徹 不必在意 沒人傾聽...
    散夏無淚閱讀 180評論 0 3
  • 今天 我決定要好好學(xué)習(xí) 做回最初的自己篱瞎。 比起每天哈哈傻笑瘋跑 更喜歡書桌前認(rèn)真的自己。 忘了是第幾次立志 . 俐筋。...
    高處不勝寒1閱讀 196評論 0 0
  • 今天輕松,明天有一天的課澄者,我本來還懶洋洋的在寢室看《閃光少女》的请琳,完全忘了還要跑步這種事赠幕,但是同學(xué)都來找我了怎么樣...
    玲玲喵閱讀 141評論 0 0