一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

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

 昵稱(chēng)2472300 2016-02-09

原文:Building High Performance Big Data Analytics Systems

譯者:袁璞,圣特爾·E店寶大數(shù)據(jù)架構(gòu)師,關(guān)注高性能或可用架構(gòu)、大數(shù)據(jù)技術(shù)、機(jī)器學(xué)習(xí)。

審核:朱正貴

責(zé)編:仲浩

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

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

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

據(jù)Gartner稱(chēng),大規(guī)??梢员欢x為“在本(地)機(jī)數(shù)據(jù)采集和處理技術(shù)能力不足以為用戶(hù)帶來(lái)商業(yè)價(jià)值。當(dāng)現(xiàn)有的技術(shù)能夠針對(duì)性的進(jìn)行改造后來(lái)處理這種規(guī)模的數(shù)據(jù)就可以說(shuō)是一個(gè)成功的大數(shù)據(jù)解決方案。

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

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

高效性可以被定義為來(lái)自不同源的數(shù)據(jù)到達(dá)的速度。從各種設(shè)備,傳感器和其他有組織和無(wú)組織的數(shù)據(jù)流都在不斷進(jìn)入IT系統(tǒng)。由此,實(shí)時(shí)分析和對(duì)于該數(shù)據(jù)的解釋?zhuān)ㄕ故荆┑哪芰σ矐?yīng)該隨之增加。

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

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

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

與其他IT系統(tǒng)一樣,性能是大數(shù)據(jù)系統(tǒng)獲得成功的關(guān)鍵。本文的中心主旨是要說(shuō)明如何讓大數(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)證等),存儲(chǔ)數(shù)據(jù),數(shù)據(jù)處理、數(shù)據(jù)分析等(例如做預(yù)測(cè)分析,生成在線使用建議等等),最后呈現(xiàn)和可視化的總結(jié)、匯總結(jié)果。

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

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

本節(jié)的其余部分簡(jiǎn)要說(shuō)明了每個(gè)組分,如圖1。

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

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

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

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

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

第一步,獲取數(shù)據(jù)。這個(gè)過(guò)程包括分析,驗(yàn)證,清洗,轉(zhuǎn)換,去重,然后存到適合你們公司的一個(gè)持久化設(shè)備中(硬盤(pán)、存儲(chǔ)、云等)。

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

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

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

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

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

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

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

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

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

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

