自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

基于大數(shù)據(jù)的OLAP技術(shù),四個(gè)角度一篇講明白

大數(shù)據(jù) 數(shù)據(jù)分析
基于數(shù)據(jù)驅(qū)動(dòng)的業(yè)務(wù)必然會(huì)運(yùn)用數(shù)據(jù)分析技術(shù)。本文主要介紹在線(xiàn)分析處理(Online Analytical Processing,OLAP)技術(shù)。

在線(xiàn)分析處理(Online Analytical Processing,OLAP)技術(shù)是大數(shù)據(jù)技術(shù)中快速解決多維分析問(wèn)題的方法之一。由于OLAP需要快速讀取大量數(shù)據(jù),因此它對(duì)數(shù)據(jù)的讀取吞吐量和計(jì)算效率有很高的要求。目前,基于大數(shù)據(jù)的OLAP技術(shù)一般從面向讀的存儲(chǔ)優(yōu)化、預(yù)計(jì)算、支持靈活分析等方面不斷提高,近幾年出現(xiàn)了很多令人激動(dòng)的產(chǎn)品。

一、OLAP技術(shù)介紹

OLAP技術(shù)讓用戶(hù)能夠從多個(gè)角度交互地分析多維數(shù)據(jù),從中發(fā)現(xiàn)規(guī)律,用來(lái)做決策支持。在分析過(guò)程中,用戶(hù)需要獲取和處理歷史數(shù)據(jù)(一段時(shí)期內(nèi)),有時(shí)也需要獲取和處理實(shí)時(shí)數(shù)據(jù),此時(shí)查詢(xún)吞吐量和相應(yīng)時(shí)間是關(guān)鍵性能指標(biāo)。

1.OLAP分析操作

OLAP分析一般需要設(shè)計(jì)數(shù)據(jù)立方體,立方體由分析的維度(dimension)、層級(jí)(level)和指標(biāo)(metric)來(lái)定義,支持上卷(roll-up)、鉆?。╠rill-down)、切片(slicing)和切塊(dicing)等分析操作。

  • 上卷:將數(shù)據(jù)按一個(gè)或多個(gè)維度向更高層級(jí)聚合,例如基于縣級(jí)銷(xiāo)售額統(tǒng)計(jì)市級(jí)銷(xiāo)售額。
  • 鉆?。荷暇淼姆聪虿僮鳌?/li>
  • 切片和切塊:從OLAP多維數(shù)據(jù)集中按選擇維度的特定數(shù)值選取出一組特定的數(shù)據(jù),例如一季度的所有數(shù)據(jù)。
  • 切塊:從OLAP多維數(shù)據(jù)集中按選擇維度的特定數(shù)值區(qū)間選取出一組特定的數(shù)據(jù),例如2月到5月的所有數(shù)據(jù)。

2.與OLTP的區(qū)別

與OLAP相對(duì)的是OLTP。OLTP的全稱(chēng)是聯(lián)機(jī)事務(wù)處理(Online Transaction Processing),是傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)的主要應(yīng)用。OLTP的特點(diǎn)是實(shí)現(xiàn)插入、更新、刪除等事務(wù)的在線(xiàn)處理,但系統(tǒng)需要保證事務(wù)的完整性,滿(mǎn)足ACID原則。在OLTP中,事務(wù)的吞吐量是關(guān)鍵性能指標(biāo),以每秒事務(wù)數(shù)來(lái)衡量效率。

由于嚴(yán)格的約束限制,支持OLTP的數(shù)據(jù)系統(tǒng)通常無(wú)法滿(mǎn)足OLAP大規(guī)模數(shù)據(jù)讀取與處理的需求,二者對(duì)數(shù)據(jù)讀取的吞吐量要求相差不止一個(gè)量級(jí),因此OLAP系統(tǒng)的技術(shù)選型一般與OLTP不同,數(shù)據(jù)的組織方式也不同。

二、實(shí)時(shí)OLAP系統(tǒng)的兩種架構(gòu)模型

