閱讀更多

4頂
0踩

企業架構

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

2018-04-12 10:37 by 副主編 jihong10102006 評論(0) 有49826人瀏覽
數據分析工作雖然隱藏在業務系統背后,但是具有非常重要的作用,數據分析的結果對決策、業務發展有著舉足輕重的作用。隨著大數據技術的發展,數據挖掘、數據探索等專有名詞曝光度越來越高,但是在類似于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 條 請登錄后發表評論

發表評論

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

相關推薦

  • 常用的幾種大數據架構剖析

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

  • 數據架構及技術體系

    下面是大數據體系架構圖 大數據分2個部分,一部分是走實時的,另外一部分是走離線的,不管那塊都需要數據來分析 從上圖來看,數據分為結構化數據(MYSQL,ORACLE等),半結構數據(文件日志),非結構化數據(視頻,PPT等) 我們一般需要分析的數據 就是結構化的數據和非結構化的數據,非結構化數據可以存HDFS系統。 很多專業的東西后面在開博客另講,先大概了解數據流走向。 1,數據收集...

  • 深度解密 5 類大數據架構及實現

    前幾天讀到白發川的一篇文章《對比解讀五種主流大數據架構數據分析能力》,文中詳細總結了各類數據架構的應用以及原理。作為一名在數據倉庫耕耘多年的技術人員,對于其中的一些技術細節還是破解興趣的,所以隨著作者的思路寫下了我對主流數據架構的理解(如無特殊說明,以下涉及到這篇文章一律用《主流大數據架構》來代替)。 作者的原文地址如下: https://mp.weixin.qq.com/s?__biz=M...

  • 這5種必知的大數據處理框架技術,你的項目到底應該使用其中的哪幾種

    數據是收集、整理、處理大容量數據集,并從中獲得見解所需的非傳統戰略和技術的總稱。雖然處理數據所需的計算能力或存儲容量早已超過一臺計算機的上限,但這種計算類型的普遍性、規模,以及價值在最近幾年才經歷了大規模擴展。 本文將介紹大數據系統一個最基本的組件:處理框架。處理框架負責對系統中的數據進行計算,例如處理從非易失存儲中讀取的數據,或處理剛剛攝入到系統中的數據數據的計算則是指從大量單一數據點中提

  • 快手大數據架構演進實錄

    快手大數據架構團隊組建于 2017 年,短短三年間已搭建起一個萬億級規模的大數據架構體系。快手的大數據架構是怎樣演進的?在春晚紅包活動中遇到了哪些挑戰,又是如何應對的?在 Hadoop 的應用上,快手有何經驗可供業界參考?帶著這些問題,InfoQ 記者采訪了 QCon 北京 2020 調度系統實踐專題出品人,快手高級架構師、大數據架構團隊負責人趙健博。以下為采訪實錄。 能否詳細給我們介紹一下快手...

  • 常見的大數據架構都有哪些(一)

    數據的出現改變了很多行業的發展模式,使得這些行業都朝著更好的方向進發。今天我們來給大家講講大數據中非常重要的一個部分,就是大數據架構。一般來說,大數據不同的架構賦予大數據不同的功能,那么常見的大數據架構都有哪些呢?下面我們就給大家介紹一下這些內容。 常見的大數據架構有五種,它們分別是傳統的大數據架構、流式架構、Kappa架構、Lambda架構、Unifield架構...

  • Lambda架構已死,去ETL化的IOTA才是未來

    ?2018-04-11?郭煒?Analysys易觀? ?原文:https://mp.weixin.qq.com/s/G08jCKZ4J2BZTuCpqKKS9g經過這么多年的發展,已經從大數據1.0的BI/Datawarehouse時代,經過大數據2.0的Web/APP過渡,進入到了IOT的大數據3.0時代,而隨之而來的是數據架構的變化。?▌Lambda架構?在過去Lambda數據架構成為每一個公...

  • 《大數據架構詳解》讀后感

    《大數據架構詳解》 ——?讀后感作者:朱潔 羅華霖出版商:中國工信出版社 電子工業出版社版次:2016年10月第1版印數:7001 ~ 12000冊定價:69.00元本書花了大量筆墨講了通信運營商的大數據應用案例及其使用的架構,這也不奇怪,因為作者是為通信運營商做大數據解決方案的。作者服務的運營商大數據平臺架構,從上到下依次為———應用層? ? SQM、CSE、MSS、DMP,這些都是運營商特有的...

  • 學Python后到底能干什么?網友:我太難了

    感覺全世界營銷文都在推Python,但是找不到工作的話,又有哪個機構會站出來給我推薦工作? 筆者冷靜分析多方數據,想跟大家說:關于超越老牌霸主Java,過去幾年間Python一直都被寄予厚望。但是事實是雖然上升趨勢,但是國內環境下,一時間是無法馬上就超越Java的,也可以換句話說:超越Java只是時間問題罷。 太囂張了會Python的人!找工作拿高薪這么簡單? https://edu....

  • 在中國程序員是青春飯嗎?

    今年,我也32了 ,為了不給大家誤導,咨詢了獵頭、圈內好友,以及年過35歲的幾位老程序員……舍了老臉去揭人家傷疤……希望能給大家以幫助,記得幫我點贊哦。 目錄: 你以為的人生 一次又一次的傷害 獵頭界的真相 如何應對互聯網行業的「中年危機」 一、你以為的人生 剛入行時,拿著傲人的工資,想著好好干,以為我們的人生是這樣的: 等真到了那一天,你會發現,你的人生很可能是這樣的: ...

  • Auto.JS實現抖音,刷寶等刷視頻app,自動點贊,自動滑屏,自動切換視頻

    Auto.JS實現抖音,刷寶等刷視頻app,自動點贊,自動滑屏,自動切換視頻 代碼如下 auto(); var appName=rawInput("","刷寶短視頻"); launchApp(appName); sleep("5000"); setScreenMetrics(1080,1920); toast("1023732997"); sleep("3000"); var num = 200...

  • 畢業5年,我問遍了身邊的大佬,總結了他們的學習方法

    我問了身邊10個大佬,總結了他們的學習方法,原來成功都是有跡可循的。

  • 推薦10個堪稱神器的學習網站

    每天都會收到很多讀者的私信,問我:“二哥,有什么推薦的學習網站嗎?最近很浮躁,手頭的一些網站都看煩了,想看看二哥這里有什么新鮮貨。” 今天一早做了個惡夢,夢到被老板辭退了。雖然說在我們公司,只有我辭退老板的份,沒有老板辭退我這一說,但是還是被嚇得 4 點多都起來了。(主要是因為我掌握著公司所有的核心源碼,哈哈哈) 既然 4 點多起來,就得好好利用起來。于是我就挑選了 10 個堪稱神器的學習網站,推...

  • Java校招入職華為,半年后我跑路了

    何來 我,一個雙非本科弟弟,有幸在 19 屆的秋招中得到前東家華為(以下簡稱 hw)的賞識,當時秋招簽訂就業協議,說是入了某 java bg,之后一系列組織架構調整原因等等讓人無法理解的神操作,最終畢業前夕,被通知調往其他 bg 做嵌入式開發(純 C 語言)。 由于已至于校招末尾,之前拿到的其他 offer 又無法再收回,一時感到無力回天,只得默默接受。 畢業后,直接入職開始了嵌入式苦旅,由于從未...

  • 新來個技術總監,禁止我們使用Lombok!

    我有個學弟,在一家小型互聯網公司做Java后端開發,最近他們公司新來了一個技術總監,這位技術總監對技術細節很看重,一來公司之后就推出了很多"政策",比如定義了很多開發規范、日志規范、甚至是要求大家統一使用某一款IDE。 但是這些都不是我這個學弟和我吐槽的點,他真正和我吐槽的是,他很不能理解,這位新來的技術總監竟然禁止公司內部所有開發使用Lombok。但是又沒給出十分明確的,可以讓人信服的理由。 于...

  • 大學四年,因為知道這些開發工具,我成為別人眼中的大神

    親測全部都很好用,自己開發都離不開的軟件,如果你是學生可以看看,提前熟悉起來。

  • 在三線城市工作爽嗎?

    我是一名程序員,從正值青春年華的 24 歲回到三線城市洛陽工作,至今已經 6 年有余。一不小心又暴露了自己的實際年齡,但老讀者都知道,我駐顏有術,上次去看房子,業務員肯定地說:“小哥肯定比我小,我今年還不到 24。”我只好強顏歡笑:“你說得對。” 從我擁有記憶到現在進入而立之年,我覺得,我做過最明智的選擇有下面三個: 1)高中三年,和一位女同學保持著算不上朋友的冷淡關系;大學半年,把這位女同學追到...

  • 這些插件太強了,Chrome 必裝!尤其程序員!

    推薦 10 款我自己珍藏的 Chrome 瀏覽器插件

  • @程序員:GitHub這個項目快薅羊毛

    今天下午在朋友圈看到很多人都在發github的羊毛,一時沒明白是怎么回事。 后來上百度搜索了一下,原來真有這回事,畢竟資源主義的羊毛不少啊,1000刀刷爆了朋友圈!不知道你們的朋友圈有沒有看到類似的消息。 這到底是啥情況? 微軟開發者平臺GitHub 的一個區塊鏈項目 Handshake ,搞了一個招募新會員的活動,面向GitHub 上前 25萬名開發者派送 4,246.99 HNS幣,大約價...

  • 做了5年運維,靠著這份監控知識體系,我從3K變成了40K

    從來沒講過運維,因為我覺得運維這種東西不需要太多的知識面,然后我一個做了運維朋友告訴我大錯特錯,他就是從3K的運維一步步到40K的,甚至笑著說:我現在感覺自己什么都能做。 既然講,就講最重要的吧。 監控是整個運維乃至整個產品生命周期中最重要的一環,事前及時預警發現故障,事后提供詳實的數據用于追查定位問題。目前業界有很多不錯的開源產品可供選擇。選擇一款開源的監控系統,是一個省時省力、效率最高的方...

Global site tag (gtag.js) - Google Analytics 开心农场种蔬菜赚钱 温州麻将 中国股票下跌 测试今天打麻将运气 36选7最新开奖 鲁抗医药股票分析 豪利棋牌app 2019香港三肖期期中 福州麻将技巧顺口溜 分分彩是不是有人控制 20选5开奖中奖 现在还有实盘配资吗 腾讯棋牌欢乐斗地主 管家婆精选公开一肖一码 麻将小游戏 在线玩 分分彩ios软件下载 哪个捕鱼达人不用联网