在整個數據分析流程中,數據處理的時間往往要占據70%以上!這個數字有沒有讓你震驚呢?為了提高分析效率和質量,借用數據倉庫進行數據分析是一個很好的選擇,詳細的工作方法本文都有所介紹。
首先,我們來了解一下數據倉庫吧!數據倉庫是一個面向主題的、集成的、相對穩定的、反應歷史變化的數據集合。那數據分析又是干什么的呢?筆者憑借個人的經驗認為,基于業務需求,結合歷史數據,利用相關統計學方法和某些數據挖掘工具對數據進行整合、分析,并形成一套最終解決某個業務場景的方案就是數據分析的過程。
數據分析大致包括以下流程:
業務理解 – 數據理解 – 數據準備 – 建模 – 評估 – 部署
由于數據分析對數據質量、格式的要求天然就比較高,對數據的理解也必須非常深刻,使得數據契合業務需求也要一定的過程,這樣,根據我們的經驗,在整個數據分析流程中,用于數據處理的時間往往要占據 70% 以上。
因此,如何高效、快速地進行數據理解和處理,往往決定了數據分析項目的進度和質量。而數據倉庫具有集成、穩定、高質量等特點,基于數據倉庫為數據分析提供數據,往往能夠更加保證數據質量和數據完整性。
利用數據倉庫進行數據分析無疑能夠給我們的工作帶來很大便利,那么,究竟要如何操作呢?我們首先需要了解數據倉庫的優勢,數據倉庫至少可以從如下三個方面提升數據分析效率:
1. 數據理解
數據倉庫是面向主題的,所以其自身與業務結合就相對緊密和完善,更方便數據分析師基于數據理解業務。下圖是Teradata關于金融行業的成熟模型:
(出自Teradata FS-LDM官方文檔)
我們可以看到,整個數據倉庫被分為十大主題,而金融行業所有的數據、業務都會被這十大主題涵蓋。當我們需要找某個信用卡賬戶信息時,我們就去協議(AGREEMENT)主題,需要某次存款交易信息時就去探尋事件(EVENT)主題,需要某個理財產品相關信息就挖掘產品(PRODUCT)主題,如此類推,我們就會發現十大主題將整個金融行業的數據劃分得非常清晰,我們需要做的就是拿到業務需求,理解數據倉庫的模型,數據理解也就水到渠成了。
2. 數據質量
數據分析要求數據是干凈、完整的,而數據倉庫最核心的一項工作就是ETL過程,流程如下:
而數據倉庫已經對源系統的數據進行了業務契合的轉換,以及臟數據的清洗,這就為數據分析的數據質量做了較好的保障。
3. 數據跨系統關聯
上圖是數據倉庫的一個簡單架構,可以看到,各業務源系統的數據經過ETL過程后流入數據倉庫,當不同系統數據整合到數據倉庫之后,至少解決了數據分析中的兩個問題:
第一,跨系統數據收集問題,同一個客戶的儲蓄交易和理財交易我們在同一張事件表就可以找到;
第二,跨系統關聯問題,同一個客戶可能在不同系統中記錄了不同的客戶號,甚至存在不同的賬號,進行數據整合時,總是需要找到共同的“紐帶”來關聯來自不同系統的信息,而數據倉庫在ETL過程中就會整合相關客戶信息,完美解決跨系統關聯問題。
可見,數據倉庫是整合的、面向主題的、數據質量高的、跨系統的優質數據源,那么,我們該如何充分利用這些優勢呢?筆者總結了如下經驗:
1. 研究數據倉庫模型:數倉的精髓就是面向主題的模型,能理解各大主題域范疇,熟悉不同主題間的關系,基本就掌握了數倉的架構;
2. 學習數據倉庫設計文檔:設計文檔是業務與數據,數倉與源系統的橋梁,熟悉表間mapping映射,就能快速定位需求變量的來源和處理邏輯,全面了解相關業務;
3. 熟悉數據字典表:數據字典是數據倉庫物理存儲的信息庫,可以通過數據字典了解庫、表、字段不同層級的關系、存儲、類型等信息;
4. 研究ETL腳本:學習幾個數據倉庫ETL加工腳本,能更細致的探索數據加工處理邏輯,更清楚的理解數倉加工模式,快速掌握數據加工技巧;
5. 觀察明細數據:想要真正了解數據,就必須對具體數據進行不同維度和層次的觀察;比如事件表,從交易類型、時間、渠道、業務種類等多個維度撈幾條數據,觀察某個相同條件下不同維度的交易變化,了解銀行交易的全景信息,幫助理解業務,熟悉數據。
事實上,除此之外,數據處理人員還應該從中學習到 數據倉庫的思想 :面向主題,逐層加工。
面向主題是指讓雜亂的數據結合業務劃分,更容易著手處理原本雜亂的數據,數據處理人員只需知道哪些數據屬于哪個主題,然后基于主題再進一步處理;逐層加工則是指讓細粒度的數據走向寬表的過程清晰,有層次,數據處理過程中清楚每一步的產出是什么。
其實,每一個數據分析師或者數據處理師都會有自己的工作習慣和經驗,以上是筆者經歷兩年多數據倉庫開發、三年數據倉庫和數據分析兼職者的經驗總結的一些心得,希望對大家有所幫助。