隨著DT時(shí)代的到來(lái),越來(lái)越多的業(yè)務(wù)需求要求大數(shù)據(jù)系統(tǒng)既能處理歷史數(shù)據(jù),又能進(jìn)行實(shí)時(shí)計(jì)算,同時(shí)越來(lái)越要求運(yùn)營(yíng)的時(shí)效性,以便即時(shí)評(píng)估運(yùn)營(yíng)活動(dòng)效果,即時(shí)調(diào)整策略。針對(duì)實(shí)時(shí)大數(shù)據(jù)統(tǒng)計(jì)分析系統(tǒng),有兩種架構(gòu)設(shè)計(jì)路線(xiàn):Lambda和Kappa。

  • Lambda架構(gòu)包含三層:批處理層(Batch Layer)、速度層(Speed Layer)和服務(wù)層(Serving Layer)。批處理層對(duì)歷史數(shù)據(jù)進(jìn)行預(yù)處理,速度層處理新增實(shí)時(shí)數(shù)據(jù),服務(wù)層實(shí)現(xiàn)上述兩層處理結(jié)果的融合,將其合并為統(tǒng)一視圖,為用戶(hù)提供全時(shí)域數(shù)據(jù)分析查詢(xún)。每層可以分別選擇合適的大數(shù)據(jù)組件來(lái)構(gòu)建系統(tǒng),比如用Spark構(gòu)建批處理層、用Flink構(gòu)建速度層。
  • Kappa架構(gòu)在Lambda架構(gòu)的基礎(chǔ)上去掉了批處理層,對(duì)速度層進(jìn)行了改進(jìn),使其既能夠支持實(shí)時(shí)數(shù)據(jù)處理,又能夠支持歷史數(shù)據(jù)處理。Kappa架構(gòu)只有實(shí)時(shí)層和服務(wù)層。Kappa架構(gòu)通常是將流式框架中的數(shù)據(jù)通道替換成消息隊(duì)列(如Kafka),可以設(shè)定一定的保留期限,如分析邏輯改變,重新從消息隊(duì)列消費(fèi)數(shù)據(jù)處理即可。

實(shí)時(shí)OLAP系統(tǒng)的兩種架構(gòu)模型對(duì)比如圖1所示。

圖片

▲圖1 實(shí)時(shí)OLAP的兩種架構(gòu)模型對(duì)比

兩種架構(gòu)模型的優(yōu)缺點(diǎn)對(duì)比如下:

  • Lambda架構(gòu)具有很好的靈活性、可擴(kuò)展性和容錯(cuò)性,但分別處理歷史數(shù)據(jù)與實(shí)時(shí)數(shù)據(jù)時(shí)常常出現(xiàn)處理邏輯或計(jì)算結(jié)果不一致的情況,另外系統(tǒng)建設(shè)和維護(hù)復(fù)雜。
  • Kappa架構(gòu)只需維護(hù)一套代碼,可以做到數(shù)據(jù)處理邏輯與計(jì)算結(jié)果的一致性。Kappa架構(gòu)并不是Lambda架構(gòu)的替代品,二者的應(yīng)用場(chǎng)景不同。Kappa架構(gòu)由于全部采用流式處理,數(shù)據(jù)處理吞吐量不如Lambda架構(gòu),處理資源成本也較高。

三、OLAP相關(guān)技術(shù)分類(lèi)

按照數(shù)據(jù)模型可將OLAP相關(guān)技術(shù)分為MOLAP、ROLAP和HOLAP 3種類(lèi)型:

  • MOLAP表示Multidimensional OLAP(多維型OLAP),一般是基于預(yù)計(jì)算生成多維數(shù)據(jù)立方體;
  • ROLAP是指Relational OLAP(關(guān)系型OLAP),一般不進(jìn)行預(yù)計(jì)算,直接關(guān)聯(lián)事實(shí)表與維度表進(jìn)行查詢(xún);
  • HOLAP是指Hybrid OLAP(混合型OLAP),是混合利用MOLAP和ROLAP方法,綜合二者的優(yōu)缺點(diǎn)。

