成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

nosql數(shù)據(jù)庫壓縮,mysql數(shù)據(jù)庫壓縮

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

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

10年積累的網(wǎng)站設(shè)計、做網(wǎng)站經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有金華免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

大數(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ī)??梢员欢x為“在本(地)機(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ù)據(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ù)據(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ù)處理(例如,清洗,驗證等),存儲數(shù)據(jù),數(shù)據(jù)處理、數(shù)據(jù)分析等(例如做預(yù)測分析,生成在線使用建議等等),最后呈現(xiàn)和可視化的總結(jié)、匯總結(jié)果。

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

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)隊提供并維護(hù),所以本文將不會在深入到這些系統(tǒng)的性能分析中去。

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

第一步,獲取數(shù)據(jù)。這個過程包括分析,驗證,清洗,轉(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é)中,本文將介紹一些存儲方面的最佳實踐(包括邏輯上和物理上)。在本文結(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ù)處理和分析的最佳實踐。

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

最后一個步驟,展示經(jīng)過各個不同分析算法處理過的數(shù)據(jù)結(jié)果。該步驟包括從預(yù)先計算匯總的結(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ù),做必要的驗證,數(shù)據(jù)清晰,例如數(shù)據(jù)去重,轉(zhuǎn)換格式,并將其存儲到某種持久層。

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

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

●來自不同數(shù)據(jù)源的傳輸應(yīng)該是異步的??梢允褂梦募韨鬏?、或者使用面向消息的(MoM)中間件來實現(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ì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)置的驗證解決方案。大多數(shù)解析/驗證工作流程的通常運(yùn)行在服務(wù)器環(huán)境(ESB /應(yīng)用服務(wù)器)中。大部分的場景基本上都有現(xiàn)成的標(biāo)準(zhǔn)校驗工具。在大多數(shù)的情況下,這些標(biāo)準(zhǔn)的現(xiàn)成的工具一般來說要比你自己開發(fā)的工具性能要好很多。

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

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

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

●大多數(shù)系統(tǒng)處理無效數(shù)據(jù)的做法通常是存放在一個專門的表中,請在系統(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ù)雜、最緊急、消耗資源最多的一步。因此,確保在這一過程中盡可能多的使用并行計算。

●一旦所有的數(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ù)計算的匯總數(shù)據(jù)等。

●首先選擇數(shù)據(jù)范式。您對數(shù)據(jù)的建模方式對性能有直接的影響,例如像數(shù)據(jù)冗余,磁盤存儲容量等方面。對于一些簡單的文件導(dǎo)入數(shù)據(jù)庫中的場景,你也許需要保持?jǐn)?shù)據(jù)原始的格式,對于另外一些場景,如執(zhí)行一些分析計算聚集等,你可能不需要將數(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)置的類似功能,因為自己開發(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)。

●這是因為,如果使用一些外部文件系統(tǒng)/格式,則需要對數(shù)據(jù)進(jìn)行相應(yīng)的編解碼/數(shù)據(jù)移植。它將在整個讀/寫過程中增加原本不必要的冗余處理。

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

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

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

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

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

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

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

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

●有些框架擅長高度并行計算,這樣能夠大大提高數(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ù)。

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

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

●大多數(shù)情況下同一數(shù)據(jù)集需要經(jīng)過多次計算。這種情況可能是由于數(shù)據(jù)抓取等初始步驟就有報錯,或者某些業(yè)務(wù)流程發(fā)生變化,值得一提的是舊數(shù)據(jù)也是如此。設(shè)計系統(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ù)沒有在其他地方被使用時效果不錯。

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

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

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

需要注意的是傳統(tǒng)的BI和報告工具,或用于構(gòu)建自定義報表系統(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)用戶在線查看在報告時還有助于避免性能卡頓問題。

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

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

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

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

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

●同樣,一些工具可以進(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è)計一個安全模塊來配置實現(xiàn)。

– 數(shù)據(jù)進(jìn)過一次認(rèn)證,那么就不要進(jìn)行二次認(rèn)證。如果實在需要進(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)行限制。

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

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

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

8.總結(jié)

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

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

大數(shù)據(jù)技術(shù)有哪些?

隨著大數(shù)據(jù)分析市場迅速擴(kuò)展,哪些技術(shù)是最有需求和最有增長潛力的呢?在Forrester Research的一份最新研究報告中,評估了22種技術(shù)在整個數(shù)據(jù)生命周期中的成熟度和軌跡。這些技術(shù)都對大數(shù)據(jù)的實時、預(yù)測和綜合洞察有著巨大的貢獻(xiàn)。

