我們引用了大數據的4V特征
- Volume 大數據數據量大,數據量單位為T 或者P級
- Variety 數據類型多,大數據包含多種數據維度 比如 日志、視頻、圖片
- Value 價值密度低,商業價值高 比如監控視頻,其中關鍵1-2秒可能具有極高的價值
- Velocity 要求處理速度塊
1.2 大數據的4個關鍵技術
1.3 ETL/ELT的區別
ETL 包含的過程是 Extract、Transform、Load的縮寫
包括了數據抽取 => 轉換 => 加載三個過程
在數據源抽取后首先進行轉換,然后將轉換的結果寫入目的地
ETL 包含的過程是 Extract、Load、Transform的縮寫
ELT的過程是,在抽取后將結果先寫入目的地,然后利用數據庫的聚合分析能力或者外部計算框架,如Spark來完成轉換
目前數據主流框架是ETL,重抽取和加載,輕轉換,搭建的數據平臺屬于輕量級
ELT架構,在提取完成之后,數據加載會立即開始,更省時,數據變換這個過程根據后續使用需求在 SQL 中進行,而不是在加載階段
ELT框架的優點就是保留了原始數據,能夠將原始數據展現給數據分析人員
ETL相關軟件:
- 商業軟件:Informatica PowerCenter、IBM InfoSphere DataStage、Oracle Data Integrator、Microsoft SQL Server Integration Services等
- 開源軟件:Kettle、DataX、Sqoop
1.4 大數據與數據庫管理系統
DataBase Management System,數據庫管理系統,可以管理多個數據庫
目前關系型數據庫在DBMS中占據主流地位,常用的關系型數據庫有Oracle、MySQL和SQL Server
其中SQL就是關系型數據庫的查詢語言
SQL是與數據直接打交道的語言,是與前端、后端語言進行交互的“中臺”語言
SQL語言特點:
- 價值大,技術、產品、運營人員都要掌握SQL,使用無處不在
- 很少變化,SQL語言從誕生到現在,語法很少變化
- 入門并不難,很多人都會寫SQL語句,但是效率差別很大
除了關系型數據庫還有文檔型數據庫MongoDB、鍵值型數據庫Redis、列存儲數據庫Cassandra等
提到大數據就不得不說Hive
Hive是基于Hadoop的一個數據倉庫工具,用來進行數據提取、轉化、加載,這是一種可以存儲、查詢和分析存儲在Hadoop中的大規模數據的機制。
Hive與關聯型數據庫RDBMS相比
不足:
- 不能像 RDBMS 一般實時響應,Hive 查詢延時大
- 不能像 RDBMS 做事務型查詢,Hive 沒有事務機制
- 不能像 RDBMS 做行級別的變更操作(包括插入、更新、刪除)
優點:
- Hive 沒有定長的 varchar 這種類型,字符串都是 string
- Hive 是讀時模式,保存表數據時不會對數據進行校驗,而在讀數據時將校驗不符合格式的數據設置為NULL
1.5 OLTP/OLAP
在數據倉庫架構中有非常相關的2個概念,一個是OLTP,一個是OLAP
- OLTP( On-Line Transaction Processing )
聯機事務處理,主要是對數據的增刪改
記錄業務發生,比如購買行為,發生后,要記錄是誰在什么時候做了什么事,數據會以增刪改的方式在數據庫中進行數據的更新處理操作
實時性高、穩定性強,ATM,ERP,CRM,OA等都屬于OLTP
- OLAP( On-Line Analytical Processing )
聯機分析處理,主要是對數據的分析查詢
當數據積累到一定的程度,需要做總結分析,BI報表=> OLAP
OLTP產生的數據通常在不同的業務系統中
OLAP需要將不同的數據源 => 數據集成 => 數據清洗 => 數據倉庫,然后由數據倉庫統一提供OLAP分析
2.大數據計算
2.1 大數據計算模式
大數據計算模式 | 解決問題 | 代表產品 |
---|---|---|
批處理計算 | 針對大規模數據的批量處理 | MapReduce、Spark等 |
流計算 | 針對流數據的實時計算 | Storm、S4、Flume、Streams、Puma、DStream、Super Mario、銀河流數據處理平臺 |
圖計算 | 針對大規模圖結構數據的處理 | Pregel、GraphX、Giraph、PowerGraph、Hama、GoldenOrb等 |
查詢分析計算 | 大規模數據的存儲管理和查詢分析 | Dremel、Hive、Cassandra、Impala等 |
2.2 Lambda大數據框架
Lambda架構:
Batch Layer(批處理層),對離線的歷史數據進行預計算,能讓下游進行快速查詢。因為基于完整的數據集,準確性能得到保證??梢杂肏adoop、Spark 和 Flink 等計算框架
Speed Layer(加速處理層),處理實時的增量數據,加速層的數據不如批處理層完整和準確,但重點在于低延遲。可以用 Spark streaming、Storm 和 Flink 等計框架算
Serving Layer(合并層),將歷史數據計算與實時數據計算合并,輸出到數據庫,供下游分析
2.3 大數據典型技術
- Hadoop
一個文件系統,外加一個離線處理框架MapReduce,由于提供的上層api不太友好,加上MapReduce 處理框架比較慢,基本上都用作文件系統
- Spark
本身是一個執行引擎,不保存數據,所以需要外部的文件系統(通常會基于hadoop)提出了內存計算的概念,即盡可能把數據放到內存中,還提供了良好的上層使用接口,包括spl語句(spark sql)處理數據十分方便。相比 Hadoop MapReduce 獲得了百倍的性能提升,基本上用它來做離線數據處理
- Flink
分布式實時計算框架,具有超高的性能,支持Flink流式計算與Storm性能差不多,支持毫秒級計算
Spark 和 Flink的區別
3.大數據實踐
本文主要講解了大數據的概念和基礎知識,幫助讀者對大數據有一個基本了解。如果對實踐有學習需要(可以留言),我再花時間整理大數據的實踐講解:Pyspark進行Titanic乘客生存預測。使用pyspark進行初步的大數據操作,數據選取Kaggle泰坦尼克號項目的數據,通過Spark讀取數據,并利用Spark中的ML工具對數據進行構建模型。
-
SQL
+關注
關注
1文章
771瀏覽量
44192 -
volume
+關注
關注
0文章
5瀏覽量
7855 -
大數據
+關注
關注
64文章
8900瀏覽量
137580
發布評論請先 登錄
相關推薦
評論