阿里大数据分析与应用(part2)--大数据分析的流程与常用技术
學習筆記,僅供參考,有錯必糾
學習自:云中學院大數據課堂
文章目錄
- 大數據分析流程
- 數據采集方法
- 大數據采集方法
- 離線數據采集ETL
- 實時數據采集與處理
- 數據預處理技術
- 數據集成
- 數據清洗
- 數據變換
- 數據規約
- 數據存儲與管理
- 分布式文件系統-HDFS
- 分布式列存數據庫 – HBase
- 內存數據庫 – Redis
- 消息分發和存儲 – Kafka
- 非結構化數據存儲 – OSS
- 數據分析處理技術
- 離線批處理
- MapReduce
- 通用計算框架 – Spark
- 實時流處理
- 大數據分析方法
- 數據挖掘
- 機器學習
- 數據可視化
- 數據可視化技術
- 數據可視化常見方法
- 常見可視化圖表
- 圖表類型的使用場景
大數據分析流程
數據采集:
-
實時數據采集:Flume、Fluented、Splunk、DataHub…
-
離線數據采集ETL: Sqoop、DataX…
數據存儲與管理:
-
數據存儲:關系數據庫、mpp數據庫、NoSQL數據庫、分布式文件系統
-
數據倉庫建模
-
元數據管理
-
數據質量控制
-
數據安全管理
數據計算:
-
多維統計分析
-
大規模并行計算框架
-
數據挖掘、機器學習模型與算法
-
分布式式實時計算
-
交互式分析
數據應用:
-
數據報表
-
可視化展現
-
數據服務
-
數據分享
數據采集方法
大數據采集方法
離線數據采集ETL
ETL是Extract、 Transform、 Loading三個字母的縮寫,即抽取、轉換、裝載。
目前市場上主流的ETL工具有:
-
Informatica PowerCenter
-
IBM DataStage
-
開源 Kettle
-
阿里云DataX
實時數據采集與處理
采集工具工具:
-
Flume
-
Kafka
-
DataHub
數據預處理技術
數據集成
**數據集成:**針對來自不同數據源的數據,進行合并并整理,形成統一的數據視圖
需要考慮的問題:
-
識別和匹配相關實體及數據:從核心信息開始,逐步匹配擴展到其他相關信息
-
統一的元數據定義:表名、字段名、類型、單位(量綱)等
-
統一的數據取值:通過映射規則(Mapping)進行轉換,保持數據一致性
-
冗余數據處理:對于重復數據進行刪除;對于相關性大的數據進行適當處理
數據清洗
**數據清洗:**針對原始數據,對出現的噪聲進行修復、平滑或者剔除。包括異常值、缺失值、重復記錄、錯誤記錄等;同時,過濾掉不用的數據,包括某些行或某些列。
噪聲數據處理:
-
異常值
- 刪除、當做缺失值、忽略
- 分箱:箱均勻、箱中位數或箱邊界、平滑數據
-
缺失值
- 統計值填充:均值、眾數、中位數
- 固定值填充:填充指定值
- 最接近記錄值填充:與該樣本最接近的相同字段值
- 模型擬合填充:填充回歸或其他模型預測值
- 插值填充:建立插值函數,如拉格朗日插值法、牛頓插值法等
數據變換
**數據變換:**對數據進行變換處理,使數據更適合當前任務或者算法的需要。
常見的變換方式:
-
使用簡單函數進行變換
- 方根和乘方變換
- 對數和指數變換
- 插值和比例變換
- 數據規范化
-
歸一化
- 標準化
- 中心化
- 連續值離散化
- 分裂法
- 合并法
數據規約
**數據規約:**在盡可能保持數據原貌的前提下,最大限度地精簡數據量。主要包括屬性選擇和數據抽樣兩種方法。
數據抽樣:
-
簡單隨機抽樣:每個樣本被抽到的概率相等,隨機從總體中獲得指定個數的樣本數據
-
系統抽樣:也叫等距抽樣,整體按某種順序排列后,隨機抽取第一個樣本,然后順序抽取其余樣本
-
分層抽樣:將總體分成多個不交叉的群,隨機抽取若干個群
-
連續抽樣:先抽樣,基于樣本分析,根據分析結果決定要不要繼續抽樣
-
多階段抽樣:抽樣分階段進行,每個階段使用的抽樣方法可以不同
-
Bootstrap重抽樣:樣本量不足時,有回放的重復抽樣
數據存儲與管理
分布式文件系統-HDFS
Hadoop是一個分布式系統基礎架構,由Apache基金會開發。用戶可以在不了解分布式底層細節的情況下,開發分布式程序,充分利用集群的威力高速運算和存儲。Hadoop實現了一個分布式文件系統(Hadoop Distributed File System),簡稱HDFS。
HDFS有著高容錯性的特點,并且設計用來部署在低廉的硬件上,HDFS 集群包含:
-
一個主節點(NameNode)
-
多個從屬節點(DataNodes )
-
多個客戶端訪問
分布式列存數據庫 – HBase
HBase是一個構建在HDFS上的分布式列存儲系統,用于海量結構化、半結構化數據存儲。HBase的目標是處理非常龐大的表,超過10億行、數百萬列。它有如下特點:
-
高可靠、高性能
-
水平擴展、可伸縮
-
面向列
內存數據庫 – Redis
Redis是一個開源的可基于內存亦可持久化的日志型、Key-Value內存數據庫。也可作為消息的發布、訂閱。它有如下特點:
-
高性能、高可用
-
豐富數據類型
-
支持事務
-
豐富客戶端、多種語言API
消息分發和存儲 – Kafka
Kafka是分布式發布-訂閱消息系統,是可劃分的、多訂閱者、冗余備份、持久性的日志服務。主要用于處理流式數據。它的特點是:
-
高吞吐量
-
分布式、易擴展
-
支持在線、離線
非結構化數據存儲 – OSS
阿里云對象存儲服務(Object Storage Service,OSS)是一種海量、安全、低成本、高可靠的云存儲服務,適合存放任意類型的文件。容量和處理能力彈性擴展,多種存儲類型供選擇,全面優化存儲成本。它的特點是:
-
高可靠性
-
安全
-
低成本
-
豐富、強大的增值服務
數據分析處理技術
離線批處理
MapReduce
把一個復雜的任務,分成多份并行的統一處理的任務。
通用計算框架 – Spark
Spark是一種分布式、通用大數據計算框架。可用于離線計算、交互式查詢、流式計算、機器學習等。其特點有:
-
速度快:基于內存并行計算
-
易上手:基于RDD計算模型
-
通用性: SQL 和DataFrames,,Mllib,GraphX, Spark Streaming
實時流處理
實時流處理框架平臺:
| APACHE STORM | 框架簡單,學習成本低;毫秒級延遲,實時性好;健壯、穩定 | 編程成本高;邏輯與批處理完全不同,無法公用代碼;Debug比較復雜 |
| Spark Streaming | 編程語言豐富、編程簡單;框架封裝層級高,封裝性好;可以共用批處理邏輯 | 微批處理,時間延遲大;穩定性相對較差;機器性能消耗大 |
| Flink | Flink流處理為先的方法可提供低延遲、高吞吐、近乎逐項處理的能力;可通過多種方式對工作進行分析進而優化任務;提供了基于Web的調度視圖 |
大數據分析方法
描述型分析:發生了什么?
-
廣泛的,精確的實時數據
-
有效的可視化
診斷型分析:為什么會發生?
-
能夠鉆取數據的核心
-
能夠對混亂的信息進行分離
預測型分析:可能發生什么?
-
使用算法確保歷史模型能夠用戶預測特定的結果
-
使用算法和技術確保自動生成決定
指令型分析:下步怎么做?
-
依據測試結果來選定最佳的行為和策略
-
應用先進的分析技術幫助做出決策
數據挖掘
數據挖掘就提取隱含在數據中的、人們事先不知道的、但又是潛在有用的信息和知識。
數據挖掘常用算法:
| 分類 | 在給定數據基礎上構建分類函數或分類模型,該函數或模型能夠把數據歸類為給定類別中某一類別,這就是分類的概念。典型算法有KNN、決策樹、樸素貝葉斯、支持向量機等。 |
| 聚類 | 聚類也就是將抽象對象的集合分為相似對象組成的多個類的過程。聚類過程生成的簇稱為一組數據對象的集合。常見算法K-Means、EM、DBScan等 |
| 回歸 | 回歸分析是一種預測性的建模技術,它研究的是因變量(目標)和自變量(預測器)之間的關系。常用的回歸方法有線性回歸與帶有正則化項的嶺回歸、LASSO回歸等。 |
| 時間序列 | 時間序列預測是一種歷史引申預測法,也就是將時間數列反映的事件發展過程進行引申外推,預測發展趨勢的一種方法。 |
| 關聯規則 | 關聯規則屬于數據挖掘算法中的一類重要方法,關聯規則就是支持度與置信度分別滿足給定閾值的規則。 |
機器學習
機器學習,即機器獲取新知識和新技能,并識別現有知識。機器學習有如下分類:
- 有監督學習
- 無監督學習
- 強化學習
機器學習技能范疇:
數據可視化
數據可視化:利用計算機圖形學和圖像處理技術,將數據轉換為圖形或者圖像在屏幕上顯示出來進行交互處理的理論方法和技術。數據可視化主要旨在借助于圖形化手段,清晰有效地傳達與溝通信息。
數據可視化隨著平臺的拓展、應用領域的增加,表現形式的不斷變化,從原始的BI統計圖表,到不斷增加的諸如實時動態效果、地理信息、用戶交互等等。數據可視化的概念邊界不斷擴大。
數據可視化技術
**將事物的數值圖形化:**每個事物的數值都是一個數據,將數據的大小以圖形的方式表現。
將事物圖形化:利用圖形表示事物,方便看圖人員,傳遞信息。
將事物的關系圖形化:當存在多個指標時,挖掘指標之間的關系,并將其圖形化表達,可提升圖表的可視化深度借助已有的場景表現通過構建場景表現。
將時間和空間可視化
將概念進行轉換:對數據的大小難以感知時,通常進行概念轉換,常用方法有對比和比喻。
數據可視化常見方法
統計圖表:指標看板、餅圖、直方圖、散點圖、柱狀圖等傳統BI統計圖表。
2D、3D區域:使用的地理空間數據可視化技術,往往涉及到事物特定表面上的位置。如點分布圖,可以顯示諸如在一定區域內犯罪情況。
時態:時態可視化是數據以線性的方式展示。最為關鍵的是時態數據可視化有一個起點和一個終點。如散點圖顯示諸如某些區域的溫度信息。
多維:可以通過使用常用的多維方法來展示二維或高(多)維度的數據。如餅圖,它可以顯示諸如政府開支。
分層:分層方法用于呈現多組數據。這些數據可視化通常展示的是大群體里面的小群體。如樹形圖。
網絡:在網絡中展示數據間的關系,它是一種常見的展示大數據量的方法**。**
常見可視化圖表
圖表類型的使用場景
總結
以上是生活随笔為你收集整理的阿里大数据分析与应用(part2)--大数据分析的流程与常用技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简短有内涵的微信个性签名169个
- 下一篇: 机器学习中的不平衡分类方法(part3)