1. 預(yù)測分析技術(shù)

這也是大數(shù)據(jù)的主要功能之一。預(yù)測分析允許公司通過分析大數(shù)據(jù)源來發(fā)現(xiàn)、評估、優(yōu)化和部署預(yù)測模型,從而提高業(yè)務(wù)性能或降低風(fēng)險。同時,大數(shù)據(jù)的預(yù)測分析也與我們的生活息息相關(guān)。淘寶會預(yù)測你每次購物可能還想買什么,愛奇藝正在預(yù)測你可能想看什么,百合網(wǎng)和其他約會網(wǎng)站甚至試圖預(yù)測你會愛上誰……

2. NoSQL數(shù)據(jù)庫

NoSQL,Not Only SQL,意思是“不僅僅是SQL”,泛指非關(guān)系型數(shù)據(jù)庫。NoSQL數(shù)據(jù)庫提供了比關(guān)系數(shù)據(jù)庫更靈活、可伸縮和更便宜的替代方案,打破了傳統(tǒng)數(shù)據(jù)庫市場一統(tǒng)江山的格局。并且,NoSQL數(shù)據(jù)庫能夠更好地處理大數(shù)據(jù)應(yīng)用的需求。常見的NoSQL數(shù)據(jù)庫有HBase、Redis、MongoDB、Couchbase、LevelDB等。

3. 搜索和知識發(fā)現(xiàn)

支持來自于多種數(shù)據(jù)源(如文件系統(tǒng)、數(shù)據(jù)庫、流、api和其他平臺和應(yīng)用程序)中的大型非結(jié)構(gòu)化和結(jié)構(gòu)化數(shù)據(jù)存儲庫中自助提取信息的工具和技術(shù)。如,數(shù)據(jù)挖掘技術(shù)和各種大數(shù)據(jù)平臺。

4. 大數(shù)據(jù)流計算引擎

能夠過濾、聚合、豐富和分析來自多個完全不同的活動數(shù)據(jù)源的數(shù)據(jù)的高吞吐量的框架,可以采用任何數(shù)據(jù)格式?,F(xiàn)今流行的流式計算引擎有Spark Streaming和Flink。

5. 內(nèi)存數(shù)據(jù)結(jié)構(gòu)

通過在分布式計算機(jī)系統(tǒng)中動態(tài)隨機(jī)訪問內(nèi)存(DRAM)、閃存或SSD上分布數(shù)據(jù),提供低延遲的訪問和處理大量數(shù)據(jù)。

6. 分布式文件存儲

為了保證文件的可靠性和存取性能,數(shù)據(jù)通常以副本的方式存儲在多個節(jié)點(diǎn)上的計算機(jī)網(wǎng)絡(luò)。常見的分布式文件系統(tǒng)有GFS、HDFS、Lustre 、Ceph等。

7. 數(shù)據(jù)虛擬化

數(shù)據(jù)虛擬化是一種數(shù)據(jù)管理方法,它允許應(yīng)用程序檢索和操作數(shù)據(jù),而不需要關(guān)心有關(guān)數(shù)據(jù)的技術(shù)細(xì)節(jié),比如數(shù)據(jù)在源文件中是何種格式,或者數(shù)據(jù)存儲的物理位置,并且可以提供單個客戶用戶視圖。

8. 數(shù)據(jù)集成

用于跨解決方案進(jìn)行數(shù)據(jù)編排的工具,如Amazon Elastic MapReduce (EMR)、Apache Hive、Apache Pig、Apache Spark、MapReduce、Couchbase、Hadoop和MongoDB等。

9. 數(shù)據(jù)準(zhǔn)備

減輕采購、成形、清理和共享各種雜亂數(shù)據(jù)集的負(fù)擔(dān)的軟件,以加速數(shù)據(jù)對分析的有用性。

10. 數(shù)據(jù)質(zhì)量

使用分布式數(shù)據(jù)存儲和數(shù)據(jù)庫上的并行操作,對大型高速數(shù)據(jù)集進(jìn)行數(shù)據(jù)清理和充實的產(chǎn)品。

高性能 NoSQL

關(guān)系數(shù)據(jù)庫經(jīng)過幾十年的發(fā)展,已經(jīng)非常成熟,但同時也存在不足:

表結(jié)構(gòu)是強(qiáng)約束的,業(yè)務(wù)變更時擴(kuò)充很麻煩。

如果對大數(shù)據(jù)量的表進(jìn)行統(tǒng)計運(yùn)算,I/O會很高,因為即使只針對某列進(jìn)行運(yùn)算,也需要將整行數(shù)據(jù)讀入內(nèi)存。

