天天看點

收藏!一張圖幫你快速建立大資料知識體系

收藏!一張圖幫你快速建立大資料知識體系

前言

最早提出“大資料”時代到來的是全球知名咨詢公司麥肯錫,麥肯錫稱:“資料,已經滲透到當今每一個行業和業務職能領域,成為重要的生産因素。人們對于海量資料的挖掘和運用,預示着新一波生産率增長和消費者盈餘浪潮的到來。”資料,讓一切有迹可循,讓一切有源可溯。我們每天都在産生資料,創造大資料和使用大資料,隻是,你,仍然渾然不知。

企業組織利用相關資料和分析可以幫助它們降低成本、提高效率、開發新産品、做出更明智的業務決策等等。大資料的價值,遠遠不止于此,大資料對各行各業的滲透,大大推動了社會生産和生活,未來必将産生重大而深遠的影響。

收藏!一張圖幫你快速建立大資料知識體系

具體展開圖(點選“閱讀原文”可下載下傳),詳細内容請看下文:

收藏!一張圖幫你快速建立大資料知識體系

一 大資料基礎技術

資料分片路由

在大資料的背景下,資料規模已經由 GP 跨越大屏 PB 的級别,單機明顯已經無法存儲與處理如此規模的資料量,隻能依靠大規模叢集來對這些資料進行存儲和處理。對于海量的資料,通過資料分片(Shard/Partition)來将資料進行切分到不同機器中去,分片以後,如何能夠找到某一條記錄。這就是資料的分片和路由。

資料複制 & 一緻性

在大資料的存儲系統中,為了增加系統的可靠性,往往會将同一份資料存儲多個副本。資料是如何複制?以及資料複制後帶來的一緻性問題如何的解決?

收藏!一張圖幫你快速建立大資料知識體系

大資料常用算法與資料結構

對于大資料或者大規模的分布式系統來說,如何能夠高效快速地進行海量資料的處理非常關鍵,而采用合适的資料結構和算法對于達成此目标至關重要。

二 資料采集

大資料的采集處于大資料生命周期的第一個環節,從資料采集的類型看不僅僅要涵蓋基礎的結構化資料,半結構化資料,以及非結構化資料音頻、視訊、圖像等。常見的資料采集方式包括系統日志采集、網絡資料采集、裝置資料采集。

系統日志采集

系統日志采集主要是對資料庫、系統、伺服器等運作狀态,行為事件等資料抓取。

  • 埋點:浏覽器(PC)打點、無線用戶端、服務端打點。
  • 資料采集架構:Chukwa、Splunk Forwarder、Flume、Fluentd、Logstash、Scribe。

網絡資料采集

網絡資料采集是指通過爬蟲或者公開 API 等方式從網站擷取資料。資料的内容可以是文本、視屏、圖檔資料等。

爬蟲技術:Nutch、Heritrix、Scrapy、WebCollector。

裝置資料采集

裝置資料采集主要是指針對一些實體裝置的資料采集,常見的如傳感器,探針。

三 資料傳輸

經過采集的資料通過資料通道被傳輸存儲。集中存儲的資料源的資料發生變化也能通過資料通道盡快地通知對資料敏感的相應應用或者系統建構,使得它們能夠盡快的捕獲資料的變化。

資料傳輸包含如下相關技術:消息隊列、資料同步、資料訂閱、序列化。

消息隊列

消息隊列是涉及大規模分布式系統時候經常使用的中間件産品,主要解決日志搜集,應用耦合,異步消息,流量削鋒等問題實作高性能,高可用,可伸縮和最終一緻性架構。

資料同步

在資料倉庫模組化中,未經任何加工處理的原始業務層資料,我們稱之為 ODS (Operational Data Store) 資料。在網際網路企業中,常見的 ODS 資料有業務日志資料(Log)和業務 DB 資料(DB)兩類。對于業務 DB 資料來說,從 MySQL 等關系型資料庫的業務資料進行采集,然後導入到資料倉庫中,是進一個重要環節。如何準确、高效地把 MySQL 資料同步到資料倉庫中?一般常用的解決方案是批量取數并 Load。資料同步解決各個資料源之間穩定高效的資料同步功能。