數(shù)據(jù)采集是各種來(lái)自不同數(shù)據(jù)源的數(shù)據(jù)進(jìn)入大數(shù)據(jù)系統(tǒng)的第一步。這個(gè)步驟的性能將會(huì)直接決定在一個(gè)給定的時(shí)間段內(nèi)大數(shù)據(jù)系統(tǒng)能夠處理的數(shù)據(jù)量的能力。 數(shù)據(jù)采集過(guò)程基于對(duì)該系統(tǒng)的個(gè)性化需求,但一些常用執(zhí)行的步驟是 - 解析傳入數(shù)據(jù),做必要的驗(yàn)證,數(shù)據(jù)清晰,例如數(shù)據(jù)去重,轉(zhuǎn)換格式,并將其存儲(chǔ)到某種持久層。

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

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

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

  • 來(lái)自不同數(shù)據(jù)源的傳輸應(yīng)該是異步的??梢允褂梦募?lái)傳輸、或者使用面向消息的(MoM)中間件來(lái)實(shí)現(xiàn)。由于數(shù)據(jù)異步傳輸,所以數(shù)據(jù)采集過(guò)程的吞吐量可以大大高于大數(shù)據(jù)系統(tǒng)的處理能力。 異步數(shù)據(jù)傳輸同樣可以在大數(shù)據(jù)系統(tǒng)和不同的數(shù)據(jù)源之間進(jìn)行解耦。大數(shù)據(jù)基礎(chǔ)架構(gòu)設(shè)計(jì)使得其很容易進(jìn)行動(dòng)態(tài)伸縮,數(shù)據(jù)采集的峰值流量對(duì)于大數(shù)據(jù)系統(tǒng)來(lái)說(shuō)算是安全的。
  • 如果數(shù)據(jù)是直接從一些外部數(shù)據(jù)庫(kù)中抽取的,確保拉取數(shù)據(jù)是使用批量的方式。
  • 如果數(shù)據(jù)是從feed file解析,請(qǐng)務(wù)必使用合適的解析器。例如,如果從一個(gè)XML文件中讀取也有不同的解析器像JDOM,SAX,DOM等。類(lèi)似地,對(duì)于CSV,JSON和其它這樣的格式,多個(gè)解析器和API是可供選擇。選擇能夠符合需求的性能最好的。
  • 優(yōu)先使用內(nèi)置的驗(yàn)證解決方案。大多數(shù)解析/驗(yàn)證工作流程的通常運(yùn)行在服務(wù)器環(huán)境(ESB /應(yīng)用服務(wù)器)中。大部分的場(chǎng)景基本上都有現(xiàn)成的標(biāo)準(zhǔn)校驗(yàn)工具。在大多數(shù)的情況下,這些標(biāo)準(zhǔn)的現(xiàn)成的工具一般來(lái)說(shuō)要比你自己開(kāi)發(fā)的工具性能要好很多。
  • 類(lèi)似地,如果數(shù)據(jù)XML格式的,優(yōu)先使用XML(XSD)用于驗(yàn)證。
  • 即使解析器或者校等流程使用自定義的腳本來(lái)完成,例如使用java優(yōu)先還是應(yīng)該使用內(nèi)置的函數(shù)庫(kù)或者開(kāi)發(fā)框架。在大多數(shù)的情況下通常會(huì)比你開(kāi)發(fā)任何自定義代碼快得多。
  • 盡量提前濾掉無(wú)效數(shù)據(jù),以便后續(xù)的處理流程都不用在無(wú)效數(shù)據(jù)上浪費(fèi)過(guò)多的計(jì)算能力。
  • 大多數(shù)系統(tǒng)處理無(wú)效數(shù)據(jù)的做法通常是存放在一個(gè)專(zhuān)門(mén)的表中,請(qǐng)?jiān)谙到y(tǒng)建設(shè)之初考慮這部分的數(shù)據(jù)庫(kù)存儲(chǔ)和其他額外的存儲(chǔ)開(kāi)銷(xiāo)。
  • 如果來(lái)自數(shù)據(jù)源的數(shù)據(jù)需要清洗,例如去掉一些不需要的信息,盡量保持所有數(shù)據(jù)源的抽取程序版本一致,確保一次處理的是一個(gè)大批量的數(shù)據(jù),而不是一條記錄一條記錄的來(lái)處理。一般來(lái)說(shuō)數(shù)據(jù)清洗需要進(jìn)行表關(guān)聯(lián)。數(shù)據(jù)清洗中需要用到的靜態(tài)數(shù)據(jù)關(guān)聯(lián)一次,并且一次處理一個(gè)很大的批量就能夠大幅提高數(shù)據(jù)處理效率。
  • 數(shù)據(jù)去重非常重要這個(gè)過(guò)程決定了主鍵的是由哪些字段構(gòu)成。通常主鍵都是時(shí)間戳或者id等可以追加的類(lèi)型。一般情況下,每條記錄都可能根據(jù)主鍵進(jìn)行索引來(lái)更新,所以最好能夠讓主鍵簡(jiǎn)單一些,以保證在更新的時(shí)候檢索的性能。
  • 來(lái)自多個(gè)源接收的數(shù)據(jù)可以是不同的格式。有時(shí),需要進(jìn)行數(shù)據(jù)移植,使接收到的數(shù)據(jù)從多種格式轉(zhuǎn)化成一種或一組標(biāo)準(zhǔn)格式。
  • 和解析過(guò)程一樣,我們建議使用內(nèi)置的工具,相比于你自己從零開(kāi)發(fā)的工具性能會(huì)提高很多。
  • 數(shù)據(jù)移植的過(guò)程一般是數(shù)據(jù)處理過(guò)程中最復(fù)雜、最緊急、消耗資源最多的一步。因此,確保在這一過(guò)程中盡可能多的使用并行計(jì)算。
  • 一旦所有的數(shù)據(jù)采集的上述活動(dòng)完成后,轉(zhuǎn)換后的數(shù)據(jù)通常存儲(chǔ)在某些持久層,以便以后分析處理,綜述,聚合等使用。
  • 多種技術(shù)解決方案的存在是為了處理這種持久(RDBMS,NoSQL的分布式文件系統(tǒng),如Hadoop和等)。
  • 謹(jǐn)慎選擇一個(gè)能夠最大限度的滿足需求的解決方案。