全文搜索只能使用 Like 進(jìn)行整表掃描,性能非常低。

針對這些不足,產(chǎn)生了不同的 NoSQL 解決方案,在某些場景下比關(guān)系數(shù)據(jù)庫更有優(yōu)勢,但同時也犧牲了某些特性,所以不能片面的迷信某種方案,應(yīng)將其作為 SQL 的有利補(bǔ)充。

NoSQL != No SQL,而是:

NoSQL = Not Only SQL

典型的 NoSQL 方案分為4類:

Redis 是典型,其 value 是具體的數(shù)據(jù)結(jié)構(gòu),包括 string, hash, list, set, sorted set, bitmap, hyperloglog,常被稱為數(shù)據(jù)結(jié)構(gòu)服務(wù)器。

以 list 為例:

LPOP key 是移除并返回隊列左邊的第一個元素。

如果用關(guān)系數(shù)據(jù)庫就比較麻煩了,需要操作:

Redis 的缺點(diǎn)主要體現(xiàn)在不支持完成的ACID事務(wù),只能保證隔離性和一致性,無法保證原子性和持久性。

最大的特點(diǎn)是 no-schema,無需在使用前定義字段,讀取一個不存在的字段也不會導(dǎo)致語法錯誤。

特點(diǎn):

以電商為例,不同商品的屬性差異很大,如冰箱和電腦,這種差異性在關(guān)系數(shù)據(jù)庫中會有很大的麻煩,而使用文檔數(shù)據(jù)庫則非常方便。

文檔數(shù)據(jù)庫的主要缺點(diǎn):

關(guān)系數(shù)據(jù)庫是按行來存儲的,列式數(shù)據(jù)庫是按照列來存儲數(shù)據(jù)。

按行存儲的優(yōu)勢:

在某些場景下,這些優(yōu)勢就成為劣勢了,例如,計算超重人員的數(shù)據(jù),只需要讀取體重這一列進(jìn)行統(tǒng)計即可,但行式存儲會將整行數(shù)據(jù)讀取到內(nèi)存中,很浪費(fèi)。

而列式存儲中,只需要讀取體重這列的數(shù)據(jù)即可,I/O 將大大減少。

除了節(jié)省I/O,列式存儲還有更高的壓縮比,可以節(jié)省存儲空間。普通行式數(shù)據(jù)庫的壓縮比在 3:1 到 5:1 左右,列式數(shù)據(jù)庫在 8:1 到 30:1,因為單個列的數(shù)據(jù)相似度更高。

列式存儲的隨機(jī)寫效率遠(yuǎn)低于行式存儲,因為行式存儲時同一行多個列都存儲在連續(xù)空間中,而列式存儲將不同列存儲在不連續(xù)的空間。

一般將列式存儲應(yīng)用在離線大數(shù)據(jù)分析統(tǒng)計場景,因為這時主要針對部分列進(jìn)行操作,而且數(shù)據(jù)寫入后無須更新。

關(guān)系數(shù)據(jù)庫通過索引進(jìn)行快速查詢,但在全文搜索的情景下,索引就不夠了,因為:

假設(shè)有一個交友網(wǎng)站,信息表如下:

需要匹配性別、地點(diǎn)、語言列。

需要匹配性別、地點(diǎn)、愛好列。

實際搜索中,各種排列組合非常多,關(guān)系數(shù)據(jù)庫很難支持。

全文搜索引擎是使用 倒排索引 技術(shù),建立單詞到文檔的索引,例如上面的表信息建立倒排索引:

所以特別適合根據(jù)關(guān)鍵詞來查詢文檔內(nèi)容。

上面介紹了幾種典型的NoSQL方案,及各自的適用場景和特點(diǎn),您可以根據(jù)實際需求進(jìn)行選擇。

newsql和nosql的區(qū)別和聯(lián)系

在大數(shù)據(jù)時代,“多種架構(gòu)支持多類應(yīng)用”成為數(shù)據(jù)庫行業(yè)應(yīng)對大數(shù)據(jù)的基本思路,數(shù)據(jù)庫行業(yè)出現(xiàn)互為補(bǔ)充的三大陣營,適用于事務(wù)處理應(yīng)用的OldSQL、適用于數(shù)據(jù)分析應(yīng)用的NewSQL和適用于互聯(lián)網(wǎng)應(yīng)用的NoSQL。但在一些復(fù)雜的應(yīng)用場景中,單一數(shù)據(jù)庫架構(gòu)都不能完全滿足應(yīng)用場景對海量結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的存儲管理、復(fù)雜分析、關(guān)聯(lián)查詢、實時性處理和控制建設(shè)成本等多方面的需要,因此不同架構(gòu)數(shù)據(jù)庫混合部署應(yīng)用成為滿足復(fù)雜應(yīng)用的必然選擇。不同架構(gòu)數(shù)據(jù)庫混合使用的模式可以概括為:OldSQL+NewSQL、OldSQL+NoSQL、NewSQL+NoSQL三種主要模式。下面通過三個案例對不同架構(gòu)數(shù)據(jù)庫的混合應(yīng)用部署進(jìn)行介紹。

