大數據中的技術概念
編輯導語:相信大家平時用大數據處理產品時,會被各種的專業技術名詞繞暈,然后傻傻分不清。本篇文章中,作者將大數據中常用的一些技術名詞作了匯總和分類。感興趣的小伙伴不妨來看看,說不定會用到哦。
在大數據處理產品中經常會碰到一些技術名詞,在這里匯總整理。
一、數據源類型
1. 寬表 VS 窄表
寬表:指字段比較多的數據庫表。通常是指業務主體相關的指標、緯度、屬性關聯在一起的一張數據庫表。
廣泛應用于數據挖掘模型訓練前的數據準備,通過把相關字段放在同一張表中,可以大大提供數據挖掘模型訓練過程中迭代計算的消息問題。
雖然提高了數據查詢效率,但存在大量冗余。
窄表:嚴格按照數據庫設計三范式。減少了數據冗余,但修改一個數據可能需要修改多張表。
數據庫設計三范式:
- 確保每列保持原子性;
- 確保表中的每列都和主鍵相關;
- 確保每列都和主鍵列直接相關,而不是間接相關。
2. MySQL
MySQL是一種關系型數據庫管理系統,關系數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。是目前最流行的關系型數據庫管理系統之一。
3. Oracle
Oracle是一款關系數據庫管理系統。它是在數據庫領域一直處于領先地位的產品,系統可移植性好、使用方便、功能強,適用于各類大、中、小微機環境。
它是一種高效率的、可靠性好的、適應高吞吐量的數據庫方案。
4. GBase
GBase 是南大通用數據技術有限公司推出的自主品牌的數據庫產品,在國內數據庫市場具有較高的品牌知名度。
5. HBase
HBase是一個分布式的、面向列的開源數據庫。
不同于一般的關系數據庫,它是一個適合于非結構化數據存儲的數據庫。另一個不同的是HBase基于列的而不是基于行的模式。
6. FTP
FTP(File Transfer Protocol)是一套網絡文件傳輸標準協議,訪問遠程資源, 實現用戶往返傳輸文件、目錄管理以及訪問電子郵件等等, 即使雙方計算機可能配有不同的操作系統和文件存儲方式。
7. HDFS
HDFS是一個Hadoop分布式文件系統,HDFS有著高容錯性的特點,并且設計用來部署在低廉的硬件上。
而且它提供高吞吐量來訪問應用程序的數據,適合那些有著超大數據集的應用程序。
二、數據計算
1. MaxCompute
MaxCompute是一項大數據計算服務,它能提供快速、完全托管的PB級數據倉庫解決方案,可以經濟并高效的分析處理海量數據。
2. Flink
Flink是一個框架和分布式處理引擎,用于對無界和有界數據流進行有狀態計算。
Flink設計為在所有常見的集群環境中運行,以內存速度和任何規模執行計算。
3. Kafka
Kafka是一種高吞吐量的分布式發布訂閱消息系統,它可以處理消費者在網站中的所有動作流數據。
4. 離線計算 VS 實時計算
離線計算:通常也稱為“批處理”,表示那些離線批量、延時較高的靜態數據處理過程。
離線計算適用于實時性要求不高的場景,比如離線報表、數據分析等。常見計算框架:MapReduce,Spark SQL
實時計算:通常也稱為“實時流計算”、“流式計算”,表示那些實時或者低延時的流數據處理過程。
實時計算通常應用在實時性要求高的場景,比如實時ETL、實時監控等。常見計算框架:Spark Streaming,Flink
5. OLTP VS OLAP
OLTP(On-Line Transaction Processing):可稱為在線事務處理,一般應用于在線業務交易系統,比如銀行交易、訂單交易等。
OLTP的主要特點是能夠支持頻繁的在線操作(增刪改),以及快速的訪問查詢。
OLAP(On-Line Analytical Processing):可稱為在線分析處理,較多的應用在數據倉庫領域,支持復雜查詢的數據分析,側重于為業務提供決策支持。
目前常見是的實時OLAP場景,比如Druid(Apache Druid,不同于阿里Druid)、ClickHouse等存儲組件能夠較好的滿足需求。
三、分布式相關
1. Hadoop
Hadoop是一個由Apache基金會所開發的分布式系統基礎架構。用戶可以在不了解分布式底層細節的情況下,開發分布式程序。充分利用集群的威力進行高速運算和存儲。
2. HDFS
HDFS是一個Hadoop分布式文件系統。詳情在上一小節中已介紹。
3. Hive
Hive是基于Hadoop的一個數據倉庫工具,用來進行數據提取、轉化、加載。
這是一種可以存儲、查詢和分析存儲在Hadoop中的大規模數據的機制。
hive數據倉庫工具能將結構化的數據文件映射為一張數據庫表,并提供SQL查詢功能,能將SQL語句轉變成MapReduce任務來執行。
4. MapReduce
MapReduce是一種編程模型,用于大規模數據集(大于1TB)的并行運算。
概念”Map(映射)”和”Reduce(歸約)”,是它們的主要思想,都是從函數式編程語言里借來的,還有從矢量編程語言里借來的特性。
它極大地方便了編程人員在不會分布式并行編程的情況下,將自己的程序運行在分布式系統上。
5. Spark
Spark是專為大規模數據處理而設計的快速通用的計算引擎,類似于Hadoop MapReduce的通用并行框架,擁有Hadoop MapReduce所具有的優點;
但不同于MapReduce的是——Job中間輸出結果可以保存在內存中,從而不再需要讀寫HDFS,因此Spark能更好地適用于數據挖掘與機器學習等需要迭代的MapReduce的算法。
四、數據倉庫
1. 簡介
數據倉庫(全稱:Data Warehouse;簡稱:DW/DWH),是在數據庫已經大量存在的情況下,為了進一步挖掘數據資源、為了決策需要而產生的。
它是一整套包括了ETL(extract-transform-load)、調度、建模在內的完整的理論體系。
2. 與數據庫的差異
數據倉庫是專門為數據分析設計的,涉及讀取大量數據以了解數據之間的關系和趨勢。而數據庫是用于捕獲和存儲數據。
3. 分層
- ODS(Operation Data Store): 數據源頭層,數據倉庫源頭系統的數據表通常會原封不動的存儲一份,這稱為ODS層(可理解為原始庫),是后續數據倉庫加工數據的來源。數據來源:業務庫、埋點日志、消息隊列。
- DWD(Data Warehouse Details ):數據細節層,是業務層與數據倉庫的隔離層。主要對ODS數據層做一些數據清洗和規范化的操作。數據清洗:去除空值、臟數據、超過極限范圍的。
- DWB(Data Warehouse Base):數據基礎層,存儲的是客觀數據,一般用作中間層,可以認為是大量指標的數據層,可理解為知識庫字典、常用標準庫。
- DWS(Data Warehouse Service): 數據服務層,基于DWB上的基礎數據,整合匯總成分析某一個主題域的服務數據層,一般是寬表。用于提供后續的業務查詢,OLAP分析,數據分發等。
- ADS(ApplicationData Service):應用數據服務,該層主要是提供數據產品和數據分析使用的數據,一般會存儲在ES、mysql等系統中供線上系統使用。
4. 數據地圖
以數據搜索為基礎,提供表使用說明、數據類目、數據血緣、字段血緣等工具,幫助數據表的使用者和擁有者更好地管理數據、協作開發。
5. 數據血緣
即數據的來龍去脈,主要包含數據的來源、數據的加工方式、映射關系以及數據出口。
數據血緣屬于元數據的一部分,清晰的數據血緣是數據平臺維持穩定的基礎,更有利于數據變更影響分析以及數據問題排查。
本文由@丸子不愛吃丸子 原創發布于人人都是產品經理,未經許可,禁止轉載。
題圖來自Unsplash,基于CC0協議
- 目前還沒評論,等你發揮!