4. 數(shù)據(jù)存儲(chǔ)中的性能技巧

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

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

  • 首先選擇數(shù)據(jù)范式。您對(duì)數(shù)據(jù)的建模方式對(duì)性能有直接的影響,例如像數(shù)據(jù)冗余,磁盤(pán)存儲(chǔ)容量等方面。對(duì)于一些簡(jiǎn)單的文件導(dǎo)入數(shù)據(jù)庫(kù)中的場(chǎng)景,你也許需要保持?jǐn)?shù)據(jù)原始的格式,對(duì)于另外一些場(chǎng)景,如執(zhí)行一些分析計(jì)算聚集等,你可能不需要將數(shù)據(jù)范式化。
  • 大多數(shù)的大數(shù)據(jù)系統(tǒng)使用NoSQL數(shù)據(jù)庫(kù)替代RDBMS處理數(shù)據(jù)。
  • 不同的NoSQL數(shù)據(jù)庫(kù)適用不同的場(chǎng)景,一部分在select時(shí)性能更好,有些是在插入或者更新性能更好。
  • 數(shù)據(jù)庫(kù)分為行存儲(chǔ)和列存儲(chǔ)。
  • 具體的數(shù)據(jù)庫(kù)選型依賴(lài)于你的具體需求(例如,你的應(yīng)用程序的數(shù)據(jù)庫(kù)讀寫(xiě)比)。
  • 同樣每個(gè)數(shù)據(jù)庫(kù)都會(huì)根據(jù)不同的配置從而控制這些數(shù)據(jù)庫(kù)用于數(shù)據(jù)庫(kù)復(fù)制備份或者嚴(yán)格保持?jǐn)?shù)據(jù)一致性
  • 這些設(shè)置會(huì)直接影響數(shù)據(jù)庫(kù)性能。在數(shù)據(jù)庫(kù)技術(shù)選型前一定要注意。
  • 壓縮率、緩沖池、超時(shí)的大小,和緩存的對(duì)于不同的NoSQL數(shù)據(jù)庫(kù)來(lái)說(shuō)配置都是不同的,同時(shí)對(duì)數(shù)據(jù)庫(kù)性能的影響也是不一樣的。
  • 數(shù)據(jù)Sharding和分區(qū)是這些數(shù)據(jù)庫(kù)的另一個(gè)非常重要的功能。數(shù)據(jù)Sharding的方式能夠?qū)ο到y(tǒng)的性能產(chǎn)生巨大的影響,所以在數(shù)據(jù)Sharding和分區(qū)時(shí)請(qǐng)謹(jǐn)慎選擇。
  • 并非所有的NoSQL數(shù)據(jù)庫(kù)都內(nèi)置了支持連接,排序,匯總,過(guò)濾器,索引等。
  • 如果有需要還是建議使用內(nèi)置的類(lèi)似功能,因?yàn)樽约洪_(kāi)發(fā)的還是不靈。
  • NoSQLs內(nèi)置了壓縮、編解碼器和數(shù)據(jù)移植工具。如果這些可以滿足您的部分需求,那么優(yōu)先選擇使用這些內(nèi)置的功能。這些工具可以執(zhí)行各種各樣的任務(wù),如格式轉(zhuǎn)換、壓縮數(shù)據(jù)等,使用內(nèi)置的工具不僅能夠帶來(lái)更好的性能還可以降低網(wǎng)絡(luò)的使用率。
  • 許多NoSQL數(shù)據(jù)庫(kù)支持多種類(lèi)型的文件系統(tǒng)。其中包括本地文件系統(tǒng),分布式文件系統(tǒng),甚至基于云的存儲(chǔ)解決方案。
  • 如果在交互式需求上有嚴(yán)格的要求,否則還是盡量嘗試使用NoSQL本地(內(nèi)置)文件系統(tǒng)(例如HBase 使用HDFS)。
  • 這是因?yàn)?,如果使用一些外部文件系統(tǒng)/格式,則需要對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的編解碼/數(shù)據(jù)移植。它將在整個(gè)讀/寫(xiě)過(guò)程中增加原本不必要的冗余處理。
  • 大數(shù)據(jù)系統(tǒng)的數(shù)據(jù)模型一般來(lái)說(shuō)需要根據(jù)需求用例來(lái)綜合設(shè)計(jì)。與此形成鮮明對(duì)比的是RDMBS數(shù)據(jù)建模技術(shù)基本都是設(shè)計(jì)成為一個(gè)通用的模型,用外鍵和表之間的關(guān)系用來(lái)描述數(shù)據(jù)實(shí)體與現(xiàn)實(shí)世界之間的交互。
  • 在硬件一級(jí),本地RAID模式也許不太適用。請(qǐng)考慮使用SAN存儲(chǔ)。