按照實(shí)現(xiàn)的技術(shù)方法可將OLAP相關(guān)技術(shù)分為MPP架構(gòu)、預(yù)計(jì)算和搜索引擎三類(lèi)。

  • MPP架構(gòu):最常見(jiàn)的OLAP引擎架構(gòu),MPP架構(gòu)具有完全的可伸縮性、高可用、高性能、高性?xún)r(jià)比等優(yōu)勢(shì)。此類(lèi)又分兩種,一種是MPP數(shù)據(jù)庫(kù),它基于關(guān)系數(shù)據(jù)模型建立數(shù)據(jù)倉(cāng)庫(kù)的主要技術(shù)選型,是大數(shù)據(jù)場(chǎng)景ROLAP的實(shí)現(xiàn)方法,典型的產(chǎn)品是Greenplum、ClickHouse;另一種是MPP分析引擎,它僅基于MPP架構(gòu)實(shí)現(xiàn)計(jì)算功能,數(shù)據(jù)存儲(chǔ)則依賴(lài)于其他存儲(chǔ)系統(tǒng)(如HDFS),典型的產(chǎn)品有Presto、Impala。
  • 預(yù)計(jì)算:基于定義的數(shù)據(jù)立方體,在明細(xì)表上進(jìn)行預(yù)計(jì)算,在多維分析時(shí)僅執(zhí)行查詢(xún)操作,是實(shí)現(xiàn)MOLAP的典型方法。優(yōu)點(diǎn)是查詢(xún)時(shí)如果命中預(yù)計(jì)算結(jié)果則幾乎沒(méi)有延遲,適合對(duì)超大原始數(shù)據(jù)集的分析,可實(shí)現(xiàn)秒級(jí)響應(yīng);缺點(diǎn)是預(yù)計(jì)算量大、不靈活、支持維度有限(否則存在維度災(zāi)難)、查詢(xún)延遲時(shí)間不穩(wěn)定(取決于是否命中預(yù)計(jì)算結(jié)果)。典型的產(chǎn)品如Apache Kylin,也有產(chǎn)品通過(guò)控制預(yù)計(jì)算的程度以避免預(yù)計(jì)算量太大,如Druid。
  • 搜索引擎:在入庫(kù)時(shí)將數(shù)據(jù)轉(zhuǎn)換為倒排索引,在搜索類(lèi)查詢(xún)上能做到亞秒級(jí)響應(yīng),但是對(duì)于掃描聚合為主的查詢(xún),隨著處理數(shù)據(jù)量的增加,響應(yīng)時(shí)間也會(huì)退化到分鐘級(jí)。另外,搜索引擎對(duì)存儲(chǔ)消耗很大。典型的產(chǎn)品如Elasticsearch、Solr。

三種技術(shù)方法的優(yōu)缺點(diǎn)及適用場(chǎng)景對(duì)比如表1所示。

▼表1 三種技術(shù)方法的優(yōu)缺點(diǎn)及適用場(chǎng)景對(duì)比

圖片

針對(duì)這三種技術(shù)實(shí)現(xiàn)方法,該如何做技術(shù)選型呢?OLAP技術(shù)需要考慮系統(tǒng)的數(shù)據(jù)量、性能和靈活性三個(gè)方面,但是目前還沒(méi)有一種方法能同時(shí)在這三個(gè)方面做到完美,在設(shè)計(jì)時(shí)需要在這三個(gè)方面之間做出取舍。比如MPP架構(gòu),它有很好的數(shù)據(jù)量和靈活性的支持,但是它的性能無(wú)法保證,隨著計(jì)算量和復(fù)雜度的增加,響應(yīng)時(shí)間可能從秒級(jí)變?yōu)榉昼娂?jí)甚至小時(shí)級(jí)。而預(yù)計(jì)算系統(tǒng)和搜索引擎技術(shù)方法則是通過(guò)犧牲靈活性來(lái)?yè)Q取高性能。另外,還要考慮是否需要查詢(xún)明細(xì)數(shù)據(jù)等輔助需求。

四、OLAP技術(shù)典型流行產(chǎn)品示例

本節(jié)介紹兩個(gè)Hadoop體系兼容的OLAP產(chǎn)品,一個(gè)是基于MPP架構(gòu)的OLAP引擎—Impala,一個(gè)是基于預(yù)計(jì)算方法的OLAP引擎—Kylin。

1.Impala

Impala屬于SQL on Hadoop的開(kāi)源MPP分析引擎,可在Hadoop集群上運(yùn)行。它由Cloudera公司主導(dǎo)開(kāi)發(fā),作為Hive的高性能替代品,用于大數(shù)據(jù)實(shí)時(shí)查詢(xún)分析。Impala提高了Apache Hadoop的SQL查詢(xún)性能,同時(shí)保留了熟悉的Hive用戶(hù)體驗(yàn),采用SQL語(yǔ)法(Hive SQL),使得Hive的用戶(hù)可以順暢地遷移到Impala上。Impala采用與基礎(chǔ)數(shù)據(jù)存儲(chǔ)引擎分離的設(shè)計(jì),使用HDFS和HBase作為數(shù)據(jù)存儲(chǔ),并從Hive獲取元數(shù)據(jù),這是它與傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)的主要區(qū)別。傳統(tǒng)關(guān)系數(shù)據(jù)的查詢(xún)引擎與存儲(chǔ)引擎是緊密耦合的。

為了避免延遲,Impala避開(kāi)了MapReduce,通過(guò)專(zhuān)門(mén)實(shí)現(xiàn)的分布式查詢(xún)引擎直接訪問(wèn)數(shù)據(jù),比Hive快幾個(gè)數(shù)量級(jí)。

Impala的優(yōu)點(diǎn)如下所示。

  • 在數(shù)據(jù)所在節(jié)點(diǎn)對(duì)數(shù)據(jù)進(jìn)行本地處理,避免網(wǎng)絡(luò)傳輸瓶頸;
  • 支持線(xiàn)性擴(kuò)展;
  • 與Hadoop體系使用相同的基礎(chǔ)設(shè)施,直接利用Hadoop體系的元數(shù)據(jù)、安全和資源管理;
  • 直接讀取Hadoop系統(tǒng)中的數(shù)據(jù),無(wú)須進(jìn)行高成本的數(shù)據(jù)格式轉(zhuǎn)換;
  • 所有數(shù)據(jù)均可立即查詢(xún)。

Impala由三個(gè)服務(wù)組成:Impala主進(jìn)程(Impala daemon)、StateStore進(jìn)程和Catalog進(jìn)程。

  • Impala主進(jìn)程:負(fù)責(zé)接收客戶(hù)端的查詢(xún)請(qǐng)求,協(xié)調(diào)請(qǐng)求在集群中的執(zhí)行,并負(fù)責(zé)執(zhí)行一個(gè)查詢(xún)片段。Impala主進(jìn)程包含三個(gè)子模塊:Query Planner、Query Coordinator、Query Exec Engine。每臺(tái)服務(wù)器上會(huì)運(yùn)行一個(gè)Impala主進(jìn)程(與HDFS的DataNode在同一個(gè)主機(jī)上運(yùn)行),所有的Impala主進(jìn)程都是對(duì)等的。Impala主程序與StateStore進(jìn)程保持持續(xù)通信,以確認(rèn)哪些節(jié)點(diǎn)的主進(jìn)程是健康的并可以接收新工作。
  • StateStore進(jìn)程:充當(dāng)Impala的Catalog儲(chǔ)存庫(kù)和元數(shù)據(jù)訪問(wèn)網(wǎng)關(guān),會(huì)檢查集群中所有Impala主進(jìn)程的運(yùn)行狀況,并將發(fā)現(xiàn)結(jié)果不斷傳遞給每個(gè)主進(jìn)程。
  • Catalog進(jìn)程:將Impala SQL語(yǔ)句的元數(shù)據(jù)更改傳遞到集群的所有Impala主進(jìn)程中。