資料訂閱

資料訂閱功能旨在幫助使用者擷取實時增量資料,使用者能夠根據自身業務需求自由消費增量資料,例如實作緩存更新政策、業務異步解耦、異構資料源資料實時同步及含複雜 ETL 的資料實時同 步等多種業務場景。

序列化

序列化 (Serialization)是将對象的狀态資訊轉換為可以存儲或傳輸的形式的過程。資料序列化用于子產品通訊時,将對象序列化為通信流,高效的傳輸到另一個子產品,并提供反序列化還原資料。對于大資料傳輸場景下序列化的性能、大小也直接影響了資料傳輸的性能。

四 資料組織內建

資料存儲

大資料存儲面向海量、異構、大規模結構化非結構化等資料提供高性能高可靠的存儲以及通路能力,通過優化存儲優化存儲基礎設施、提供高性能。高吞吐率、大容量的資料存儲方案,解決巨大資料量的存儲問題,同時為大規模資料分析、計算、加工提供支撐。

收藏!一張圖幫你快速建立大資料知識體系

實體存儲

随着主機、磁盤、網絡等技術的發展,資料存儲的方式和架構也在一直不停改變。

根據伺服器類型,我們将存儲的分類分為:

  • 封閉系統的存儲(封閉系統主要指大型機)
  • 開放系統的存儲(開放系統指基于 Windows、UNIX、Linux 等作業系統的伺服器)

開放系統的存儲分為:

  • 内置存儲
  • 外挂存儲

外挂存儲根據連接配接的方式分為:

  • 直連式存儲(Direct-Attached Storage,簡稱 DAS)
  • 網絡化存儲(Fabric-Attached Storage,簡稱 FAS)

網絡化存儲根據傳輸協定又分為:

  • 網絡接入存儲(Network-Attached Storage,簡稱 NAS)
  • 存儲區域網絡(Storage Area Network,簡稱 SAN)

針對不同的應用場景,選擇的分布式存儲方案也會不同,是以有了對象存儲、塊存儲、檔案系統存儲。

收藏!一張圖幫你快速建立大資料知識體系

分布式檔案/對象存儲系統

分布式存儲系統面向海量資料的存儲通路與共享需求,提供基于多存儲節點的高性能,高可靠和可伸縮性的資料存儲和通路能力,實作分布式存儲節點上多使用者的通路共享。

目前業界比較流行的分布式存儲系統如下:HDFS、OpenStack Swift、Ceph、GlusterFS、Lustre、AFS、OSS。

分布式關系型資料庫

随着傳統的資料庫技術日趨成熟、計算機網絡技術的飛速發展和應用範圍的擴大,以分布式為主要特征的資料庫系統的研究與開發受到人們的注意。關系型資料庫也是建立在關系模型基礎上的資料庫,借助于集合代數等數學概念和方法來處理資料庫中的資料。由于集中式關系型資料庫系統的不足(性能、擴充性),分布式關系型資料庫目前越來越多。

目前業界比較流行的分布式關系型資料庫如下:DRDS、TiDB、GreenPlum、Cobar、Aurora、Mycat。

分析型資料庫

分析資料庫是面向分析應用的資料庫,與傳統的資料庫不同,它可以對資料進行線上統計、資料在 線分析、随即查詢等發掘資訊資料價值的工作,是資料庫産品一個重要的分支。

目前業界比較流行的分析型資料庫如下:Kylin、AnalyticDB、Druid、Clickhouse、Vertica、MonetDB、InfiniDB、LucidDB。

搜尋引擎

大資料時代,如何幫助使用者從海量資訊中快速準确搜尋到目标内容,就需要搜尋引擎。大資料搜尋引擎是一個提供分布式,高性能、高可用、可伸縮的搜尋和分析系統。

