數據倉庫與ODS的區別

我在公司的數據部門工做,天天的訂單類數據處理流程大體以下:數據庫

  1. 刪除分析數據庫的歷史訂單數據
  2. 全量更新訂單數據到分析數據庫。(因爲訂單核心數據不大,因此經受得起這麼折騰)
  3. 將數據簡單清洗,並生成數據集市層
  4. 分析處理,產出報表。固然還有其餘的數據也是這麼處理的(好比產品的數據、景區的數據、票種的數據、供應商的數據等等)

還有日誌類的數據,這裏不是重點,就不介紹了!這麼幹了一年,發現有以下問題:架構

  • 業務變化很快,好比業務數據表常常變化字段含義、增長各類邏輯數據等
  • 業務數據源愈來愈多,隨着品類愈來愈多,新部門逐步成立,數據源也就愈來愈多樣化
  • 需求愈來愈多,愈來愈複雜,之前只有大佬想咱們要戰略數據,但是如今全部的產品和運營都向咱們要各類各樣的用戶行爲數據、訂單分析數據和競對優點數據
  • 數據的實時行要求愈來愈高,這到不是說秒級別就看見結果,而是早晨提出個新業務數據需求,晚上就要!

數據畢竟是爲了市場服務的,因此需求咱們要跟上它的節奏,這就對數據系統提出了很大的挑戰,致使數據質量降低、生產效率降低!該怎麼解決哪?在解決這個問題的過程當中,逐步發現了一點苗頭:發現咱們創建的數據倉庫與它的定義不太符合。下面是數據倉庫的定義:spa

數據倉庫(Data Warehouse:是一個面向主題的(Subject Oriented)、集成的(Integrated)、相對穩定的(Non-Volatile反映歷史變化(Time Variant)的數據集合,用於支持管理決策(Decision Making Support).net

很明顯咱們並不符合相對穩定的和反應歷史變化的兩個條件,由於相似訂單類數據,天天全量更新(緣由是同一個訂單狀態隨着時間會變化,好比今天買了,明天退貨了)。這就明顯不符合想對穩定這一律唸了,更別說反應歷史變化了!通過最近的思考,發現本身搭建的系統更符合ODS的定義:日誌

ODS是一個面向主題的、集成的、可變的、當前的細節數據集合,用於支持企業對於即時性的、操做性的、集成的全體信息的需求。blog

那麼你們可能會問ods和數據倉庫的區別是什麼哪?答:ods是短時間的實時的數據,供產品或者運營人員平常使用,而數據倉庫是供戰略決策使用的數據;ods是能夠更新的數據,數據倉庫是基本不更新的反應歷史變化的數據,還有不少,這裏就不一一列舉了。ci

講到這裏問題就明晰了,如何能搭建一個體系,既能支持戰略決策使用的數據倉庫數據,又能兼容業務快速的變化和運營產品人員平常需求的ODS數據哪?開發

數據倉庫和ODS並存方案

通過調研,發現大致上有三種解法:數據分析

一、業務數據 - ODS - 數據倉庫產品

優勢:這樣作的好處是ODS的數據與數據倉庫的數據高度統一;開發成本低,至少開發一次並應用到ODS便可;可見ODS是發揮承上啓下的做用,調研阿里巴巴的數據部門也是這麼實現的。

缺點:數據倉庫須要的全部數據都須要走ODS,那麼ODS的靈活性必然受到影響,甚至不利於擴展、系統的靈活性差

二、OB - ODS

優勢:結構簡單。通常的初創數據分析團隊都是相似的結構,好比咱們部門就應該歸結到這一範疇

缺點:這樣全部數據都歸結到ODS,長期數據決策分析能力差,軟硬件成本高,模塊劃分不清晰,通用性差

三、數據倉庫和ODS並行

可見這個模型兼顧了上面提升的各自優勢,且便於擴展,ODS和數據倉庫各作各的,造成優點互補!能夠解決如今互聯網公司遇到的快速變化、快速開發等特色!特別是對於那些剛剛建立數據團隊,數據開發人員緊缺的公司,能夠嘗試使用這個數據架構解決問題!

參考資料:

http://wenku.baidu.com/view/c620146c7e21af45b307a86e?fr=prin

http://blog.csdn.net/hero_hegang/article/details/8691912

相關文章
相關標籤/搜索