5. 數(shù)據(jù)處理分析中的性能技巧

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

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

  • 在細(xì)節(jié)評(píng)估和數(shù)據(jù)格式和模型后選擇適當(dāng)?shù)臄?shù)據(jù)處理框架。
  • 其中一些框架適用于批量數(shù)據(jù)處理,而另外一些適用于實(shí)時(shí)數(shù)據(jù)處理。
  • 同樣一些框架使用內(nèi)存模式,另外一些是基于磁盤(pán)io處理模式。
  • 有些框架擅長(zhǎng)高度并行計(jì)算,這樣能夠大大提高數(shù)據(jù)效率。
  • 基于內(nèi)存的框架性能明顯優(yōu)于基于磁盤(pán)io的框架,但是同時(shí)成本也可想而知。
  • 概括地說(shuō),當(dāng)務(wù)之急是選擇一個(gè)能夠滿足需求的框架。否則就有可能既無(wú)法滿足功能需求也無(wú)法滿足非功能需求,當(dāng)然也包括性能需求。
  • 一些這些框架將數(shù)據(jù)劃分成較小的塊。這些小數(shù)據(jù)塊由各個(gè)作業(yè)獨(dú)立處理。協(xié)調(diào)器管理所有這些獨(dú)立的子作業(yè)
  • 在數(shù)據(jù)分塊是需要當(dāng)心。
  • 該數(shù)據(jù)快越小,就會(huì)產(chǎn)生越多的作業(yè),這樣就會(huì)增加系統(tǒng)初始化作業(yè)和清理作業(yè)的負(fù)擔(dān)。
  • 如果數(shù)據(jù)快太大,數(shù)據(jù)傳輸可能需要很長(zhǎng)時(shí)間才能完成。這也可能導(dǎo)致資源利用不均衡,長(zhǎng)時(shí)間在一臺(tái)服務(wù)器上運(yùn)行一個(gè)大作業(yè),而其他服務(wù)器就會(huì)等待。
  • 不要忘了查看一個(gè)任務(wù)的作業(yè)總數(shù)。在必要時(shí)調(diào)整這個(gè)參數(shù)。
  • 最好實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)塊的傳輸。在本機(jī)機(jī)型io的效率會(huì)更高,這么做也會(huì)帶來(lái)一個(gè)副作用就是需要將數(shù)據(jù)塊的冗余參數(shù)提高(一般hadoop默認(rèn)是3份)這樣又會(huì)反作用使得系統(tǒng)性能下降。
  • 此外,實(shí)時(shí)數(shù)據(jù)流需要與批量數(shù)據(jù)處理的結(jié)果進(jìn)行合并。設(shè)計(jì)系統(tǒng)時(shí)盡量減少對(duì)其他作業(yè)的影響。
  • 大多數(shù)情況下同一數(shù)據(jù)集需要經(jīng)過(guò)多次計(jì)算。這種情況可能是由于數(shù)據(jù)抓取等初始步驟就有報(bào)錯(cuò),或者某些業(yè)務(wù)流程發(fā)生變化,值得一提的是舊數(shù)據(jù)也是如此。設(shè)計(jì)系統(tǒng)時(shí)需要注意這個(gè)地方的容錯(cuò)。
  • 這意味著你可能需要存儲(chǔ)原始數(shù)據(jù)的時(shí)間較長(zhǎng),因此需要更多的存儲(chǔ)。
  • 數(shù)據(jù)結(jié)果輸出后應(yīng)該保存成用戶(hù)期望看到的格式。例如,如果最終的結(jié)果是用戶(hù)要求按照每周的時(shí)間序列匯總輸出,那么你就要將結(jié)果以周為單位進(jìn)行匯總保存。
  • 為了達(dá)到這個(gè)目標(biāo),大數(shù)據(jù)系統(tǒng)的數(shù)據(jù)庫(kù)建模就要在滿足用例的前提下進(jìn)行。例如,大數(shù)據(jù)系統(tǒng)經(jīng)常會(huì)輸出一些結(jié)構(gòu)化的數(shù)據(jù)表,這樣在展示輸出上就有很大的優(yōu)勢(shì)。
  • 更常見(jiàn)的是,這可能會(huì)這將會(huì)讓用戶(hù)感覺(jué)到性能問(wèn)題。例如用戶(hù)只需要上周的數(shù)據(jù)匯總結(jié)果,如果在數(shù)據(jù)規(guī)模較大的時(shí)候按照每周來(lái)匯總數(shù)據(jù),這樣就會(huì)大大降低數(shù)據(jù)處理能力。
  • 一些框架提供了大數(shù)據(jù)查詢(xún)懶評(píng)價(jià)功能。在數(shù)據(jù)沒(méi)有在其他地方被使用時(shí)效果不錯(cuò)。
  • 實(shí)時(shí)監(jiān)控系統(tǒng)的性能,這樣能夠幫助你預(yù)估作業(yè)的完成時(shí)間。