目前常見的搜尋引擎技術如下:Elasticsearch、Solr、OpenSearch。

圖資料庫

圖資料庫源起歐拉和圖理論,也可稱為面向/基于圖的資料庫,對應的英文是 Graph Database。圖形資料庫是 NoSQL 資料庫的一種類型,它應用圖形理論存儲實體之間的關系資訊。圖形資料庫是一種非關系型資料庫,它應用圖形理論存儲實體之間的關系資訊。最常見例子就是社會網絡中人與人之間的關系。圖資料庫的基本含義是以“圖”這種資料結構存儲和查詢資料,而不是存儲圖檔的資料庫。它的資料模型主要是以節點和關系(邊)來展現,也可處理鍵值對。它的優點是快速解決複雜的關系問題。

目前業界比較流行的圖資料庫如下:Titan、Neo4J、ArangoDB、OrientDB、MapGraph、ALLEGROGRAPH。

列存儲資料庫

列式資料庫是以列相關存儲架構進行資料存儲的資料庫,主要适合于批量資料處理和即時查詢。相對應的是行式資料庫,資料以行相關的存儲體系架構進行空間配置設定,主要适合于大批量的資料處理,常用于聯機事務型資料處理。

目前業界比較流行的列存儲資料庫如下:Phoenix、Cassandra、Hbase、Kudu、Hypertable。

文檔資料庫

文檔型資料庫是 NoSQL 中非常重要的一個分支,它主要用來存儲、索引并管理面向文檔的資料或者類似的半結構化資料。

目前業界比較流行的文檔型資料庫如下:MongoDb、CouchDB、OrientDB、MarkLogic。

鍵值存儲資料庫

目前業界比較流行的鍵值存儲資料庫如下:Redis、Memcached、Tair。

資料計算

大資料計算主要完成海量資料并行處理、分析挖掘等面向業務需求。大資料計算通過将海量的資料分片,多個計算節點并行化執行,實作高性能、高可靠的資料處理,同時提供分布式任務管理和排程的支撐。針對不同的資料處理需求,主要有大規模批量處理、流式計算、圖計算、即席分析等多種計算。

收藏!一張圖幫你快速建立大資料知識體系

流式計算(Streaming compute)

流式計算:利用分布式的思想和方法,對海量“流”式資料進行實時處理。流式計算更加強調計算資料流和低延遲時間。這邊所謂的流資料( streaming data)是一種不斷增長的,無限的資料集。

流式計算是否等于實時計算?習慣上實時和流式等價,但其實這種觀點并不完全正确。資料的發生的時間和處理時間有可能是不一緻的,隻能說流式計算是一種低延遲的計算方式。

注意:本文将微批處理和流處理混在一起。

業界常見的流式計算架構:Storm、Flink、Yahoo S4、Kafka Stream、Twitter Heron、Apache Samza、Spark Streaming。

大規模批量計算(batch compute)

大規模批量計算是對存儲的靜态資料進行大規模并行批處理的計算。批量計算是一種批量、高時延、主動發起的計算。習慣上我們認為離線和批量等價,但其實是不準确的。離線計算一般是指資料處理的延遲。這裡有兩方面的含義第一就是資料是有延遲的,第二是是時間處理是延遲。在資料是實時的情況下,假設一種情況:當我們擁有一個非常強大的硬體系統,可以毫秒級的處理 Gb 級别的資料,那麼批量計算也可以毫秒級得到統計結果。

業界常見的大規模批量計算架構:Tez、MapReduce、Hive、Spark、Pig、大資料的程式設計模型 Apache Beam。

即席查詢分析 (ad-hoc query)