OldSQL+NewSQL 在數(shù)據(jù)中心類應(yīng)用中混合部署

采用OldSQL+NewSQL模式構(gòu)建數(shù)據(jù)中心,在充分發(fā)揮OldSQL數(shù)據(jù)庫的事務(wù)處理能力的同時,借助NewSQL在實時性、復(fù)雜分析、即席查詢等方面的獨(dú)特優(yōu)勢,以及面對海量數(shù)據(jù)時較強(qiáng)的擴(kuò)展能力,滿足數(shù)據(jù)中心對當(dāng)前“熱”數(shù)據(jù)事務(wù)型處理和海量歷史“冷”數(shù)據(jù)分析兩方面的需求。OldSQL+NewSQL模式在數(shù)據(jù)中心類應(yīng)用中的互補(bǔ)作用體現(xiàn)在,OldSQL彌補(bǔ)了NewSQL不適合事務(wù)處理的不足,NewSQL彌補(bǔ)了OldSQL在海量數(shù)據(jù)存儲能力和處理性能方面的缺陷。

商業(yè)銀行數(shù)據(jù)中心采用OldSQL+NewSQL混合部署方式搭建,OldSQL數(shù)據(jù)庫滿足各業(yè)務(wù)系統(tǒng)數(shù)據(jù)的歸檔備份和事務(wù)型應(yīng)用,NewSQL MPP數(shù)據(jù)庫集群對即席查詢、多維分析等應(yīng)用提供高性能支持,并且通過MPP集群架構(gòu)實現(xiàn)應(yīng)對海量數(shù)據(jù)存儲的擴(kuò)展能力。

商業(yè)銀行數(shù)據(jù)中心存儲架構(gòu)

與傳統(tǒng)的OldSQL模式相比,商業(yè)銀行數(shù)據(jù)中心采用OldSQL+NewSQL混合搭建模式,數(shù)據(jù)加載性能提升3倍以上,即席查詢和統(tǒng)計分析性能提升6倍以上。NewSQL MPP的高可擴(kuò)展性能夠應(yīng)對新的業(yè)務(wù)需求,可隨著數(shù)據(jù)量的增長采用集群方式構(gòu)建存儲容量更大的數(shù)據(jù)中心。

OldSQL+NoSQL 在互聯(lián)網(wǎng)大數(shù)據(jù)應(yīng)用中混合部署

在互聯(lián)網(wǎng)大數(shù)據(jù)應(yīng)用中采用OldSQL+NoSQL混合模式,能夠很好的解決互聯(lián)網(wǎng)大數(shù)據(jù)應(yīng)用對海量結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行存儲和快速處理的需求。在諸如大型電子商務(wù)平臺、大型SNS平臺等互聯(lián)網(wǎng)大數(shù)據(jù)應(yīng)用場景中,OldSQL在應(yīng)用中負(fù)責(zé)高價值密度結(jié)構(gòu)化數(shù)據(jù)的存儲和事務(wù)型處理,NoSQL在應(yīng)用中負(fù)責(zé)存儲和處理海量非結(jié)構(gòu)化的數(shù)據(jù)和低價值密度結(jié)構(gòu)化數(shù)據(jù)。OldSQL+NoSQL模式在互聯(lián)網(wǎng)大數(shù)據(jù)應(yīng)用中的互補(bǔ)作用體現(xiàn)在,OldSQL彌補(bǔ)了NoSQL在ACID特性和復(fù)雜關(guān)聯(lián)運(yùn)算方面的不足,NoSQL彌補(bǔ)了OldSQL在海量數(shù)據(jù)存儲和非結(jié)構(gòu)化數(shù)據(jù)處理方面的缺陷。

