閱讀更多

4頂
0踩

企業架構

轉載新聞 常用的幾種大數據架構剖析

2018-04-12 10:37 by 副主編 jihong10102006 評論(0) 有37991人瀏覽
數據分析工作雖然隱藏在業務系統背后,但是具有非常重要的作用,數據分析的結果對決策、業務發展有著舉足輕重的作用。隨著大數據技術的發展,數據挖掘、數據探索等專有名詞曝光度越來越高,但是在類似于Hadoop系列的大數據分析系統大行其道之前,數據分析工作已經經歷了長足的發展,尤其是以BI系統為主的數據分析,已經有了非常成熟和穩定的技術方案和生態系統,對于BI系統來說,大概的架構圖如下:

可以看到在BI系統里面,核心的模塊是Cube,Cube是一個更高層的業務模型抽象,在Cube之上可以進行多種操作,例如上鉆、下鉆、切片等操作。大部分BI系統都基于關系型數據庫,關系型數據庫使用SQL語句進行操作,但是SQL在多維操作和分析的表示能力上相對較弱,所以Cube有自己獨有的查詢語言MDX,MDX表達式具有更強的多維表現能力,所以以Cube為核心的分析系統基本占據著數據統計分析的半壁江山,大多數的數據庫服務廠商直接提供了BI套裝軟件服務,輕易便可搭建出一套Olap分析系統。不過BI的問題也隨著時間的推移逐漸顯露出來:
  • BI系統更多的以分析業務數據產生的密度高、價值高的結構化數據為主,對于非結構化和半結構化數據的處理非常乏力,例如圖片,文本,音頻的存儲,分析。
  • 由于數據倉庫為結構化存儲,在數據從其他系統進入數據倉庫這個東西,我們通常叫做ETL過程,ETL動作和業務進行了強綁定,通常需要一個專門的ETL團隊去和業務做銜接,決定如何進行數據的清洗和轉換。
  • 隨著異構數據源的增加,例如如果存在視頻,文本,圖片等數據源,要解析數據內容進入數據倉庫,則需要非常復雜等ETL程序,從而導致ETL變得過于龐大和臃腫。
  • 當數據量過大的時候,性能會成為瓶頸,在TB/PB級別的數據量上表現出明顯的吃力。
  • 數據庫的范式等約束規則,著力于解決數據冗余的問題,是為了保障數據的一致性,但是對于數據倉庫來說,我們并不需要對數據做修改和一致性的保障,原則上來說數據倉庫的原始數據都是只讀的,所以這些約束反而會成為影響性能的因素。
  • ETL動作對數據的預先假設和處理,導致機器學習部分獲取到的數據為假設后的數據,因此效果不理想。例如如果需要使用數據倉庫進行異常數據的挖掘,則在數據入庫經過ETL的時候就需要明確定義需要提取的特征數據,否則無法結構化入庫,然而大多數情況是需要基于異構數據才能提取出特征。
在一系列的問題下,以Hadoop體系為首的大數據分析平臺逐漸表現出優異性,圍繞Hadoop體系的生態圈也不斷的變大,對于Hadoop系統來說,從根本上解決了傳統數據倉庫的瓶頸的問題,但是也帶來一系列的問題:
  • 從數據倉庫升級到大數據架構,是不具備平滑演進的,基本等于推翻重做。
  • 大數據下的分布式存儲強調數據的只讀性質,所以類似于Hive,HDFS這些存儲方式都不支持update,HDFS的write操作也不支持并行,這些特性導致其具有一定的局限性。
基于大數據架構的數據分析平臺側重于從以下幾個維度去解決傳統數據倉庫做數據分析面臨的瓶頸:
  • 分布式計算:分布式計算的思路是讓多個節點并行計算,并且強調數據本地性,盡可能的減少數據的傳輸,例如Spark通過RDD的形式來表現數據的計算邏輯,可以在RDD上做一系列的優化,來減少數據的傳輸。
  • 分布式存儲:所謂的分布式存儲,指的是將一個大文件拆成N份,每一份獨立的放到一臺機器上,這里就涉及到文件的副本,分片,以及管理等操作,分布式存儲主要優化的動作都在這一塊。
  • 檢索和存儲的結合:在早期的大數據組件中,存儲和計算相對比較單一,但是目前更多的方向是在存儲上做更多的手腳,讓查詢和計算更加高效,對于計算來說高效不外乎就是查找數據快,讀取數據快,所以目前的存儲不單單的存儲數據內容,同時會添加很多元信息,例如索引信息。像類似于parquet和carbondata都是這樣的思想。
