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