數(shù)據(jù)魔方是淘寶網(wǎng)的一款數(shù)據(jù)產(chǎn)品,主要提供行業(yè)數(shù)據(jù)分析、店鋪數(shù)據(jù)分析。淘寶數(shù)據(jù)產(chǎn)品在存儲層采用OldSQL+NoSQL混合模式,由基于MySQL的分布式關(guān)系型數(shù)據(jù)庫集群MyFOX和基于HBase的NoSQL存儲集群Prom組成。由于OldSQL強(qiáng)大的語義和關(guān)系表達(dá)能力,在應(yīng)用中仍然占據(jù)著重要地位,目前存儲在MyFOX中的統(tǒng)計結(jié)果數(shù)據(jù)已經(jīng)達(dá)到10TB,占據(jù)著數(shù)據(jù)魔方總數(shù)據(jù)量的95%以上。另一方面,NoSQL作為SQL的有益補(bǔ)充,解決了OldSQL數(shù)據(jù)庫無法解決的全屬性選擇器等問題。

淘寶海量數(shù)據(jù)產(chǎn)品技術(shù)架構(gòu)

基于OldSQL+NoSQL混合架構(gòu)的特點(diǎn),數(shù)據(jù)魔方目前已經(jīng)能夠提供壓縮前80TB的數(shù)據(jù)存儲空間,支持每天4000萬的查詢請求,平均響應(yīng)時間在28毫秒,足以滿足未來一段時間內(nèi)的業(yè)務(wù)增長需求。

NewSQL+NoSQL 在行業(yè)大數(shù)據(jù)應(yīng)用中混合部署

行業(yè)大數(shù)據(jù)與互聯(lián)網(wǎng)大數(shù)據(jù)的區(qū)別在于行業(yè)大數(shù)據(jù)的價值密度更高,并且對結(jié)構(gòu)化數(shù)據(jù)的實時處理、復(fù)雜的多表關(guān)聯(lián)分析、即席查詢、數(shù)據(jù)強(qiáng)一致性等都比互聯(lián)網(wǎng)大數(shù)據(jù)有更高的要求。行業(yè)大數(shù)據(jù)應(yīng)用場景主要是分析類應(yīng)用,如:電信、金融、政務(wù)、能源等行業(yè)的決策輔助、預(yù)測預(yù)警、統(tǒng)計分析、經(jīng)營分析等。

在行業(yè)大數(shù)據(jù)應(yīng)用中采用NewSQL+NoSQL混合模式,充分利用NewSQL在結(jié)構(gòu)化數(shù)據(jù)分析處理方面的優(yōu)勢,以及NoSQL在非結(jié)構(gòu)數(shù)據(jù)處理方面的優(yōu)勢,實現(xiàn)NewSQL與NoSQL的功能互補(bǔ),解決行業(yè)大數(shù)據(jù)應(yīng)用對高價值結(jié)構(gòu)化數(shù)據(jù)的實時處理、復(fù)雜的多表關(guān)聯(lián)分析、即席查詢、數(shù)據(jù)強(qiáng)一致性等要求,以及對海量非結(jié)構(gòu)化數(shù)據(jù)存儲和精確查詢的要求。在應(yīng)用中,NewSQL承擔(dān)高價值密度結(jié)構(gòu)化數(shù)據(jù)的存儲和分析處理工作,NoSQL承擔(dān)存儲和處理海量非結(jié)構(gòu)化數(shù)據(jù)和不需要關(guān)聯(lián)分析、Ad-hoc查詢較少的低價值密度結(jié)構(gòu)化數(shù)據(jù)的工作。

當(dāng)前電信運(yùn)營商在集中化BI系統(tǒng)建設(shè)過程中面臨著數(shù)據(jù)規(guī)模大、數(shù)據(jù)處理類型多等問題,并且需要應(yīng)對大量的固定應(yīng)用,以及占統(tǒng)計總數(shù)80%以上的突發(fā)性臨時統(tǒng)計(ad-hoc)需求。在集中化BI系統(tǒng)的建設(shè)中采用NewSQL+NoSQL混搭的模式,充分利用NewSQL在復(fù)雜分析、即席查詢等方面處理性能的優(yōu)勢,及NoSQL在非結(jié)構(gòu)化數(shù)據(jù)處理和海量數(shù)據(jù)存儲方面的優(yōu)勢,實現(xiàn)高效低成本。

集中化BI系統(tǒng)數(shù)據(jù)存儲架構(gòu)

