來源:北大青鳥總部 2023年08月02日 09:26
隨著互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、5G、人工智能、云計算等技術(shù)的不斷發(fā)展,越來越多的數(shù)據(jù)在互聯(lián)網(wǎng)上產(chǎn)生,對互聯(lián)網(wǎng)的運營也開始進(jìn)入精細(xì)化,因此大數(shù)據(jù)、數(shù)據(jù)分析、數(shù)字營銷開始變成每個互聯(lián)網(wǎng)企業(yè)的重點。在做數(shù)據(jù)分析時有OLAP、OLTP是我們必定會遇到的技術(shù),在介紹OLAP引擎技術(shù)選型之前,我們先看看這兩個技術(shù)分別是什么意思?
OLTP(OnlineTransactionProcessing聯(lián)機(jī)事務(wù)處理),是傳統(tǒng)關(guān)系型數(shù)據(jù)庫的應(yīng)用技術(shù),提供日常的、基本的事務(wù)處理,比如在線交易之類。OLAP(OnlineAnalyticalProcessing聯(lián)機(jī)分析處理),是大數(shù)據(jù)分析的應(yīng)用技術(shù),提供復(fù)雜的分析操作、側(cè)重決策支持。目前主流的OLAP引擎包括Hive、Presto、Druid、Clickhouse、Kylin、Sparksql、Greeplum,每個引擎都有它各自的特點,我們今天就來簡單聊一聊,大家在實際使用時根據(jù)自己需求選擇就好~
第一款OLAP引擎便是Hive。它是基于Hadoop的數(shù)據(jù)倉庫工具,可將結(jié)構(gòu)化的數(shù)據(jù)直接轉(zhuǎn)換成數(shù)據(jù)庫表,HIve系統(tǒng)將HQL語句(類SQL語法)轉(zhuǎn)化成MapReduce進(jìn)行執(zhí)行,本質(zhì)上就是一款基于HDFS的MapReduce計算框架,使用HQL就可以對存儲數(shù)據(jù)進(jìn)行分析.Hive的優(yōu)點是學(xué)習(xí)簡單(支持SQL語法)、擴(kuò)展性強(qiáng)(底層基于HDFS),缺點就是太慢了(數(shù)據(jù)處理任務(wù)全轉(zhuǎn)換成MapReduce任務(wù))。如果你的業(yè)務(wù)有數(shù)據(jù)分析的訴求,并且可接受一定的延遲,那么Hive是個不錯的選擇噢!
第二款OLAP引擎便是Presto。它是FaceBook開源的大數(shù)據(jù)分布式SQL查詢引擎,客戶端發(fā)出數(shù)據(jù)查詢請求時,先有語法解析器進(jìn)行解析,解析之后再給到對應(yīng)的節(jié)點執(zhí)行任務(wù)。Presto通過自己系統(tǒng)內(nèi)部的查詢和執(zhí)行引擎來完成數(shù)據(jù)分析處理,所有的操作都在內(nèi)存中完成,所以速度會快很多。Presto的優(yōu)點是速度快、支持多數(shù)據(jù)源接入,缺點是容易內(nèi)存溢出。
第三款引擎便是Clickhouse數(shù)據(jù)庫。它是俄羅斯開源的一款列式數(shù)據(jù)庫,在做數(shù)據(jù)分析時可直接選擇某幾列來作為分析屬性,獲取數(shù)據(jù)非???,延遲低,如果按行讀取,每次只能讀取一個數(shù)據(jù),有10000條就需要讀取1000次,降低了效率。此外在存儲層它實現(xiàn)了數(shù)據(jù)有序存儲、主鍵索引、稀疏索引、數(shù)據(jù)分區(qū)分片、主備復(fù)制等功能。所謂數(shù)據(jù)的有序存儲指的是數(shù)據(jù)在建表時可以將數(shù)據(jù)按照某些列進(jìn)行排序,排序之后,相同類型的數(shù)據(jù)在磁盤上有序的存儲,在進(jìn)行范圍查詢時所獲取的數(shù)據(jù)都存儲在一個或若干個連續(xù)的空間內(nèi),極大的減少了磁盤IO時間;此外在計算層ClickHouse提供了多核并行、分布式計算、近似計算、復(fù)雜數(shù)據(jù)類型支持等技術(shù)能力,最大化程度利用CPU資源,提升系統(tǒng)查詢速度。Clickhouse的優(yōu)點就是快快快、分布式高可用,在數(shù)據(jù)分析這緯度看基本沒有缺點。
第四款引擎便是Kylin圖數(shù)據(jù)庫。它是Apache基金會開源的一款數(shù)據(jù)庫,也是結(jié)合當(dāng)前人工智能知識圖譜的一個最佳數(shù)據(jù)庫。在Kylin中做數(shù)據(jù)分析的邏輯是用空間換時間,所有的數(shù)據(jù)都先預(yù)處理。在Kylin中通過Cube來做數(shù)據(jù)預(yù)聚合,比如我們想做雙十二某地區(qū)某品類的銷售額,因為有三個維度做分析,因此在Kylin中會建立一個三維的數(shù)據(jù)表(時間、地區(qū)、品類),在數(shù)據(jù)分析時可以拆分到三維、二維、一維,三維包含地區(qū)&品類&時間,二維包含地區(qū)品類、地區(qū)時間、品類時間,一維包含地區(qū)、品類、時間,每一維度的數(shù)據(jù)都提前聚合號存儲在HBase中了,因此當(dāng)數(shù)據(jù)分析時,直接拿聚合好的數(shù)據(jù)處理展示。Kylin的優(yōu)點就是簡單、快速,缺點就是可選數(shù)據(jù)分析維度太多。
本文介紹了四款大數(shù)據(jù)分析OLAP引擎,它們所表現(xiàn)出來的業(yè)態(tài)有數(shù)據(jù)倉庫、分析引擎、數(shù)據(jù)庫,但這絲毫不影響它們作為數(shù)據(jù)分析的引擎提供服務(wù)。互聯(lián)網(wǎng)的下半場已經(jīng)進(jìn)入了精細(xì)化時代,遠(yuǎn)的不多,就看最近最火的社區(qū)團(tuán)購生意,如果沒有背后的數(shù)據(jù)引擎做技術(shù)支撐,各互聯(lián)網(wǎng)巨頭們?nèi)绾螠?zhǔn)確判斷用戶畫像、商品售賣趨勢、整體營收變化趨勢呢?不過每一款數(shù)據(jù)分析引擎都有自己適合的業(yè)務(wù)場景,企業(yè)根據(jù)自己使用成本、維護(hù)成本、業(yè)務(wù)場景進(jìn)行選擇就好~