總的來說,目前圍繞Hadoop體系的大數據架構大概有以下幾種:

傳統大數據架構

?之所以叫傳統大數據架構,是因為其定位是為了解決傳統BI的問題,簡單來說,數據分析的業務沒有發生任何變化,但是因為數據量、性能等問題導致系統無法正常使用,需要進行升級改造,那么此類架構便是為了解決這個問題。可以看到,其依然保留了ETL的動作,將數據經過ETL動作進入數據存儲。

優點:簡單,易懂,對于BI系統來說,基本思想沒有發生變化,變化的僅僅是技術選型,用大數據架構替換掉BI的組件。

缺點:對于大數據來說,沒有BI下如此完備的Cube架構,雖然目前有kylin,但是kylin的局限性非常明顯,遠遠沒有BI下的Cube的靈活度和穩定度,因此對業務支撐的靈活度不夠,所以對于存在大量報表,或者復雜的鉆取的場景,需要太多的手工定制化,同時該架構依舊以批處理為主,缺乏實時的支撐。

適用場景:數據分析需求依舊以BI場景為主,但是因為數據量、性能等問題無法滿足日常使用。

流式架構

在傳統大數據架構的基礎上,流式架構非常激進,直接拔掉了批處理,數據全程以流的形式處理,所以在數據接入端沒有了ETL,轉而替換為數據通道。經過流處理加工后的數據,以消息的形式直接推送給了消費者。雖然有一個存儲部分,但是該存儲更多的以窗口的形式進行存儲,所以該存儲并非發生在數據湖,而是在外圍系統。

優點:沒有臃腫的ETL過程,數據的實效性非常高。

缺點:對于流式架構來說,不存在批處理,因此對于數據的重播和歷史統計無法很好的支撐。對于離線分析僅僅支撐窗口之內的分析。

適用場景:預警,監控,對數據有有效期要求的情況。

Lambda架構

Lambda架構算是大數據系統里面舉足輕重的架構,大多數架構基本都是Lambda架構或者基于其變種的架構。Lambda的數據通道分為兩條分支:實時流和離線。實時流依照流式架構,保障了其實時性,而離線則以批處理方式為主,保障了最終一致性。什么意思呢?流式通道處理為保障實效性更多的以增量計算為主輔助參考,而批處理層則對數據進行全量運算,保障其最終的一致性,因此Lambda最外層有一個實時層和離線層合并的動作,此動作是Lambda里非常重要的一個動作,大概的合并思路如下:

優點:既有實時又有離線,對于數據分析場景涵蓋的非常到位。

缺點:離線層和實時流雖然面臨的場景不相同,但是其內部處理的邏輯卻是相同,因此有大量榮譽和重復的模塊存在。

適用場景:同時存在實時和離線需求的情況。

Kappa架構

? Kappa架構在Lambda 的基礎上進行了優化,將實時和流部分進行了合并,將數據通道以消息隊列進行替代。因此對于Kappa架構來說,依舊以流處理為主,但是數據卻在數據湖層面進行了存儲,當需要進行離線分析或者再次計算的時候,則將數據湖的數據再次經過消息隊列重播一次則可。

優點:Kappa架構解決了Lambda架構里面的冗余部分,以數據可重播的超凡脫俗的思想進行了設計,整個架構非常簡潔。

缺點:雖然Kappa架構看起來簡潔,但是施難度相對較高,尤其是對于數據重播部分。

適用場景:和Lambda類似,改架構是針對Lambda的優化。

Unifield架構

?以上的種種架構都圍繞海量數據處理為主,Unifield架構則更激進,將機器學習和數據處理揉為一體,從核心上來說,Unifield依舊以Lambda為主,不過對其進行了改造,在流處理層新增了機器學習層。可以看到數據在經過數據通道進入數據湖后,新增了模型訓練部分,并且將其在流式層進行使用。同時流式層不單使用模型,也包含著對模型的持續訓練。

優點:Unifield架構提供了一套數據分析和機器學習結合的架構方案,非常好的解決了機器學習如何與數據平臺進行結合的問題。

