tft每日頭條

 > 圖文

 > 數倉測試詳細流程

數倉測試詳細流程

圖文 更新时间:2024-11-21 17:16:01

數倉測試詳細流程?編輯導語:數據倉庫有助于建立數據集合,進而支撐企業更好地做出決策支持,推動後續業務的進行那麼,構建數據倉庫的過程中需要注意什麼問題?本篇文章裡,作者總結、分享了數倉建模中的維度問題,一起來看一下,我來為大家科普一下關于數倉測試詳細流程?下面希望有你要的答案,我們一起來看看吧!

數倉測試詳細流程(數倉避坑搞懂維度模型)1

數倉測試詳細流程

編輯導語:數據倉庫有助于建立數據集合,進而支撐企業更好地做出決策支持,推動後續業務的進行。那麼,構建數據倉庫的過程中需要注意什麼問題?本篇文章裡,作者總結、分享了數倉建模中的維度問題,一起來看一下。

前言

這個系列将從小白視角講述構建數據倉庫過程所需的知識和問題,主要受衆是數據中台産品、數據開發、數據分析人員。

引入

在大學就聽說過數據倉庫,但是當時被書的厚度勸退。後來工作中要做數據倉庫,這次不得不咬牙重新翻開那些經典大頭書。

一開始,我想趕緊落地,快速過了一遍概念性的東西,業務過程、粒度、維度、事實、度量等等。做到中途發現,各種基礎抽象概念沒搞清,競品的某些功能我都看不懂。

正所謂欲速則不達,這些底層的知識,是數據類不變的産品的内核,搞懂了這些,才能跑得快、跑得穩、跑得遠。

一、什麼是模型,什麼是建模

什麼是模型?作為數據行業從業者,如果你從來沒有思考過這個問題,你一定要看下去。

先看一個例子:2021年 3 月 6 日,小明到樓下【行家】便利店買吃的,來來回回逛了幾圈,雖然很餓,但又想減肥,最終拿了 1 個【柯德吉】人造肉漢堡。

準備付賬的時候,收銀員跟他說,最近搞活動,加 4 塊可以選一瓶原價 8 塊的【卡石】酸奶。小明覺得很劃算,于是去拿了酸奶,一共付了 12 塊。

上面的這段文字,就是模型。

作為計算機專業的學生,第一次看到别人給我解釋這個模型的時候,我第一反應是What?這不就是一段文字嘛?都沒數據庫,都不是表單,這能算模型?

别急,先看看百度百科給出的模型定義。

模型,是指通過主觀意識借助實體或者虛拟表現構成客觀闡述形态結構的一種表達目的的物件(物件并不等于物體,不局限于實體與虛拟)。

簡單來說,模型是映射 “事實” 的東西,構建這個東西的動作就叫做建模。

其實,如果我們學了數據庫,且沒認真讀教科書,很容易狹隘地隻從數據庫、數據結構的層面去理解模型。

上述的例子,是一種“文字模型”。而且,這個模型還可以補充更多細節,比如,采用什麼方式付款、支付了多少錢。

為了表達更加簡潔,我們可以省略更多的信息,隻記錄關鍵信息:“ 2021年 3 月 6 日,小明買了,一個 柯德吉牌人造肉漢堡,一瓶卡石牌酸奶(共計 ¥12)”。

如果用 Excel,我們可以更加簡潔(節省空間你懂的):

二、範式模型,為了更好地記錄和更新

計算機的出現,也誕生了新的語言,我們也順理成章地開始用新語言去建模。

這裡,我省去長篇的對關系模型、範式模型的介紹,直接跳到應用場景,假設這個便利店用了現成的 ERP、CRM 系統,這些系統設計好了模型,數據會填充成如下的樣子。

1. 訂單表

2. 訂單詳情表

3. 商品詳情表

數據量不大,分析人員寫 SQL 直接對範式模型進行查詢,算賬分析無所不能,小幾十萬數據,速度完全 OK。

三、維度模型,為分析而生

範式模型很好地解決了快速記錄和節約存儲空間。

但事物都有兩面性,當數據量大的時候,從範式模型中查詢取數,就比較慢了。但數據量一大,就頂不住了。

人類社會,但凡出現問題,總會天降猛士。Innon 和 Kimball 等人提出來新方案:為數據分析設計一套新模型。

範式模型主要解決數據的插入和更新,維護一緻性等問題,維度模型則解決大數據場景分析的問題,這兩者也就是所謂的 OLTP 和 OLAP 。

