1. OLAP是什么1.1 OLAP的基本概念OLAP(online analysis processing),聯(lián)機(jī)分析處理技術(shù),多應(yīng)用于BI工具,也可以叫做OLAP工具/引擎/數(shù)據(jù)庫。它幫助數(shù)據(jù)分析師從多個角度對數(shù)據(jù)進(jìn)行分析和數(shù)據(jù)挖掘,用于多維數(shù)據(jù)查詢和報表處理的需求,核心是多維度。 提到多維度,就會有單維度、二維度,這時你就要在腦海里建立起“維”的概念,用維度去思考周圍的世界。 我舉一個服裝銷售的例子,商品銷售一般需要考慮的數(shù)據(jù)是銷售額、銷售成本和銷售利潤。下表是一張典型的二維數(shù)據(jù)表,其中月份就是一個關(guān)鍵的維度。 如果我想要在這張二維表的基礎(chǔ)上增加服裝的類別,比如說:毛衣、連衣裙、牛仔褲、半裙、T恤等,這時候維度就是月份和服裝的類別,度量值是銷售額、成本、利潤。 這就引入了概念:維度、維度的層次、類別、度量
1.2 OLAP是如何做多維分析的OLAP多維分析技術(shù)的數(shù)據(jù)處理邏輯是首先把數(shù)據(jù)預(yù)處理成數(shù)據(jù)立方體,可以簡單的理解為把源表選擇不重復(fù)的唯一值進(jìn)行分組,并把有可能的匯總都預(yù)先計(jì)算出來,當(dāng)用戶選擇多維度查詢或者分析時,會在預(yù)先計(jì)算出來的基礎(chǔ)上很快給出用戶想要的結(jié)果,從而快速支持極大數(shù)據(jù)量的分析。 而這其中又涉及到一個知識點(diǎn):數(shù)據(jù)立方,數(shù)據(jù)立方體是什么? 還以剛才講到的服裝銷售數(shù)據(jù)情況為例,將數(shù)據(jù)處理成數(shù)據(jù)立方體之后如下圖: 數(shù)據(jù)立方體還有一個高大上的名字:多維數(shù)據(jù)模型。例如,將上圖的立方體拆可解成一個多維數(shù)據(jù)模型: 當(dāng)然,實(shí)際上一個商品銷售表的維度絕不止這些。例如,增加地域維度、支付維度、用戶維度等之后,就形成了一個星型多維模型: 這張圖中間的表叫事實(shí)表,四周的表叫維表,事實(shí)表是用來記錄具體事件,包含具體要素。 例如:某人(用戶ID)在某地(地域ID)某時(時間ID)通過某種方式(支付ID)購買了某產(chǎn)品(產(chǎn)品ID),維度表是對事實(shí)表中的每個字段展開描述,例如用戶ID,展開成一張維度表,記錄該用戶的姓名、地址、年齡、性別等信息。 通過對源表中的事實(shí)表以及相關(guān)的維表通過不同的拆分組合形成和業(yè)務(wù)相關(guān)的,具有多維度的數(shù)據(jù)立方,讓數(shù)據(jù)根據(jù)不同的業(yè)務(wù)需求呈現(xiàn)出千變?nèi)f化的結(jié)果。 多維分析是以多維的形式組織數(shù)據(jù),并采用切片、切塊、鉆取、旋轉(zhuǎn)等多種分析方式探查數(shù)據(jù),使分析人員或者管理人員能夠從多方面、多角度去查詢數(shù)據(jù),從而得到有價值的信息。 所以針對數(shù)據(jù)立方體包含的操作有:下鉆(drill- down)、上卷(roll- up)、切片(slice)、切塊(dice)、旋轉(zhuǎn)(pivot)
1.3 OLAP的類別根據(jù)數(shù)據(jù)存儲格式OLAP可分為ROLAP、MOLAP、HOLAP。
在數(shù)據(jù)架構(gòu)時,目前沒有一個OLAP技術(shù)能在數(shù)據(jù)量,靈活程度和性能上(吞吐和并發(fā))做到完美,這塊大家可以深入了解后,根據(jù)自身的業(yè)務(wù)需求選擇相應(yīng)的技術(shù)。 2. OLAP怎么用?2.1 OLAP的實(shí)現(xiàn)架構(gòu)OLAP就是用來幫助我們解決數(shù)據(jù)訪問、快速的數(shù)據(jù)分析、報表展示等問題,OLAP多維分析的實(shí)現(xiàn)架構(gòu)大致包括:業(yè)務(wù)數(shù)據(jù)源、數(shù)據(jù)倉庫、多維分析模型設(shè)計(jì)、多維分析立方體生成、報表圖表制作。 業(yè)務(wù)數(shù)據(jù)源:OLAP可以支持多種數(shù)據(jù)源連接分析,主流數(shù)據(jù)源包括SQL類數(shù)據(jù)源,可將其進(jìn)一步劃分為關(guān)系數(shù)據(jù)庫與分析型數(shù)據(jù)庫,其次還有NoSQL類數(shù)據(jù)庫、大數(shù)據(jù)離線計(jì)算系統(tǒng)以及API類數(shù)據(jù)源,文件類數(shù)據(jù)源等。 數(shù)據(jù)倉庫:將業(yè)務(wù)數(shù)據(jù)源中的數(shù)據(jù)按照一些業(yè)務(wù)屬性相關(guān)規(guī)則進(jìn)行數(shù)據(jù)開發(fā)后,形成一個個主題數(shù)據(jù)庫存放于數(shù)據(jù)倉庫中,當(dāng)需要做數(shù)據(jù)分析時,直接從數(shù)據(jù)倉庫獲取相關(guān)主題數(shù)據(jù)。 多維分析模型:常用的多維分析模型有雪花模型和星型模型。
多維分析立方體:就是我們上文講到的數(shù)據(jù)立方體,數(shù)據(jù)立方體使OLAP工具能夠?qū)崿F(xiàn)便捷快速查詢、分析。 報表圖表制作:我們使用BI工具時,行外人最常接觸的功能,通過拖拉拽的方式,將數(shù)據(jù)用一個好看又直觀的方式展現(xiàn)出來。報表制作的組件有很多種,例如,柱狀圖、折線圖、雙軸圖(或叫柱線圖)、散點(diǎn)圖等。 2.2 OLAP的實(shí)施過程OLAP的實(shí)施步驟主要分為以下幾個階段: 2.2.1 需求階段 需求分析包括:通過調(diào)研得出的業(yè)務(wù)需求(從維度、各業(yè)務(wù)的分析主題等方面進(jìn)行描述)、性能需求(系統(tǒng)相應(yīng)時間的要求)、技術(shù)需求、安全性需求以及需求的優(yōu)先級等。 在需求階段,是我們熟悉相關(guān)業(yè)務(wù)知識的過程,這對我們接下來的設(shè)計(jì)環(huán)節(jié)至關(guān)重要。 2.2.2 規(guī)劃階段 在需求分析的基礎(chǔ)上,需要對項(xiàng)目的整體結(jié)構(gòu)有一定的了解,按照軟件工程的一般規(guī)則和方法規(guī)劃整個項(xiàng)目的過程。同時需要確定整個項(xiàng)目需要的資源,包括人力,做哪些相關(guān)培訓(xùn)等內(nèi)容。 2.2.3 設(shè)計(jì)階段 設(shè)計(jì)階段是整個OLAP實(shí)施最重要的階段,包括對模型的分析、維度的分析和設(shè)計(jì)、事實(shí)表的設(shè)計(jì)等內(nèi)容。其中模型的分析包括定義問題和確定分析的目標(biāo)和內(nèi)容,A這家電商公司全年銷售的毛衣的利潤總額是多少?在2020年第一年度,牛仔褲的利潤趨勢是什么? 維度的分析包括分析問題中所涉及的維度是哪些,每個主題中維度和度量值是多少。 2.2.4 構(gòu)建模型階段 根據(jù)業(yè)務(wù)需求確定需要分析的主題,根據(jù)分析的主題確定分析的粒度和度量值,包括分析的維度。例如,服裝銷售情況信息主題主要從服裝類別、日期兩個維度進(jìn)行分析,最后測試和驗(yàn)證模型的正確性。 2.2.5 報表展現(xiàn)階段 報表展現(xiàn)階段,就是將分析的結(jié)果以一種直觀、清晰明了的方式展現(xiàn)出來,可以利用一些成熟的報表工具展示(例如Cognos),也可以選擇自己開發(fā),在OLAP模型的基礎(chǔ)上進(jìn)行多角度的分析并展示,達(dá)到說明問題的效果。 3. 結(jié)語OLAP很大程度上能夠降低數(shù)據(jù)分析的使用門檻,大大降低了數(shù)據(jù)挖掘的成本,既方便數(shù)據(jù)分析師挖掘數(shù)據(jù),又能讓不熟悉sql語言的產(chǎn)品、運(yùn)營等業(yè)務(wù)同學(xué)通過簡單的鼠標(biāo)拖拽即完成數(shù)據(jù)分析或者查詢設(shè)計(jì)。 聯(lián)機(jī)分析處理技術(shù)是為了數(shù)據(jù)分析、數(shù)據(jù)查詢等需求能夠快速響應(yīng),BI工具是助力數(shù)據(jù)應(yīng)用的最后一公里,不論是處理簡單的報表需求還是真的幫助企業(yè)做職能決策,都是為了讓數(shù)據(jù)能夠真正的發(fā)揮價值。BI工具要想又快又好的完成需求,需要依附于OLAP技術(shù)。 當(dāng)我們接觸一個自己還不熟悉的新事物時,可以先去研究其來源、底層的邏輯,就會發(fā)現(xiàn)新事物相關(guān)的蜘絲馬跡,畢竟站在巨人的肩膀上我們能走的更遠(yuǎn),在你研究的過程中,說不定就發(fā)現(xiàn)了什么新大陸,成為下一個創(chuàng)新者。 本文由 @金豌豆 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理 |
|
來自: shawnsun007 > 《BI》