6. 數(shù)據(jù)可視化和展示中的性能技巧

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

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

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

  • 確??梢暬瘜语@示的數(shù)據(jù)都是從最后的匯總輸出表中取得的數(shù)據(jù)。這些總結(jié)表可以根據(jù)時(shí)間短進(jìn)行匯總,建議使用分類(lèi)或者用例進(jìn)行匯總。這么做可以避免直接從可視化層讀取整個(gè)原始數(shù)據(jù)。
  • 這不僅最大限度地減少數(shù)據(jù)傳輸,而且當(dāng)用戶(hù)在線查看在報(bào)告時(shí)還有助于避免性能卡頓問(wèn)題。
  • 重分利用大化可視化工具的緩存。緩存可以對(duì)可視化層的整體性能產(chǎn)生非常不錯(cuò)的影響。
  • 物化視圖是可以提高性能的另一個(gè)重要的技術(shù)。
  • 大部分可視化工具允許通過(guò)增加線程數(shù)來(lái)提高請(qǐng)求響應(yīng)的速度。如果資源足夠、訪問(wèn)量較大那么這是提高系統(tǒng)性能的好辦法。
  • 盡量提前將數(shù)據(jù)進(jìn)行預(yù)處理,如果一些數(shù)據(jù)必須在運(yùn)行時(shí)計(jì)算請(qǐng)將運(yùn)行時(shí)計(jì)算簡(jiǎn)化到最小。
  • 可視化工具可以按照各種各樣的展示方法對(duì)應(yīng)不同的讀取策略。其中一些是離線模式、提取模式或者在線連接模式。每種服務(wù)模式都是針對(duì)不同場(chǎng)景設(shè)計(jì)的。
  • 同樣,一些工具可以進(jìn)行增量數(shù)據(jù)同步。這最大限度地減少了數(shù)據(jù)傳輸,并將整個(gè)可視化過(guò)程固化下來(lái)。
  • 保持像圖形,圖表等使用最小的尺寸。
  • 大多數(shù)可視化框架和工具的使用可縮放矢量圖形(SVG)。使用SVG復(fù)雜的布局可能會(huì)產(chǎn)生嚴(yán)重的性能影響。
7. 數(shù)據(jù)安全以及對(duì)于性能的影響

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

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

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

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

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

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

- 同樣,評(píng)估加密邏輯和算法,然后再選擇。

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

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

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

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

8. 總結(jié)

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

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

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多

    国产中文另类天堂二区| 91偷拍视频久久精品| 日韩国产欧美中文字幕| 国产精品国产亚洲看不卡| 一区二区三区日韩在线| 亚洲色图欧美另类人妻| 日韩国产精品激情一区| 欧美欧美欧美欧美一区| 在线欧美精品二区三区| 少妇成人精品一区二区| 五月婷婷综合激情啪啪| 最新国产欧美精品91| 日韩在线精品视频观看| 国产不卡一区二区四区| 高清亚洲精品中文字幕乱码| 丰满人妻一二区二区三区av| 91人人妻人人爽人人狠狠| 亚洲天堂国产精品久久精品| 五月天丁香婷婷狠狠爱| 精品al亚洲麻豆一区| 天海翼精品久久中文字幕| 亚洲熟女诱惑一区二区| 日本深夜福利视频在线| 国产av熟女一区二区三区四区| 国产传媒高清视频在线| 熟女高潮一区二区三区| 国产亚洲不卡一区二区| 国内尹人香蕉综合在线| 国产精品刮毛视频不卡| 国产一区日韩二区欧美| 成人国产激情在线视频| 日韩欧美一区二区久久婷婷| 又黄又色又爽又免费的视频| 亚洲av首页免费在线观看| 欧美日韩国产一级91| 亚洲国产av在线观看一区| 欧美大胆女人的大胆人体| 久久久精品日韩欧美丰满| 国产色第一区不卡高清| 好东西一起分享老鸭窝| 亚洲日本中文字幕视频在线观看|