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