大數據架構
首先從最底層的數據源來講,大數據包含的數據是各方各面的,所有在數據的來源上也是多種多樣的。從種類上來講大體上可以分為以下幾類:
日志數據:應用系統的運行日志,用戶訪問的行為日志等 DB數據:企業內部業務系統的數據,例如客戶管理系統的客戶數據,訂單系統的訂單數據,物流系統的物流數據等 流式數據:簡單的理解就是實時采集的數據,源源不斷像流水一樣產生的數據,例如淘寶上用戶的訪問記錄 互聯網數據:互聯網數據有兩種,一種是自己去采集的數據,一種是跟外部企業合作的數據,例如可以開發爬蟲程序去爬取網站上公開的信息,和淘寶京東合作利用客戶購買行為數據等 其他數據:還有一些其他方面的數據,例如硬件設備產生的數據,特別是現在IOT物聯網的火熱,就是將所有硬件設備的數據收集起來進行分析
Sqoop:一款用來在Hadoop(Hive)和關系型數據庫之間傳輸數據的工具,可以將一個關系型數據庫中的數據導入到HDFS(Hive)中,也可以將HDFS中的數據導入到關系型數據庫中,主要是針對于DB數據源的數據接入。 Flume:一個分布式的、高可靠的、高可用的將大批量的不同數據源的日志數據收集、聚合、移動到數據中心(HDFS)進行存儲的系統,主要針對于日志數據的收集和推送到數據倉庫,類似的還有ELK體系的Logstash組件。 Kafka:一個分布式流處理平臺,用于構造實時流數據管道,它可以在系統或應用之間可靠地獲取數據,具有高性能、持久化、多副本備份、橫向擴展能力,主要針對于流式數據的接入
說到數據存儲,大數據的發展歷史離不開一個叫Hadoop的家族產品,可以很直接的這么說,沒有Hadoop就沒有大數據,國內很多大數據公司一開始建立的數據存儲數倉都是基于Hadoop體系建立的,那么Hadoop到底是什么呢?
說到數據存儲,不得不說一下數據倉庫的架構,不同于傳統的業務系統使用的關系型數據庫,Hadoop一個分布式文件系統,存儲方式是按照文件的存儲方式,所以就有了數據倉庫架構的說法。
星型:一種使用關系數據庫實現多維分析空間的模式,稱為星型模式。星型模式的基本形式必須實現多維空間(常常被稱為方塊),以使用關系數據庫的基本功能。
雪花型:當星型模式的維度需要進行規范化時,星型模式就演進為雪花模式。
ODS層:ODS層主要是保存和來源數據一致的格式
- DIM層:DIM層主要用來存儲一些基礎的維度表,很少會改動
- MID層:MID層主要是用來處理根據業務邏輯和指標口徑篩選出來的數據
- DW層:DW層根據主題分類,將數據按照不同的主題建立數據表存儲和進行維度化
- DM層:DM層主要是面向應用層的建模,例如一張分析報表需要展示不同維度和指標的分析,那么根據這些維度和指標從DW層的不同主題分類中的數據關聯出來,形成一張數據表給報表使用。
java語言
從上文大數據架構來看,java語言主要可以應用于開發數據應用和大數據工具,
【我是蠟筆小添,專注IT前沿技術和科技資訊分享,我@蠟筆小添,我們一起學習交流探討】