缺點:Unifield架構實施復雜度更高,對于機器學習架構來說,從軟件包到硬件部署都和數據分析平臺有著非常大的差別,因此在實施過程中的難度系數更高。

適用場景:有著大量數據需要分析,同時對機器學習方便又有著非常大的需求或者有規劃。

總結

以上幾種架構為目前數據處理領域使用比較多的幾種架構,當然還有非常多其他架構,不過其思想都會或多或少的類似。數據領域和機器學習領域會持續發展,以上幾種思想或許終究也會變得過時。
  • 大小: 81.5 KB
  • 大小: 43.9 KB
  • 大小: 42 KB
  • 大小: 57.2 KB
  • 大小: 189.1 KB
  • 大小: 52.6 KB
  • 大小: 65 KB
來自: 白發川
4
0
評論 共 0 條 請登錄后發表評論

發表評論

您還沒有登錄,請您登錄后再發表評論

相關推薦

  • 胡寧-互聯網常用場景下的大數據架構解析.pdf

    胡寧-互聯網常用場景下的大數據架構解析.pdf

  • 幾種常用室內定位技術的探討

    幾種常用室內定位技術的探討,本資料內容較全

  • java幾種常用的設計模式

    -------------------------------java幾種常用的設計模式--------------------------------------------------------------------------------------------------------------------------

  • 大數據架構和算法實現之路:電商系統的技術實戰

    黃申,博士,畢業于上海交通大學計算機科學與工程專業,師從俞勇教授。微軟學者,IBMExtremeBlue天才計劃成員。長期專注于大數據相關的搜索、推薦、廣告以及用戶精準化領域。曾在微軟亞洲研究院、eBay中國、沃爾瑪1號店和大潤發飛牛網擔任要職,帶隊完成了若干公司級的戰略項目。同時著有20多篇國際論文和10多項國際專利,兼任《計算機工程》期刊特邀審稿專家。因其對業界的卓越貢獻,2015年獲得美國政府頒發的“美國杰出人才”稱號。 本書介紹了一些主流技術在商業項目中的應用,包括機器學習中的分類、聚類和線性回歸,搜索引擎,推薦系統,用戶行為跟蹤,架構設計的基本理念及常用的消息和緩存機制。在這個過程中,我們有機會實踐R、Mahout、Solr、Elasticsearch、Hadoop、HBase、Hive、Flume、Kafka、Storm等系統。如前所述,本書最大的特色就是,從商業需求出發演變到合理的技術方案和實現,因此根據不同的應用場景、不同的數據集合、不同的進階難度,我們為讀者提供了反復溫習和加深印象的機會。

  • 幾種常用圖像處理算法

    幾種常用圖像處理算法幾種常用圖像處理算法幾種常用圖像處理算法

  • 大數據架構 (高清完整版)

    大數據架構大數據架構 必看的大數據架構相關知識。。。。。

  • 幾種常用的設計模式介紹總結

    幾種常用的設計模式總結,包括簡單的介紹設計模式的起源、分類、介紹。

  • 幾種常用的表連接方式.doc

    幾種常用的表連接方式.doc幾種常用的表連接方式.doc幾種常用的表連接方式.doc幾種常用的表連接方式.doc幾種常用的表連接方式.doc幾種常用的表連接方式.doc幾種常用的表連接方式.doc

  • 干貨:結合Scikit-learn介紹幾種常用的特征選擇方法

    結合Scikit-learn介紹幾種常用的特征選擇方法

  • https://download.csdn.net/download/luvky_girl/9767244

    比較了幾種常見的插值算法,包括線性插值,三次樣條插值,牛頓插值,多項式插值,cubic插值。

  • C# 操作文件源碼_幾種操作文件的方法封裝

    常用幾種操作文件的方法封裝 常用幾種操作文件的方法封裝 常用幾種操作文件的方法封裝

  • 幾種常用的表連接方式

    文檔中描述了 ,幾種常用的數據庫的 表連接方式。

  • 幾種常用通訊接口的詳細介紹

    在硬件開發過程中經常使用的幾種通訊接口的詳細介紹

  • 大數據架構商業之路:從業務需求到技術方案(全書)高清完整.pdf版下載

    編輯推薦   作者榮獲美國政府頒發的“美國杰出人才”稱號。大潤發中國區董事長、飛牛網首席執行董事黃明端先生與eBay全球零售科學高級總監逄偉先生作序力薦!   將技術與商業需求相結合,深入剖析大數據商業應用中的困惑與難題,幫助讀者更好地掌握技術支撐業務高速發展的方案! 內容簡介   目前大數據技術已經日趨成熟,但是業界發現與大數據相關的產品設計和研發仍然非常困難,技術、產品和商業的結合度還遠遠不夠。這主要是因為大數據涉及范圍廣、技術含量高、更新換代快,門檻也比其他大多數IT行業更高。人們要么使用昂貴的商業解決方案,要么花費巨大的精力摸索。本書通過一個虛擬的互聯網O2O創業故事,來逐步展開介紹創業各個階段可能遇到的大數據課題、業務需求,以及相對應的技術方案,甚至是實踐解析;讓讀者身臨其境,一起來探尋大數據的奧秘。書中會覆蓋較廣泛的技術點,并提供相應的背景知識介紹,對于想進一步深入研究細節的讀者,也可輕松獲得繼續閱讀的方向和指導性建議。 京東購買鏈接:https://item.jd.com/11915193.html

  • 幾種常用數據庫的連接 mysql sql server oracle

    幾種常用數據庫的連接 幾種常用數據庫的連接 幾種常用數據庫的連接

  • 大數據架構商業之路:從業務需求到技術方案.pdf(中文高清版)

  • 幾種備份比較

    以下是DSG公司的RealySnc產品與ORACLE自帶的幾種復制容災工具在一些技術指標標的比較,同時也可以做復制容災這個領域上的技術交流.

  • 大數據架構商業之路:從業務需求到技術方案 (大數據技術叢書)_黃申.epub

    大數據架構商業之路:從業務需求到技術方案 (大數據技術叢書)_黃申.epub 非掃描版

  • 幾種電路中常用的芯片說明文檔

    幾種電路中常用的芯片說明文檔幾種電路中常用的芯片說明文檔幾種電路中常用的芯片說明文檔幾種電路中常用的芯片說明文檔

  • 00-數據處理中的幾種常用數字濾波算法

    00-數據處理中的幾種常用數字濾波算法00-數據處理中的幾種常用數字濾波算法00-數據處理中的幾種常用數字濾波算法00-數據處理中的幾種常用數字濾波算法