大資料進行即席查詢分析近兩年日益成為關注領域。即席查詢(Ad Hoc)是使用者根據自己的需求,靈活的選擇查詢條件,系統能夠根據條件快速的進行查詢分析傳回結果。即席查詢和分析的計算模式兼具了良好的時效性與靈活性,是對批處理,流計算兩大計算模式有力補充。大規模批量計算解決了大資料量批處理的問題,而即席查詢分析則解決了适合商業智能分析人員的便捷互動式分析的問題。

業界常見的架構:Impala、Hawq、Dremel、Drill、Phoenix、Tajo、Presto、Hortonworks Stinger。

全量計算 & 增量計算

很多大資料的任務中,資料是一個增量收集和更新的過程,這時候對于資料的處理可以使是全量加上增量計算的方式。增量計算隻對部分新增資料進行計算來極大提升計算過程的效率,可應用到資料增量或周期性更新的場合。典型例子就是搜尋引擎的周期性索引更新。

相關基礎知識:Lambda 架構、Kappa 架構、IOTA 架構。

業界常見架構:Microsoft Kineograph、Galaxy、Google Percolator、Druid。

圖計算

圖計算是一類在實際應用中非常常見的計算類型。許多大資料都是以大規模圖或網絡的形式呈現,如社交網絡、傳染病傳播途徑、交通事故對路網的影響許多非圖結構的大資料,也常常會被轉換為圖模型後進行分析。圖資料結構很好地表達了資料之間的關聯性。要處理規模巨大的圖資料,傳統的單機處理方式已經無力處理,必須采用大規模機器叢集構成的并行資料庫。

相關基礎知識:GAS 程式設計模型、BSP 模型、節點為中心程式設計模型、計算範型。

業界常見架構:Pregel、GraphChi、Spark GraphX、PowerGrah、Apache Giraph、Apache Hama。

分布式協調系統

大規模分布式系統中需要解決各種類型的協調需求,例如當當系統中加入一個程序或者實體機,如何自動擷取參數和配置,當程序和實體機發生改變如何通知其他程序;單主要服務發生癱瘓,如何能夠從備份中選取新的主要服務。分布式協調系統适用于大型的分布式系統,可以提供 統一命名服務、狀态同步服務、叢集管理、分布式應用配置項的管理等服務。

業界常見架構:Chubby、阿裡 Diamond、阿裡 ConfigServer、zookeeper、Eureka、Consul。

叢集資源管理和排程

資源管理排程的本質是叢集、資料中心級别的資源統一管理和配置設定,以提高效率。其中,多租戶、彈性計算、動态配置設定是資源管理系統要核心解決問題。

管理排程架構:Omega、Brog、Mesos、Corona、Yarn、Torca。

管理和監控工具:Ambari、Chukwa、Hue。

工作流管理引擎

随着企業的發展,他們的工作流程變得更加複雜,越來越多的有着錯綜複雜依賴關系的工作流需要增加監控,故障排除。如果沒有明确的血緣關系。就可能出現問責問題,對中繼資料的操作也可能丢失。這就是有向無環圖(DAG),資料管道和工作流管理器發揮作用的地方。

複雜的工作流程可以通過 DAG 來表示。DAG 是一種圖結構。資訊必須沿特定方向在頂點間傳遞,但資訊無法通過循環傳回起點。DAG 的建構是資料管道,或者是一個程序的輸入成為下一個程序的輸入的順序程序。

建構這些管道可能會很棘手,但幸運的是,有幾個開源的工作流管理器可用于解決這個問題,允許程式員專注于單個任務和依賴關系。

業界常見架構:Oozie、Azkaban、Luigi、Airflow。

資料倉庫

随着資料庫技術和管理系統的不斷發展和普及,人們已不再滿足于一般的業務處理。同時随着資料量的不斷增大,如何能夠更好地利用資料,将資料轉化成商業價值,已經成為人們越來越關心的問題。

舉例來說,資料庫系統可以很好地解決事務處理,實作對資料的“增删改查”等功能,但是卻不能提供很好的決策分析支援。因為事務處理首先考慮響應的及時性,多數情況都是在處理目前資料,而決策分析需要考慮的是資料的內建性和曆史性,可能對分析處理的時效性要求不高。是以為了提高決策分析的有效性和完整性,人們逐漸将一部分或者大部分資料從聯機事物處理系統中剝離出來,形成今天的資料倉庫系統。

