對海量資料進行儲存、計算、分析、挖掘處理需要依賴一系列的大資料技術,而大資料技術又涉及了分散式計算、高併發處理、高可用處理、叢集、實時性計算等,可以說是彙集了當前 IT 領域熱門流行的 IT 技術。
本文對大資料技術知識體系進行劃分,共分為基礎技術、資料採集、資料傳輸、資料組織整合、資料應用、資料治理,進行相關的闡述說明,並列出目前業界主流的相關框架、系統、資料庫、工具等。
前言
最早提出“大資料”時代到來的是全球知名諮詢公司麥肯錫,麥肯錫稱:“資料,已經滲透到當今每一個行業和業務職能領域,成為重要的生產因素。人們對於海量資料的挖掘和運用,預示著新一波生產率增長和消費者盈餘浪潮的到來。”
資料,讓一切有跡可循,讓一切有源可溯。我們每天都在產生資料,創造大資料和使用大資料,只是,你,仍然渾然不知。
企業組織利用相關資料和分析可以幫助它們降低成本、提高效率、開發新產品、做出更明智的業務決策等等。大資料的價值,遠遠不止於此,大資料對各行各業的滲透,大大推動了社會生產和生活,未來必將產生重大而深遠的影響。
一 、大資料基礎技術
資料分片路由
在大資料的背景下,資料規模已經由 GP 跨越大屏 PB 的級別,單機明顯已經無法儲存與處理如此規模的資料量,只能依靠大規模叢集來對這些資料進行儲存和處理。對於海量的資料,透過資料分片來將資料進行切分到不同機器中去,分片以後,如何能夠找到某一條記錄。這就是資料的分片和路由。
資料複製 & 一致性
在大資料的儲存系統中,為了增加系統的可靠性,往往會將同一份資料儲存多個副本。資料是如何複製?以及資料複製後帶來的一致性問題如何的解決?
大資料常用演算法與資料結構
對於大資料或者大規模的分散式系統來說,如何能夠高效快速地進行海量資料的處理非常關鍵,而採用合適的資料結構和演算法對於達成此目標至關重要。
二 、資料採集
大資料的採集處於大資料生命週期的第一個環節,從資料採集的型別看不僅僅要涵蓋基礎的結構化資料,半結構化資料,以及非結構化資料音訊、影片、影象等。常見的資料採集方式包括系統日誌採集、網路資料採集、裝置資料採集。
系統日誌採集
系統日誌採集主要是對資料庫、系統、伺服器等執行狀態,行為事件等資料抓取。
埋點:瀏覽器打點、無線客戶端、服務端打點;
資料採集框架:Chukwa、Splunk Forwarder、Flume、Fluentd、Logstash、Scribe。
網路資料採集
網路資料採集是指透過爬蟲或者公開 API 等方式從網站獲取資料。資料的內容可以是文字、視屏、圖片資料等。
爬蟲技術:Nutch、Heritrix、Scrapy、WebCollector。
裝置資料採集
裝置資料採集主要是指標對一些物理裝置的資料採集,常見的如感測器,探針。
三、資料傳輸
經過採集的資料透過資料通道被傳輸儲存。集中儲存的資料來源的資料發生變化也能透過資料通道盡快地通知對資料敏感的相應應用或者系統構建,使得它們能夠儘快的捕獲資料的變化。
資料傳輸包含如下相關技術:訊息佇列、資料同步、資料訂閱、序列化。
訊息佇列
訊息佇列是涉及大規模分散式系統時候經常使用的中介軟體產品,主要解決日誌蒐集,應用耦合,非同步訊息,流量削鋒等問題實現高效能,高可用,可伸縮和最終一致性架構。
資料同步
在資料倉庫建模中,未經任何加工處理的原始業務層資料,我們稱之為 ODS 資料。在網際網路企業中,常見的 ODS 資料有業務日誌資料和業務 DB 資料兩類。對於業務 DB 資料來說,從 MySQL 等關係型資料庫的業務資料進行採集,然後匯入到資料倉庫中,是進一個重要環節。如何準確、高效地把 MySQL 資料同步到資料倉庫中?一般常用的解決方案是批次取數並 Load。資料同步解決各個資料來源之間穩定高效的資料同步功能。
資料訂閱
資料訂閱功能旨在幫助使用者獲取實時增量資料,使用者能夠根據自身業務需求自由消費增量資料,例如實現快取更新策略、業務非同步解耦、異構資料來源資料實時同步及含複雜 ETL 的資料實時同 步等多種業務場景。
序列化
序列化
大資料進行即席查詢分析近兩年日益成為關注領域。即席查詢是使用者根據自己的需求,靈活的選擇查詢條件,系統能夠根據條件快速的進行查詢分析返回結果。即席查詢和分析的計算模式兼具了良好的時效性與靈活性,是對批處理,流計算兩大計算模式有力補充。大規模批次計算解決了大資料量批處理的問題,而即席查詢分析則解決了適合商業智慧分析人員的便捷互動式分析的問題。
業界常見的框架:Impala、Hawq、Dremel、Drill、Phoenix、Tajo、Presto、Hortonworks Stinger。
4)全量計算 & 增量計算
很多大資料的任務中,資料是一個增量收集和更新的過程,這時候對於資料的處理可以使是全量加上增量計算的方式。增量計算只對部分新增資料進行計算來極大提升計算過程的效率,可應用到資料增量或週期性更新的場合。典型例子就是搜尋引擎的週期性索引更新。
相關基礎知識:Lambda 架構、Kappa 架構、IOTA 架構。
業界常見框架:Microsoft Kineograph、Galaxy、Google Percolator、Druid。
5)圖計算
圖計算是一類在實際應用中非常常見的計算型別。許多大資料都是以大規模圖或網路的形式呈現,如社交網路、傳染病傳播途徑、交通事故對路網的影響許多非圖結構的大資料,也常常會被轉換為圖模型後進行分析。圖資料結構很好地表達了資料之間的關聯性。要處理規模巨大的圖資料,傳統的單機處理方式已經無力處理,必須採用大規模機器叢集構成的並行資料庫。
相關基礎知識:GAS 程式設計模型、BSP 模型、節點為中心程式設計模型、計算範型。
業界常見框架:Pregel、GraphChi、Spark GraphX、PowerGrah、Apache Giraph、Apache Hama。
6)分散式協調系統
大規模分散式系統中需要解決各種型別的協調需求,例如噹噹系統中加入一個程序或者物理機,如何自動獲取引數和配置,當程序和物理機發生改變如何通知其他程序;單主控服務發生癱瘓,如何能夠從備份中選取新的主控服務。分散式協調系統適用於大型的分散式系統,可以提供 統一命名服務、狀態同步服務、叢集管理、分散式應用配置項的管理等服務。
業界常見框架:Chubby、阿里 Diamond、阿里 ConfigServer、zookeeper、Eureka、Consul。
7)叢集資源管理和排程
資源管理排程的本質是叢集、資料中心級別的資源統一管理和分配,以提高效率。其中,多租戶、彈性計算、動態分配是資源管理系統要核心解決問題。
管理排程框架:Omega、Brog、Mesos、Corona、Yarn、Torca。
管理和監控工具:Ambari、Chukwa、Hue。
8)工作流管理引擎
隨著企業的發展,他們的工作流程變得更加複雜,越來越多的有著錯綜複雜依賴關係的工作流需要增加監控,故障排除。如果沒有明確的血緣關係。就可能出現問責問題,對元資料的操作也可能丟失。這就是有向無環圖,資料管道和工作流管理器發揮作用的地方。
複雜的工作流程可以透過 DAG 來表示。DAG 是一種圖結構。資訊必須沿特定方向在頂點間傳遞,但資訊無法透過迴圈返回起點。DAG 的構建是資料管道,或者是一個程序的輸入成為下一個程序的輸入的順序程序。
構建這些管道可能會很棘手,但幸運的是,有幾個開源的工作流管理器可用於解決這個問題,允許程式設計師專注於單個任務和依賴關係。
業界常見框架:Oozie、Azkaban、Luigi、Airflow。
資料倉庫
隨著資料庫技術和管理系統的不斷髮展和普及,人們已不再滿足於一般的業務處理。同時隨著資料量的不斷增大,如何能夠更好地利用資料,將資料轉化成商業價值,已經成為人們越來越關心的問題。
舉例來說,資料庫系統可以很好地解決事務處理,實現對資料的“增刪改查”等功能,但是卻不能提供很好的決策分析支援。因為事務處理首先考慮響應的及時性,多數情況都是在處理當前資料,而決策分析需要考慮的是資料的整合性和歷史性,可能對分析處理的時效性要求不高。所以為了提高決策分析的有效性和完整性,人們逐漸將一部分或者大部分資料從聯機事物處理系統中剝離出來,形成今天的資料倉庫系統。
資料探勘
分析挖掘是透過演算法從大資料紅提煉出具有價值的資訊和知識的過程。以機器和演算法為主導,充分發揮機器在資料分析挖掘中的效率和可靠性的優勢,提供對結構化資料以及文字、影象、影片和語言等非結構資料分析挖掘。資料分析挖掘包括一些通用的資料探勘方法,也包括深度學習,機器學習,統計分析等。
資料測試
五、資料應用
大資料應用是整個大資料生命週期中最重要的一個環節之一。隨著大資料應用越來越廣泛,應用的行業也越來越低,每天都可以看到大資料的一些新奇的應用,從而幫助人們從中獲取到真正有用的價值。下面和大家介紹下大資料應用方面相關技術。
基本概念
資料服務
資料視覺化
人類的眼睛是一對高頻寬巨量視覺訊號輸入的並行處理器,擁有超強模式識別能力,配合超過 50% 功能用於視覺感知相關處理的大腦,使得人類透過視覺獲取資料比任何其他形式的獲取方式更好,大量視覺資訊在潛意識階段就被處理完成,人類對影象的處理速度比文字快 6 萬倍。
資料視覺化正是利用人類天生技能來增強資料處理和組織效率。
資料共享
資料預警
應用部署
六、資料治理
過去的十年,我們經歷了資料量高速膨脹的時期,這些海量的、分散在不同角落的異構資料導致了資料資源的價值低、應用難度大等問題。如何將海量資料應用於決策、營銷和產品創新?如何利用大資料平臺最佳化產品、流程和服務?如何利用大資料更科學地制定公共政策、實現社會治理?
所有這一切,都離不開大資料治理。可以說,在大資料戰略從頂層設計到底層實現的“落地”過程中,治理是基礎,技術是承載,分析是手段,應用是目的。這個時候資料治理體系建設可能不是一個選擇,而是唯一的出路。
資料治理相關概念
元資料管理
元資料 MetaData 狹義的解釋是用來描述資料的資料,廣義的來看,除了業務邏輯直接讀寫處理的那些業務資料,所有其它用來維持整個系統運轉所需的資訊/資料都可以叫作元資料。比如資料表格的 Schema 資訊,任務的血緣關係,使用者和指令碼/任務的許可權對映關係資訊等等。
管理這些附加 MetaData 資訊的目的,一方面是為了讓使用者能夠更高效的挖掘和使用資料,另一方面是為了讓平臺管理人員能更加有效的做好系統的維護管理工作。
資料質量
資料安全
沒有安全做保障,一切大資料應用都是空談。資料業務未來最大的挑戰就是如何安全落地。特別是隨著一些列資料安全的問題發生,對大資料的保護成為全球關注的熱點。各個企業特別是掌握了海量使用者資訊的大型企業,有責任也有義務去保護資料的安全。
我們正在經歷一個數據量高速膨脹的時代,但這些海量的、分散的異構資料導致了資料資源價值低、應用難度大等問題。
如何將海量資料充分挖掘與運用,來支撐決策、驅動業務發展、進行產品創新?如何利用大資料平臺最佳化流程、服務、產品?可以說,所有的一切都離不開資料治理與資料資產管理。
11月6日,DAMS中國資料智慧管理峰會將在上海舉辦,專設,部分議題如下:
《大資料資產管理平臺的設計、研發、運營實踐》中國聯通 大資料基礎平臺負責人/高階架構師 尹正軍
《騰訊遊戲大資料資產管理實戰:元資料管理與資料治理》 騰訊遊戲 大資料管理負責人 劉天斯
《位元組跳動資料治理實踐》今日頭條 資料BP/資料治理負責人 任長延