集中化BI系統(tǒng)按照數(shù)據(jù)類型和處理方式的不同,將結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)分別存儲在不同的系統(tǒng)中:非結(jié)構(gòu)化數(shù)據(jù)在Hadoop平臺上存儲與處理;結(jié)構(gòu)化、不需要關(guān)聯(lián)分析、Ad-hoc查詢較少的數(shù)據(jù)保存在NoSQL數(shù)據(jù)庫或Hadoop平臺;結(jié)構(gòu)化、需要關(guān)聯(lián)分析或經(jīng)常ad-hoc查詢的數(shù)據(jù),保存在NewSQL MPP數(shù)據(jù)庫中,短期高價值數(shù)據(jù)放在高性能平臺,中長期放在低成本產(chǎn)品中。

結(jié)語

當(dāng)前信息化應(yīng)用的多樣性、復(fù)雜性,以及三種數(shù)據(jù)庫架構(gòu)各自所具有的優(yōu)勢和局限性,造成任何一種架構(gòu)的數(shù)據(jù)庫都不能完全滿足應(yīng)用需求,因此不同架構(gòu)數(shù)據(jù)庫混合使用,從而彌補(bǔ)其他架構(gòu)的不足成為必然選擇。根據(jù)應(yīng)用場景采用不同架構(gòu)數(shù)據(jù)庫進(jìn)行組合搭配,充分發(fā)揮每種架構(gòu)數(shù)據(jù)庫的特點(diǎn)和優(yōu)勢,并且與其他架構(gòu)數(shù)據(jù)庫形成互補(bǔ),完全涵蓋應(yīng)用需求,保證數(shù)據(jù)資源的最優(yōu)化利用,將成為未來一段時期內(nèi)信息化應(yīng)用主要采用的解決方式。

目前在國內(nèi)市場上,OldSQL主要為Oracle、IBM等國外數(shù)據(jù)庫廠商所壟斷,達(dá)夢、金倉等國產(chǎn)廠商仍處于追趕狀態(tài);南大通用憑借國產(chǎn)新型數(shù)據(jù)庫GBase 8a異軍突起,與EMC的Greenplum和HP的Vertica躋身NewSQL市場三強(qiáng);NoSQL方面用戶則大多采用Hadoop開源方案。

nosql數(shù)據(jù)庫有哪些

Membase

Membase 是 NoSQL 家族的一個新的重量級的成員。Membase是開源項目,源代碼采用了Apache2.0的使用許可。該項目托管在GitHub.Source tarballs上,可以下載beta版本的Linux二進(jìn)制包。該產(chǎn)品主要是由North Scale的memcached核心團(tuán)隊成員開發(fā)完成,其中還包括Zynga和NHN這兩個主要貢獻(xiàn)者的工程師,這兩個組織都是很大的在線游戲和社區(qū)網(wǎng)絡(luò)空間的供應(yīng)商。

Membase容易安裝、操作,可以從單節(jié)點(diǎn)方便的擴(kuò)展到集群,而且為memcached(有線協(xié)議的兼容性)實現(xiàn)了即插即用功能,在應(yīng)用方面為開發(fā)者和經(jīng)營者提供了一個比較低的門檻。做為緩存解決方案,Memcached已經(jīng)在不同類型的領(lǐng)域(特別是大容量的Web應(yīng)用)有了廣泛的使用,其中 Memcached的部分基礎(chǔ)代碼被直接應(yīng)用到了Membase服務(wù)器的前端。

通過兼容多種編程語言和框架,Membase具備了很好的復(fù)用性。在安裝和配置方面,Membase提供了有效的圖形化界面和編程接口,包括可配置 的告警信息。

Membase的目標(biāo)是提供對外的線性擴(kuò)展能力,包括為了增加集群容量,可以針對統(tǒng)一的節(jié)點(diǎn)進(jìn)行復(fù)制。 另外,對存儲的數(shù)據(jù)進(jìn)行再分配仍然是必要的。

這方面的一個有趣的特性是NoSQL解決方案所承諾的可預(yù)測的性能,類準(zhǔn)確性的延遲和吞吐量。通過如下方式可以獲得上面提到的特性:

◆ 自動將在線數(shù)據(jù)遷移到低延遲的存儲介質(zhì)的技術(shù)(內(nèi)存,固態(tài)硬盤,磁盤)

◆ 可選的寫操作一一異步,同步(基于復(fù)制,持久化)

◆ 反向通道再平衡[未來考慮支持]

◆ 多線程低鎖爭用

◆ 盡可能使用異步處理

◆ 自動實現(xiàn)重復(fù)數(shù)據(jù)刪除

◆ 動態(tài)再平衡現(xiàn)有集群

◆ 通過把數(shù)據(jù)復(fù)制到多個集群單元和支持快速失敗轉(zhuǎn)移來提供系統(tǒng)的高可用性。

MongoDB