收藏!一張圖幫你快速建立大資料知識體系

資料挖掘

分析挖掘是通過算法從大資料紅提煉出具有價值的資訊和知識的過程。以機器和算法為主導,充分發揮機器在資料分析挖掘中的效率和可靠性的優勢,提供對結構化資料以及文本、圖像、視訊和語言等非結構資料分析挖掘。資料分析挖掘包括一些通用的資料挖掘方法,也包括深度學習,機器學習,統計分析等。

收藏!一張圖幫你快速建立大資料知識體系

資料測試

收藏!一張圖幫你快速建立大資料知識體系

五 資料應用

大資料應用是整個大資料生命周期中最重要的一個環節之一。随着大資料應用越來越廣泛,應用的行業也越來越低,每天都可以看到大資料的一些新奇的應用,進而幫助人們從中擷取到真正有用的價值。下面和大家介紹下大資料應用方面相關技術。

基本概念

收藏!一張圖幫你快速建立大資料知識體系

資料服務

收藏!一張圖幫你快速建立大資料知識體系

資料可視化

人類的眼睛是一對高帶寬巨量視覺信号輸入的并行處理器,擁有超強模式識别能力,配合超過 50% 功能用于視覺感覺相關處理的大腦,使得人類通過視覺擷取資料比任何其他形式的擷取方式更好,大量視覺資訊在潛意識階段就被處理完成,人類對圖像的處理速度比文本快 6 萬倍。

資料可視化正是利用人類天生技能來增強資料處理群組織效率。

收藏!一張圖幫你快速建立大資料知識體系

資料共享

收藏!一張圖幫你快速建立大資料知識體系

資料預警

收藏!一張圖幫你快速建立大資料知識體系

應用部署

收藏!一張圖幫你快速建立大資料知識體系

六 資料治理

過去的十年,我們經曆了資料量高速膨脹的時期,這些海量的、分散在不同角落的異構資料導緻了資料資源的價值低、應用難度大等問題。如何将海量資料應用于決策、營銷和産品創新?如何利用大資料平台優化産品、流程和服務?如何利用大資料更科學地制定公共政策、實作社會治理?所有這一切,都離不開大資料治理。可以說,在大資料戰略從頂層設計到底層實作的“落地”過程中,治理是基礎,技術是承載,分析是手段,應用是目的。這個時候資料治理體系建設可能不是一個選擇,而是唯一的出路。

收藏!一張圖幫你快速建立大資料知識體系

資料治理相關概念

收藏!一張圖幫你快速建立大資料知識體系

中繼資料管理

中繼資料 MetaData 狹義的解釋是用來描述資料的資料,廣義的來看,除了業務邏輯直接讀寫處理的那些業務資料,所有其它用來維持整個系統運轉所需的資訊/資料都可以叫作中繼資料。比如資料表格的 Schema 資訊,任務的血緣關系,使用者和腳本/任務的權限映射關系資訊等等。

管理這些附加 MetaData 資訊的目的,一方面是為了讓使用者能夠更高效的挖掘和使用資料,另一方面是為了讓平台管理人員能更加有效的做好系統的維護管理工作。

收藏!一張圖幫你快速建立大資料知識體系

資料品質

收藏!一張圖幫你快速建立大資料知識體系

資料安全

沒有安全做保障,一切大資料應用都是空談。資料業務未來最大的挑戰就是如何安全落地。特别是随着一些列資料安全的問題發生,對大資料的保護成為全球關注的熱點。各個企業特别是掌握了海量使用者資訊的大型企業,有責任也有義務去保護資料的安全。

收藏!一張圖幫你快速建立大資料知識體系

點選這裡 可下載下傳完整大資料知識體系圖。