上期我們說到大資料的概念,其實,大資料比我們想象中的還要複雜,本期,我們主要從技術的角度介紹一下大資料的知識。
大資料技術是一系列技術的總稱,它是集合了資料採集與傳輸、資料儲存、資料處理與分析、資料探勘、資料視覺化等技術,是乙個龐大而複雜的技術體系。
根據大資料從**到應用,實現傳輸的流程,可以將大資料技術架構分為資料收集層、資料儲存層、資料處理層、資料治理與建模層、資料應用層。
大資料技術架構圖
一、資料收集層
大資料收集層主要採用了大資料採集技術,實現對資料的etl操作,etl,是英文extract-transform-load的縮寫,資料從資料**端經過抽取(extract)、轉換(transform)、載入(load)到目的端。使用者從資料來源抽取出所需的資料,經過資料清洗,最終按照預先定義好的資料模型,將資料載入到資料倉儲中去,最後對資料倉儲中的資料進行資料分析和處理。資料採集位於資料分析生命週期的重要一環,它通過感測器資料、社交網路資料、移動網際網路資料等方式獲得各種型別的結構化、半結構化及非結構化的海量資料。由於採集的資料種類錯綜複雜,對於這種不同種類的資料。
在現實生活中,資料產生的種類很多,並且不同種類的資料產生的方式不同。對於大資料採集的資料型別,主要有以下三類:
(3)資料庫資料:些企業會使用傳統的關係型資料庫mysql和oracle等來儲存資料。除此之外,redis和mongodb這樣的nosql資料庫也常用於資料的採集。企業每時每刻產生的業務資料,以資料庫一行記錄形式被直接寫入到資料庫中。
資料採集技術
二、資料儲存層
當大量的資料收集完後,我們需要對大資料進行儲存。資料的儲存分為持久化儲存和非持久化儲存。持久化儲存表示把資料儲存在磁碟中,關機或斷電後,資料依然不會丟失。非持久化儲存表示把資料儲存在記憶體中,讀寫速度快,但是關機或斷電後,資料丟失。
對於持久化儲存而言,最關鍵的概念就是檔案系統和資料庫系統。常見的分布式檔案系統hdfs、對應的分布式非關係型資料庫系統hbase,以及另乙個非關係型資料庫mongodb。
而支援非持久化的系統,包括redis、berkeley db和memcached,則為前述的儲存資料庫提供了快取機制,可以大幅地提公升系統的響應速度,降低持久化儲存的壓力。
三、資料處理層
hadoop的mapreduce計算是一種非常適合的離線批處理框架。為了提公升效率,下一代的管理框架yarn和更迅速的計算框架spark最近幾年也在逐步的成型之中。在此基礎上,人們又提出了hive、pig、impala和spark sql等工具,進一步簡化了某些常見的查詢。
spark streaming和storm則在對映和歸約的思想基礎上,提供了流式計算框架,進一步提公升處理的實時性。
同時可以利用activemq和kafka這樣的訊息機制,將資料的變化及時推送到各個資料處理系統進行增量的更新。由於訊息機制的實時性更強,通常還會與spark streaming、storm這樣的流式計算結合起來使用。
四、資料治理與建模層
資料收集、資料儲存和資料處理是大資料架構的基礎設定。一般情況下,完成以上三個層次的資料工作,已經將資料轉化為基礎資料,為上層的業務應用提供支撐。但是大資料時代,資料型別多樣,單位價值稀疏的特點,要求對資料進行治理和融合建模。通過利用r語言、python等對資料進行etl預處理,然後再根據演算法模型、業務模型進行融合建模,從而更好地為業務應用提供優質底層資料。
在對資料進行etl處理和建模後,需要對獲取的資料進行進一步管理,可以採用相關的資料管理工具,包括元資料管理工具、資料質量管理工具、資料標準管理工具等,實現資料的全方位管理。
五、資料應用層
資料應用層是大資料技術和應用的目標。通常包括資訊檢索、關聯分析等功能。lucene、solr和elasticsearch這樣的開源專案為資訊檢索的實現提供了可能。
大資料架構為大資料的業務應用提供了一種通用的架構,還需要根據行業領域、公司技術積累以及業務場景,從業務需求、產品設計、技術選型到實現方案流程上具體問題具體分析,利用大資料視覺化技術,進一步深入,形成更為明確的應用,包括基於大資料交易與共享、基於開發平台的大資料應用、基於大資料的工具應用等。
大資料之大資料時代
下面,開啟第一講 大資料之大資料時代 講大資料一定脫離不開乙個大的背景。下面先從大資料背景講起。縱觀整個it發展史,也不過短短幾十年,在這幾十年裡,我們這個資訊化社會經歷了三次大的資訊化浪潮。第一次浪潮是在上個世紀90年代前,1980年前後,pc機進入市場,ibm公司制定了全球的pc標準,即一台電腦...
大資料架構 常見大資料技術
本文是一篇讀書筆記,源自 大資料架構詳解 part i 資料獲取 資料獲取元件 網頁採集 網路爬蟲 日誌收集 中介軟體技術 part ii 流處理 流的概念 流引擎 storm 流引擎 spark streaming 流引擎 flink part iii 互動式分析 互動式分析的概念 mpp db技...
什麼是大資料技術架構
大資料的應用開發過於偏向底層,具有學習難度大,涉及技術面廣的問題,這制約了大資料的普及。現在需要一種技術,把大資料開發中一些通用的,重複使用的基礎 演算法封裝為類庫,降低大資料的學習門檻,降低開發難度,提高大資料專案的開發效率。大資料在工作中的應用有三種 與業務相關,比如使用者畫像 風險控制等 與決...