MongoDB是一個介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。他支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bjson格式,因此可以存儲比較復(fù)雜的數(shù)據(jù)類型。Mongo最大的特點(diǎn)是他支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。它的特點(diǎn)是高性能、易部署、易使用,存儲數(shù)據(jù)非常方便。

主要功能特性:

◆ 面向集合存儲,易存儲對象類型的數(shù)據(jù)

“面向集合”(Collenction-Oriented),意思是數(shù)據(jù)被分組存儲在數(shù)據(jù)集中,被稱為一個集合(Collenction)。每個 集合在數(shù)據(jù)庫中都有一個唯一的標(biāo)識名,并且可以包含無限數(shù)目的文檔。集合的概念類似關(guān)系型數(shù)據(jù)庫(RDBMS)里的表(table),不同的是它不需要定 義任何模式(schema)。

◆ 模式自由

模式自由(schema-free),意味著對于存儲在mongodb數(shù)據(jù)庫中的文件,我們不需要知道它的任何結(jié)構(gòu)定義。如果需要的話,你完全可以把不同結(jié)構(gòu)的文件存儲在同一個數(shù)據(jù)庫里。

◆支持動態(tài)查詢

◆支持完全索引,包含內(nèi)部對象

◆支持查詢

◆支持復(fù)制和故障恢復(fù)

◆使用高效的二進(jìn)制數(shù)據(jù)存儲,包括大型對象(如視頻等)

◆自動處理碎片,以支持云計算層次的擴(kuò)展性

◆支持RUBY,PYTHON,JAVA,C++,PHP等多種語言

◆文件存儲格式為BSON(一種JSON的擴(kuò)展)

BSON(Binary Serialized document Format)存儲形式是指:存儲在集合中的文檔,被存儲為鍵-值對的形式。鍵用于唯一標(biāo)識一個文檔,為字符串類型,而值則可以是各種復(fù)雜的文件類型。

◆可通過網(wǎng)絡(luò)訪問

MongoDB服務(wù)端可運(yùn)行在Linux、Windows或OS X平臺,支持32位和64位應(yīng)用,默認(rèn)端口為27017。推薦運(yùn)行在64位平臺,因為MongoDB在32位模式運(yùn)行時支持的最大文件尺寸為2GB。

MongoDB把數(shù)據(jù)存儲在文件中(默認(rèn)路徑為:/data/db),為提高效率使用內(nèi)存映射文件進(jìn)行管理。

Hypertable

Hypertable是一個開源、高性能、可伸縮的數(shù)據(jù)庫,它采用與Google的Bigtable相似的模型。在過去數(shù)年中,Google為在PC集群 上運(yùn)行的可伸縮計算基礎(chǔ)設(shè)施設(shè)計建造了三個關(guān)鍵部分。第一個關(guān)鍵的基礎(chǔ)設(shè)施是Google File System(GFS),這是一個高可用的文件系統(tǒng),提供了一個全局的命名空間。它通過跨機(jī)器(和跨機(jī)架)的文件數(shù)據(jù)復(fù)制來達(dá)到高可用性,并因此免受傳統(tǒng) 文件存儲系統(tǒng)無法避免的許多失敗的影響,比如電源、內(nèi)存和網(wǎng)絡(luò)端口等失敗。第二個基礎(chǔ)設(shè)施是名為Map-Reduce的計算框架,它與GFS緊密協(xié)作,幫 助處理收集到的海量數(shù)據(jù)。第三個基礎(chǔ)設(shè)施是Bigtable,它是傳統(tǒng)數(shù)據(jù)庫的替代。Bigtable讓你可以通過一些主鍵來組織海量數(shù)據(jù),并實現(xiàn)高效的 查詢。Hypertable是Bigtable的一個開源實現(xiàn),并且根據(jù)我們的想法進(jìn)行了一些改進(jìn)。

Apache Cassandra

Apache Cassandra是一套開源分布式Key-Value存儲系統(tǒng)。它最初由Facebook開發(fā),用于儲存特別大的數(shù)據(jù)。Facebook在使用此系統(tǒng)。

主要特性:

◆ 分布式

◆ 基于column的結(jié)構(gòu)化

◆ 高伸展性

Cassandra的主要特點(diǎn)就是它不是一個數(shù)據(jù)庫,而是由一堆數(shù)據(jù)庫節(jié)點(diǎn)共同構(gòu)成的一個分布式網(wǎng)絡(luò)服務(wù),對Cassandra 的一個寫操作,會被復(fù)制到其他節(jié)點(diǎn)上去,對Cassandra的讀操作,也會被路由到某個節(jié)點(diǎn)上面去讀取。對于一個Cassandra群集來說,擴(kuò)展性能 是比較簡單的事情,只管在群集里面添加節(jié)點(diǎn)就可以了。

Cassandra是一個混合型的非關(guān)系的數(shù)據(jù)庫,類似于Google的BigTable。其主要功能比 Dynomite(分布式的Key-Value存 儲系統(tǒng))更豐富,但支持度卻不如文檔存儲MongoDB(介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的開源產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫 的。Cassandra最初由Facebook開發(fā),后轉(zhuǎn)變成了開源項目。它是一個網(wǎng)絡(luò)社交云計算方面理想的數(shù)據(jù)庫。以Amazon專有的完全分布式的Dynamo為基礎(chǔ),結(jié)合了Google BigTable基于列族(Column Family)的數(shù)據(jù)模型。P2P去中心化的存儲。很多方面都可以稱之為Dynamo 2.0。

CouchDB

所用語言: Erlang

特點(diǎn):DB一致性,易于使用

使用許可: Apache

協(xié)議: HTTP/REST

雙向數(shù)據(jù)復(fù)制,持續(xù)進(jìn)行或臨時處理,處理時帶沖突檢查,因此,采用的是master-master復(fù)制

MVCC – 寫操作不阻塞讀操作

可保存文件之前的版本

Crash-only(可靠的)設(shè)計

需要不時地進(jìn)行數(shù)據(jù)壓縮

視圖:嵌入式 映射/減少

格式化視圖:列表顯示

支持進(jìn)行服務(wù)器端文檔驗證

支持認(rèn)證

根據(jù)變化實時更新

支持附件處理

因此, CouchApps(獨(dú)立的 js應(yīng)用程序)

需要 jQuery程序庫

最佳應(yīng)用場景:適用于數(shù)據(jù)變化較少,執(zhí)行預(yù)定義查詢,進(jìn)行數(shù)據(jù)統(tǒng)計的應(yīng)用程序。適用于需要提供數(shù)據(jù)版本支持的應(yīng)用程序。

例如:CRM、CMS系統(tǒng)。 master-master復(fù)制對于多站點(diǎn)部署是非常有用的。

和其他數(shù)據(jù)庫比較,其突出特點(diǎn)是:

◆ 模式靈活 :使用Cassandra,像文檔存儲,你不必提前解決記錄中的字段。你可以在系統(tǒng)運(yùn)行時隨意的添加或移除字段。這是一個驚人的效率提升,特別是在大型部 署上。

◆ 真正的可擴(kuò)展性 :Cassandra是純粹意義上的水平擴(kuò)展。為給集群添加更多容量,可以指向另一臺電腦。你不必重啟任何進(jìn)程,改變應(yīng)用查詢,或手動遷移任何數(shù)據(jù)。

◆ 多數(shù)據(jù)中心識別 :你可以調(diào)整你的節(jié)點(diǎn)布局來避免某一個數(shù)據(jù)中心起火,一個備用的數(shù)據(jù)中心將至少有每條記錄的完全復(fù)制。

◆ 范圍查詢 :如果你不喜歡全部的鍵值查詢,則可以設(shè)置鍵的范圍來查詢。

◆ 列表數(shù)據(jù)結(jié)構(gòu) :在混合模式可以將超級列添加到5維。對于每個用戶的索引,這是非常方便的。

◆ 分布式寫操作 :有可以在任何地方任何時間集中讀或?qū)懭魏螖?shù)據(jù)。并且不會有任何單點(diǎn)失敗。

問度娘,啥都有。

網(wǎng)站名稱:nosql數(shù)據(jù)庫壓縮,mysql數(shù)據(jù)庫壓縮
網(wǎng)站URL:http://jinyejixie.com/article36/dssoosg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、營銷型網(wǎng)站建設(shè)、移動網(wǎng)站建設(shè)品牌網(wǎng)站建設(shè)、軟件開發(fā)、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
淅川县| 永川市| 营口市| 新竹市| 梓潼县| 剑川县| 永昌县| 封开县| 全州县| 东乡族自治县| 曲沃县| 凤阳县| 桐庐县| 容城县| 广安市| 广德县| 河间市| 大竹县| 阜阳市| 夹江县| 滦平县| 新昌县| 丹凤县| 宝山区| 怀集县| 广汉市| 油尖旺区| 三明市| 霞浦县| 邵阳市| 兴业县| 泸水县| 越西县| 福泉市| 东安县| 修武县| 会昌县| 兰溪市| 城步| 四川省| 麻城市|