HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運營
CASE 服務(wù)案例
NEWS 熱點資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    構(gòu)建大數(shù)據(jù)平臺功能架構(gòu)(構(gòu)建大數(shù)據(jù)平臺功能架構(gòu)包括)

    發(fā)布時間:2023-03-16 19:00:27     稿源: 創(chuàng)意嶺    閱讀: 1488        問大家

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于構(gòu)建大數(shù)據(jù)平臺功能架構(gòu)的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com

    本文目錄:

    構(gòu)建大數(shù)據(jù)平臺功能架構(gòu)(構(gòu)建大數(shù)據(jù)平臺功能架構(gòu)包括)

    一、如何正確建立大數(shù)據(jù)結(jié)構(gòu)?

    大數(shù)據(jù)各行各業(yè)的企業(yè)都提供了潛力。正確使用這些大數(shù)據(jù)信息可能將增加商業(yè)價值,幫助您的企業(yè)從市場競爭中脫穎而出。如下是幾個企業(yè)成功應(yīng)用大數(shù)據(jù)的案例: 大數(shù)據(jù)的例子 汽車制造商已經(jīng)開始使用大數(shù)據(jù)來了解汽車何時需要返回到車庫進行維修。使用汽車發(fā)動機的數(shù)百個傳感器,可以為汽車制造商發(fā)送實時的數(shù)據(jù)信息,這使得制造商甚至比駕駛汽車的司機還要提前知道汽車何時會出現(xiàn)故障??ㄜ囍圃焐涕_始使用大數(shù)據(jù),基于實時交通條件和客戶的需求來改進他們的路由,從而節(jié)約燃料和時間。 零售業(yè)也開始越來越多的使用大數(shù)據(jù),鑒于越來越多的產(chǎn)品均有一個RFID標簽?zāi)軒椭闶凵谈櫘a(chǎn)品,知道很少某種產(chǎn)品庫存缺貨,并及時向供貨商訂購新產(chǎn)品。沃爾瑪便是這正確利用大數(shù)據(jù)這方面的一個很好的例子。當零售商開始識別他們的客戶時,就能夠更好地建立商店,更好的滿足客戶的需求。 當然,上述這些只是幾個淺顯的例子,大數(shù)據(jù)的可能性幾乎是無止境的。不久的將來,我們將討論在大數(shù)據(jù)平臺上的最佳實踐。知道大數(shù)據(jù)能夠提供商業(yè)價值是一回事;而企業(yè)要知道如何創(chuàng)建正確的架構(gòu)則又是另一回事了。 大數(shù)據(jù)結(jié)構(gòu) 大數(shù)據(jù)有三個特征,使得大數(shù)據(jù)不同于現(xiàn)有的數(shù)據(jù)倉庫和商業(yè)智能。大數(shù)據(jù)的這三大特點是: 數(shù)據(jù)量龐大:大數(shù)據(jù)的數(shù)據(jù)量相當龐大,更多的時候大數(shù)據(jù)的數(shù)據(jù)量可以達到比數(shù)TB到PB級字節(jié)。 高速度傳遞:所有這些TB和PB字節(jié)的數(shù)據(jù)能夠?qū)崟r交付,數(shù)據(jù)倉庫每天都需要應(yīng)付如此高速的數(shù)據(jù)流。

    二、如何架構(gòu)大數(shù)據(jù)系統(tǒng) hadoop

    Hadoop在可伸縮性、健壯性、計算性能和成本上具有無可替代的優(yōu)勢,事實上已成為當前互聯(lián)網(wǎng)企業(yè)主流的大數(shù)據(jù)分析平臺。本文主要介紹一種基于Hadoop平臺的多維分析和數(shù)據(jù)挖掘平臺架構(gòu)。作為一家互聯(lián)網(wǎng)數(shù)據(jù)分析公司,我們在海量數(shù)據(jù)的分析領(lǐng)域那真是被“逼上梁山”。多年來在嚴苛的業(yè)務(wù)需求和數(shù)據(jù)壓力下,我們幾乎嘗試了所有可能的大數(shù)據(jù)分析方法,最終落地于Hadoop平臺之上。

    1. 大數(shù)據(jù)分析大分類

    Hadoop平臺對業(yè)務(wù)的針對性較強,為了讓你明確它是否符合你的業(yè)務(wù),現(xiàn)粗略地從幾個角度將大數(shù)據(jù)分析的業(yè)務(wù)需求分類,針對不同的具體需求,應(yīng)采用不同的數(shù)據(jù)分析架構(gòu)。

    按照數(shù)據(jù)分析的實時性,分為實時數(shù)據(jù)分析和離線數(shù)據(jù)分析兩種。

    實時數(shù)據(jù)分析一般用于金融、移動和互聯(lián)網(wǎng)B2C等產(chǎn)品,往往要求在數(shù)秒內(nèi)返回上億行數(shù)據(jù)的分析,從而達到不影響用戶體驗的目的。要滿足這樣的需求,可以采用精心設(shè)計的傳統(tǒng)關(guān)系型數(shù)據(jù)庫組成并行處理集群,或者采用一些內(nèi)存計算平臺,或者采用HDD的架構(gòu),這些無疑都需要比較高的軟硬件成本。目前比較新的海量數(shù)據(jù)實時分析工具有EMC的Greenplum、SAP的HANA等。

    對于大多數(shù)反饋時間要求不是那么嚴苛的應(yīng)用,比如離線統(tǒng)計分析、機器學(xué)習(xí)、搜索引擎的反向索引計算、推薦引擎的計算等,應(yīng)采用離線分析的方式,通過數(shù)據(jù)采集工具將日志數(shù)據(jù)導(dǎo)入專用的分析平臺。但面對海量數(shù)據(jù),傳統(tǒng)的ETL工具往往徹底失效,主要原因是數(shù)據(jù)格式轉(zhuǎn)換的開銷太大,在性能上無法滿足海量數(shù)據(jù)的采集需求。互聯(lián)網(wǎng)企業(yè)的海量數(shù)據(jù)采集工具,有Facebook開源的Scribe、LinkedIn開源的Kafka、淘寶開源的Timetunnel、Hadoop的Chukwa等,均可以滿足每秒數(shù)百MB的日志數(shù)據(jù)采集和傳輸需求,并將這些數(shù)據(jù)上載到Hadoop中央系統(tǒng)上。

    按照大數(shù)據(jù)的數(shù)據(jù)量,分為內(nèi)存級別、BI級別、海量級別三種。

    這里的內(nèi)存級別指的是數(shù)據(jù)量不超過集群的內(nèi)存最大值。不要小看今天內(nèi)存的容量,F(xiàn)acebook緩存在內(nèi)存的Memcached中的數(shù)據(jù)高達320TB,而目前的PC服務(wù)器,內(nèi)存也可以超過百GB。因此可以采用一些內(nèi)存數(shù)據(jù)庫,將熱點數(shù)據(jù)常駐內(nèi)存之中,從而取得非??焖俚姆治瞿芰?,非常適合實時分析業(yè)務(wù)。圖1是一種實際可行的MongoDB分析架構(gòu)。

    圖1 用于實時分析的MongoDB架構(gòu)

    MongoDB大集群目前存在一些穩(wěn)定性問題,會發(fā)生周期性的寫堵塞和主從同步失效,但仍不失為一種潛力十足的可以用于高速數(shù)據(jù)分析的NoSQL。

    此外,目前大多數(shù)服務(wù)廠商都已經(jīng)推出了帶4GB以上SSD的解決方案,利用內(nèi)存+SSD,也可以輕易達到內(nèi)存分析的性能。隨著SSD的發(fā)展,內(nèi)存數(shù)據(jù)分析必然能得到更加廣泛的應(yīng)用。

    BI級別指的是那些對于內(nèi)存來說太大的數(shù)據(jù)量,但一般可以將其放入傳統(tǒng)的BI產(chǎn)品和專門設(shè)計的BI數(shù)據(jù)庫之中進行分析。目前主流的BI產(chǎn)品都有支持TB級以上的數(shù)據(jù)分析方案。種類繁多,就不具體列舉了。

    海量級別指的是對于數(shù)據(jù)庫和BI產(chǎn)品已經(jīng)完全失效或者成本過高的數(shù)據(jù)量。海量數(shù)據(jù)級別的優(yōu)秀企業(yè)級產(chǎn)品也有很多,但基于軟硬件的成本原因,目前大多數(shù)互聯(lián)網(wǎng)企業(yè)采用Hadoop的HDFS分布式文件系統(tǒng)來存儲數(shù)據(jù),并使用MapReduce進行分析。本文稍后將主要介紹Hadoop上基于MapReduce的一個多維數(shù)據(jù)分析平臺。

    數(shù)據(jù)分析的算法復(fù)雜度

    根據(jù)不同的業(yè)務(wù)需求,數(shù)據(jù)分析的算法也差異巨大,而數(shù)據(jù)分析的算法復(fù)雜度和架構(gòu)是緊密關(guān)聯(lián)的。舉個例子,Redis是一個性能非常高的內(nèi)存Key-Value NoSQL,它支持List和Set、SortedSet等簡單集合,如果你的數(shù)據(jù)分析需求簡單地通過排序,鏈表就可以解決,同時總的數(shù)據(jù)量不大于內(nèi)存(準確地說是內(nèi)存加上虛擬內(nèi)存再除以2),那么無疑使用Redis會達到非常驚人的分析性能。

    還有很多易并行問題(Embarrassingly Parallel),計算可以分解成完全獨立的部分,或者很簡單地就能改造出分布式算法,比如大規(guī)模臉部識別、圖形渲染等,這樣的問題自然是使用并行處理集群比較適合。

    而大多數(shù)統(tǒng)計分析,機器學(xué)習(xí)問題可以用MapReduce算法改寫。MapReduce目前最擅長的計算領(lǐng)域有流量統(tǒng)計、推薦引擎、趨勢分析、用戶行為分析、數(shù)據(jù)挖掘分類器、分布式索引等。

    2. 面對大數(shù)據(jù)OLAP大一些問題

    OLAP分析需要進行大量的數(shù)據(jù)分組和表間關(guān)聯(lián),而這些顯然不是NoSQL和傳統(tǒng)數(shù)據(jù)庫的強項,往往必須使用特定的針對BI優(yōu)化的數(shù)據(jù)庫。比如絕大多數(shù)針對BI優(yōu)化的數(shù)據(jù)庫采用了列存儲或混合存儲、壓縮、延遲加載、對存儲數(shù)據(jù)塊的預(yù)統(tǒng)計、分片索引等技術(shù)。

    Hadoop平臺上的OLAP分析,同樣存在這個問題,F(xiàn)acebook針對Hive開發(fā)的RCFile數(shù)據(jù)格式,就是采用了上述的一些優(yōu)化技術(shù),從而達到了較好的數(shù)據(jù)分析性能。如圖2所示。

    然而,對于Hadoop平臺來說,單單通過使用Hive模仿出SQL,對于數(shù)據(jù)分析來說遠遠不夠,首先Hive雖然將HiveQL翻譯MapReduce的時候進行了優(yōu)化,但依然效率低下。多維分析時依然要做事實表和維度表的關(guān)聯(lián),維度一多性能必然大幅下降。其次,RCFile的行列混合存儲模式,事實上限制死了數(shù)據(jù)格式,也就是說數(shù)據(jù)格式是針對特定分析預(yù)先設(shè)計好的,一旦分析的業(yè)務(wù)模型有所改動,海量數(shù)據(jù)轉(zhuǎn)換格式的代價是極其巨大的。最后,HiveQL對OLAP業(yè)務(wù)分析人員依然是非常不友善的,維度和度量才是直接針對業(yè)務(wù)人員的分析語言。

    而且目前OLAP存在的最大問題是:業(yè)務(wù)靈活多變,必然導(dǎo)致業(yè)務(wù)模型隨之經(jīng)常發(fā)生變化,而業(yè)務(wù)維度和度量一旦發(fā)生變化,技術(shù)人員需要把整個Cube(多維立方體)重新定義并重新生成,業(yè)務(wù)人員只能在此Cube上進行多維分析,這樣就限制了業(yè)務(wù)人員快速改變問題分析的角度,從而使所謂的BI系統(tǒng)成為死板的日常報表系統(tǒng)。

    使用Hadoop進行多維分析,首先能解決上述維度難以改變的問題,利用Hadoop中數(shù)據(jù)非結(jié)構(gòu)化的特征,采集來的數(shù)據(jù)本身就是包含大量冗余信息的。同時也可以將大量冗余的維度信息整合到事實表中,這樣可以在冗余維度下靈活地改變問題分析的角度。其次利用Hadoop MapReduce強大的并行化處理能力,無論OLAP分析中的維度增加多少,開銷并不顯著增長。換言之,Hadoop可以支持一個巨大無比的Cube,包含了無數(shù)你想到或者想不到的維度,而且每次多維分析,都可以支持成千上百個維度,并不會顯著影響分析的性能。

     

    而且目前OLAP存在的最大問題是:業(yè)務(wù)靈活多變,必然導(dǎo)致業(yè)務(wù)模型隨之經(jīng)常發(fā)生變化,而業(yè)務(wù)維度和度量一旦發(fā)生變化,技術(shù)人員需要把整個Cube(多維立方體)重新定義并重新生成,業(yè)務(wù)人員只能在此Cube上進行多維分析,這樣就限制了業(yè)務(wù)人員快速改變問題分析的角度,從而使所謂的BI系統(tǒng)成為死板的日常報表系統(tǒng)。

    3. 一種Hadoop多維分析平臺的架構(gòu)

    整個架構(gòu)由四大部分組成:數(shù)據(jù)采集模塊、數(shù)據(jù)冗余模塊、維度定義模塊、并行分 析模塊。

    數(shù)據(jù)采集模塊采用了Cloudera的Flume,將海量的小日志文件進行高速傳輸和合并,并能夠確保數(shù)據(jù)的傳輸安全性。單個collector宕機之后,數(shù)據(jù)也不會丟失,并能將agent數(shù)據(jù)自動轉(zhuǎn)移到其他的colllecter處理,不會影響整個采集系統(tǒng)的運行。如圖5所示。

    數(shù)據(jù)冗余模塊不是必須的,但如果日志數(shù)據(jù)中沒有足夠的維度信息,或者需要比較頻繁地增加維度,則需要定義數(shù)據(jù)冗余模塊。通過冗余維度定義器定義需要冗余的維度信息和來源(數(shù)據(jù)庫、文件、內(nèi)存等),并指定擴展方式,將信息寫入數(shù)據(jù)日志中。在海量數(shù)據(jù)下,數(shù)據(jù)冗余模塊往往成為整個系統(tǒng)的瓶頸,建議使用一些比較快的內(nèi)存NoSQL來冗余原始數(shù)據(jù),并采用盡可能多的節(jié)點進行并行冗余;或者也完全可以在Hadoop中執(zhí)行批量Map,進行數(shù)據(jù)格式的轉(zhuǎn)化。

    維度定義模塊是面向業(yè)務(wù)用戶的前端模塊,用戶通過可視化的定義器從數(shù)據(jù)日志中定義維度和度量,并能自動生成一種多維分析語言,同時可以使用可視化的分析器通過GUI執(zhí)行剛剛定義好的多維分析命令。

    并行分析模塊接受用戶提交的多維分析命令,并將通過核心模塊將該命令解析為Map-Reduce,提交給Hadoop集群之后,生成報表供報表中心展示。

    核心模塊是將多維分析語言轉(zhuǎn)化為MapReduce的解析器,讀取用戶定義的維度和度量,將用戶的多維分析命令翻譯成MapReduce程序。核心模塊的具體邏輯如圖6所示。

    圖6中根據(jù)JobConf參數(shù)進行Map和Reduce類的拼裝并不復(fù)雜,難點是很多實際問題很難通過一個MapReduce Job解決,必須通過多個MapReduce Job組成工作流(WorkFlow),這里是最需要根據(jù)業(yè)務(wù)進行定制的部分。圖7是一個簡單的MapReduce工作流的例子。

    MapReduce的輸出一般是統(tǒng)計分析的結(jié)果,數(shù)據(jù)量相較于輸入的海量數(shù)據(jù)會小很多,這樣就可以導(dǎo)入傳統(tǒng)的數(shù)據(jù)報表產(chǎn)品中進行展現(xiàn)。

    三、大數(shù)據(jù)技術(shù)架構(gòu)都有哪些變化?

    1.從本地數(shù)據(jù)平臺到基于云的數(shù)據(jù)平臺

    云可能是一種全新的數(shù)據(jù)架構(gòu)方法的具顛覆性的推動力,因為它為公司提供了一種快速擴展人工智能工具和功能以獲取競爭優(yōu)勢的方法。

    2.從批處理到實時數(shù)據(jù)處理

    實時數(shù)據(jù)通信和流媒體功能的成本已大大降低,這為其主流使用鋪平了道路。這些技術(shù)實現(xiàn)了一系列新的業(yè)務(wù)應(yīng)用:例如,運輸公司可以在出租車到達時向客戶提供精確到秒的抵達時間預(yù)測;保險公司可以分析來自智能設(shè)備的實時行為數(shù)據(jù),從而將費率客制化;而且制造商可以根據(jù)實時的傳感器數(shù)據(jù)來預(yù)測基礎(chǔ)設(shè)施方面的各種問題。

    3.從預(yù)集成的商業(yè)解決方案到模塊化的同類佳平臺

    為了擴展應(yīng)用程序的規(guī)模,公司往往需要沖破大型解決方案供應(yīng)商所提供的遺留數(shù)據(jù)生態(tài)系統(tǒng)的限制?,F(xiàn)在,許多公司正朝著高度模塊化的數(shù)據(jù)架構(gòu)發(fā)展,這種架構(gòu)使用了佳的,經(jīng)常使用的開源組件,這些組件可以根據(jù)需要被新技術(shù)替換而不會影響數(shù)據(jù)架構(gòu)的其他部分。

    4.從點對點到脫離數(shù)據(jù)訪問

    人們可以通過API來揭露數(shù)據(jù),這樣可以確保直接查看和修改數(shù)據(jù)的做法是受限且安全的,同時還可以讓人們更快地訪問常見的數(shù)據(jù)集。這使得數(shù)據(jù)可以在團隊之間輕松得到重用(reused),從而加速訪問并實現(xiàn)分析團隊之間的無縫協(xié)作,從而可以更高效地開發(fā)各種人工智能用例。

    關(guān)于大數(shù)據(jù)技術(shù)架構(gòu)都有哪些變化,青藤小編就和您分享到這里了。如果您對大數(shù)據(jù)工程有濃厚的興趣,希望這篇文章可以為您提供幫助。如果您還想了解更多關(guān)于數(shù)據(jù)分析師、大數(shù)據(jù)工程師的技巧及素材等內(nèi)容,可以點擊本站的其他文章進行學(xué)習(xí)。

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

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

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

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

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

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

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

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

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

    大數(shù)據(jù)系統(tǒng)可以提供巨大的商業(yè)價值。像電信,金融,電子商務(wù),社交媒體等,已經(jīng)認識到他們的數(shù)據(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ù)源

    當今的IT生態(tài)系統(tǒng),需要對各種不同種類來源的數(shù)據(jù)進行分析。這些來源可能是從在線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é)議。

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

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

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

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

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

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

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

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

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

    在下面的章節(jié)中,本文將針對大數(shù)據(jù)系統(tǒng)性能優(yōu)化介紹一些進行數(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ù)進入大數(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ù)源之間進行解耦。大數(shù)據(jù)基礎(chǔ)架構(gòu)設(shè)計使得其很容易進行動態(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ù)解析/驗證工作流程的通常運行在服務(wù)器環(huán)境(ESB /應(yīng)用服務(wù)器)中。大部分的場景基本上都有現(xiàn)成的標準校驗工具。在大多數(shù)的情況下,這些標準的現(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ù)上浪費過多的計算能力。

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

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

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

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

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

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

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

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

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

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

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

    在本節(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ù)庫中的場景,你也許需要保持數(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ù)制備份或者嚴格保持數(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ū)時請謹慎選擇。

    ●并非所有的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),甚至基于云的存儲解決方案。

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

    ●這是因為,如果使用一些外部文件系統(tǒng)/格式,則需要對數(shù)據(jù)進行相應(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ù)處理的各個方面。

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

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

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

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

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

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

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

    ●在數(shù)據(jù)分塊是需要當心。

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

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

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

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

    ●此外,實時數(shù)據(jù)流需要與批量數(shù)據(jù)處理的結(jié)果進行合并。設(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é)果以周為單位進行匯總保存。

    ●為了達到這個目標,大數(shù)據(jù)系統(tǒng)的數(shù)據(jù)庫建模就要在滿足用例的前提下進行。例如,大數(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ī)模擴展?jié)M足大數(shù)據(jù)系統(tǒng)的可視化需求。同時,許多COTS可視化工具現(xiàn)已上市。

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

    ●確??梢暬瘜语@示的數(shù)據(jù)都是從最后的匯總輸出表中取得的數(shù)據(jù)。這些總結(jié)表可以根據(jù)時間短進行匯總,建議使用分類或者用例進行匯總。這么做可以避免直接從可視化層讀取整個原始數(shù)據(jù)。

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

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

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

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

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

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

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

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

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

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

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

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

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

    – 您可能需要支持其他的認證方式,例如基于PKI解決方案或Kerberos。每一個都有不同的性能指標,在最終方案確定前需要將其考慮進去。

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

    – 針對不同算法的效率、對cpu的使用量你需要進行比較來選出一個傳輸量、cpu使用量等方面均衡的壓縮算法。

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

    – 明智的做法是敏感信息始終進行限制。

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

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

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

    8.總結(jié)

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

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

    以上就是關(guān)于構(gòu)建大數(shù)據(jù)平臺功能架構(gòu)相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    注冊完域名后如何構(gòu)建個人網(wǎng)站(注冊完域名后如何構(gòu)建個人網(wǎng)站呢)

    如何構(gòu)建品牌(如何構(gòu)建品牌個性)

    安徽構(gòu)建品牌策劃怎么樣(安徽構(gòu)建品牌策劃怎么樣做)

    草木景觀設(shè)計聯(lián)系電話(草木園林)

    北京品牌策劃概況怎么寫(北京品牌策劃概況怎么寫范文)