Global site tag (gtag.js) - Google Analytics 真人娱乐官方网站 西充县| 商南县| 漳州市| 辽宁省| 孝义市| 公安县| 绍兴市| 青阳县| 石泉县| 萨迦县| 陆良县| 巴林右旗| 乐至县| 吉木乃县| 白沙| 黑河市| 遂昌县| 白玉县| 邛崃市| 连江县| 蕲春县| 洪洞县| 日土县| 贺州市| 正安县| 西藏| 万年县| 海晏县| 凌海市| 伊川县| 郯城县| 天长市| 合阳县| 武陟县| 临澧县| 依兰县| 包头市| 栖霞市| 邳州市| 兴化市| 日土县| 固阳县| 娄烦县| 平昌县| 鸡东县| 司法| 安丘市| 德清县| 西乌| 沾益县| 定安县| 太白县| 临沧市| 和顺县| 芮城县| 专栏| 黄陵县| 高陵县| 大同市| 武陟县| 马公市| 甘孜县| 武威市| 繁峙县| 府谷县| 合江县| 密山市| 滨海县| 鲜城| 行唐县| 普宁市| 墨玉县| 健康| 杂多县| 那曲县| 潼南县| 子长县| 庐江县| 江孜县| 东兴市| 保山市| 和平区| 涟源市| 疏附县| 开平市| 山阳县| 滁州市| 新巴尔虎右旗| 五家渠市| 长丰县| 蒙阴县| 永和县| 晋州市| 琼中| 高陵县| 连城县| 青岛市| 寿阳县| 海林市| 九江县| 巴中市| 克拉玛依市| 保山市| 农安县| 皮山县| 罗江县| 营口市| 渝中区| 家居| 满城县| 广德县| 禄劝| 乐陵市| 华安县| 沙坪坝区| 乌鲁木齐市| 巨野县| 稷山县| 安康市| 施甸县| 东乡县| 咸阳市| 新乐市| 大城县| 偃师市| 潼南县| 泊头市| 民乐县| 永宁县| 宾川县| 阆中市| 安康市| 公主岭市| 象山县| 逊克县| 连江县| 沈丘县|