Impala架構(gòu)示意圖如圖2所示。

圖片

▲圖2 Impala架構(gòu)

2.Kylin

Apache Kylin是一個(gè)開(kāi)源的分布式分析引擎,提供Hadoop、Spark之上的SQL查詢(xún)接口及多維分析能力以支持超大規(guī)模數(shù)據(jù),最初由eBay開(kāi)發(fā)并貢獻(xiàn)至開(kāi)源社區(qū)。

Kylin通過(guò)三步支持查詢(xún)。

  • 模型定義:定義數(shù)據(jù)集的星形或雪花形模型。
  • 預(yù)計(jì)算:通過(guò)數(shù)據(jù)立方體計(jì)算引擎(Cube Build Engine)組件對(duì)明細(xì)數(shù)據(jù)進(jìn)行離線(xiàn)計(jì)算,生成用于查詢(xún)的數(shù)據(jù)立方體(OLAP Cube),并將Cube數(shù)據(jù)存儲(chǔ)于HBase中。
  • 在線(xiàn)查詢(xún):在線(xiàn)查詢(xún)時(shí)通過(guò)標(biāo)準(zhǔn)SQL或RESTful API,查詢(xún)引擎(Query Engine)首先對(duì)預(yù)計(jì)算的數(shù)據(jù)立方體進(jìn)行查詢(xún),如果命中緩存,則可以實(shí)現(xiàn)秒級(jí)響應(yīng),如果沒(méi)有命中緩存,則進(jìn)行實(shí)時(shí)計(jì)算,延遲會(huì)比較高。

Kylin原理示意圖如圖3所示。

圖片

圖3 Kylin原理

Apache Kylin的特性如下所示。

  • 能夠處理百億規(guī)模數(shù)據(jù),可擴(kuò)展,預(yù)計(jì)算生成數(shù)據(jù)立方體,在線(xiàn)查詢(xún)亞秒級(jí)響應(yīng)。
  • 兼容Hadoop體系。
  • 提供標(biāo)準(zhǔn)SQL,支持大部分查詢(xún)功能。
  • 能與BI工具的無(wú)縫整合,如Tableau。

本文摘編于《數(shù)據(jù)應(yīng)用工程:方法論與實(shí)踐》,經(jīng)出版方授權(quán)發(fā)布。(書(shū)號(hào):9787111704096)轉(zhuǎn)載請(qǐng)保留文章出處。

責(zé)任編輯:武曉燕 來(lái)源: 數(shù)倉(cāng)寶貝庫(kù)
相關(guān)推薦

2022-07-21 07:07:40

大數(shù)據(jù)技術(shù)

2023-01-03 18:32:32

2023-06-01 21:50:53

Doris數(shù)倉(cāng)SQL

2024-08-07 09:02:51

2023-04-06 08:37:24

2023-12-11 18:23:21

2023-02-10 09:43:51

架構(gòu)開(kāi)發(fā)

2022-07-27 07:45:53

二叉樹(shù)鏡像函數(shù)

2024-03-27 18:22:58

Hadoop部件生態(tài)

2021-05-08 07:14:38

MySQL數(shù)據(jù)庫(kù)安全性

2022-05-25 11:39:12

數(shù)字化企業(yè)

2020-11-30 08:34:44

大數(shù)據(jù)數(shù)據(jù)分析技術(shù)

2016-08-29 23:00:29

大數(shù)據(jù)數(shù)據(jù)分析

2022-10-08 07:17:14

架構(gòu)

2017-08-08 11:00:46

2015-09-15 09:36:12

大數(shù)據(jù)企業(yè)

2013-08-12 10:08:06

大數(shù)據(jù)存儲(chǔ)大數(shù)據(jù)分析

2022-02-17 08:35:59

OLTPOLAP數(shù)據(jù)倉(cāng)庫(kù)

2022-03-29 15:17:51

數(shù)據(jù)安全網(wǎng)絡(luò)安全

2022-10-14 18:22:18

KafkaHiveZooKeeper
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)