通過一個荒誕的例子來理解兩者的區别。

你家是個大家族,七大姑八大姨,平時需要打電話聯系。範式建模:每個人隻存自己同輩人以及各自子女的聯系方式。如果叔叔想找侄子/侄女(你),隻能通過你爸爸。維度建模:所有的親戚聯系方式都寫到了一個家庭通訊錄上,想找人,直接找通訊錄。

這個例子現實生活不存在,主要想幫助大家理解兩種模型的差異:

    範式模型為了應對數據頻繁變更的場景,數據存得零散。為了保證數據的一緻性,還要符合一定的規範,我們常見的是三範式(3NF)。

    維度模型會将數據冗餘,把一些相關的數據存到一起,方便快速查詢取數。

維度模型的出現,就是為了解決大數據量導緻的查詢慢的問題。

四、維度建模的四大要素

數據倉庫領域的經典著作《維度建模工具箱》中,Kimball 定義了經典的維度建模的四步曲:選定業務過程、聲明粒度、确定維度、構建事實。

1. 業務過程

很多數據倉庫書籍都給出了業務過程的通用定義:業務過程是企業活動中的事件,如下單、支付、退款都是業務過程,業務過程是一個不可拆分的行為事件。

看完定義,我們就會犯難了,什麼是企業活動中的事件?打開手機付款,選擇支付寶和微信,這些操作算不算業務過程?

這裡,我們真得咬文嚼字,回歸場景。交易的場景,有 2 個參與方:消費者和便利店。

便利店作為企業,如果它關心的結果隻是消費者買了什麼、買了多少,那消費者選擇支付方式的事件,它完全不管,也不用記錄。

但如果用戶隻開通了微信支付,沒開通支付寶,因為支付問題導緻沒法成交,那企業肯定也會關心選擇支付方式這個事件以及其結果。

業務過程,是不可拆分的事件,而且是基于分析目标進行選定的。

理解一個詞,不能脫離情景,多嘗試将自己置于企業經營的情景下。

企業裡每天都有各種事情,而作為管理者的我們,最核心的關注點是什麼?是從收益、成本出發,價值鍊條上最具影響力的事情或者事件。

2. 粒度

理解粒度,其實很簡單:幹什麼樣的事情,會新增一條記錄。

小樂支付了一筆,系統會新增一條支付記錄,當我們要統計分析交易的訂單數時,訂單是最細的粒度。

而這筆交易中,包含了兩個商品,當我們要分析所有訂單賣出的商品數,每個商品則變成了最細粒度。

3. 維度

維度,就是我們要進行分析的角度。

比如,在便利店場景中,一天的經營結束了,可以按品牌的維度分析,各個品牌的酸奶銷售量;可以按日期維度分析,我們可以知道,周一到周日,每天的交易額如何。

某天,當我們發現交易數據發生異常的時候,我們可以按照品牌、日期等維度進行分析,逐個排查,直到找到根本的原因。

4. 事實

廣義地來說,所有被記錄下來的事情,都是事實。

而維度建模中,對事實進行了細分,事實包含 2 類屬性:維度、度量。維度就是上文所說的各個角度的數據,而度量,則通常是數值型的。

舉個例子,我們描述一個長方形,但是沒描述它具體多長、多寬,其他人是沒法确定這個長方形具體多大的。

隻有補充上它對應的維度和度量,人們才能理解。比如,長 4cm,寬 3cm。

長、寬是維度,4米、3米則是對應維度上的度量。

事實,就是描述客觀事物的所有核心信息的所有數據的集合。

五、總結

    模型是映射 “事實” 的東西,構建這個東西的動作就叫做建模。

    範式模型很好地解決了快速記錄和節約存儲空間的問題。

    維度模型是一種用于大數據量場景下實現快速分析的模型。

    維度建模有四大要素:業務過程、粒度、維度、事實。

數據分析,本質還是利用數據去分析客觀的規律,利用這些規律,進而進行經營戰略、營銷策略上的調整,以應對市場的變化。

用好維度建模,從數據中發現規律和秘密,更好地幫助企業提高效率和效益。

下期文章我們繼續聊數倉,帶你細品粒度~

作者:lee;公衆号:樂說樂言

本文由 @lee 原創發布于人人都是産品經理,未經許可,禁止轉載

題圖來自 Unsplash,基于 CC0 協議

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved