第一家公司的老數倉技術架構:mysql+kettle,分層s(ods)層、b層(有點記不清了,乙個是取資料,乙個是做拉鍊)、m層(根據業務設計的表:貸前loan_before、貸後loan_after,並且是拉鍊表_h)/a層(a_fc_analysis_user_info/a_fc_analysis_transaction_info)
第一家公司的新數倉技術架構:sqoop+hive,分成ods層(所有表都是儲存歷史全量快照,除了es對映的日誌表)、mid層(是拉鍊表,org_info資料量小、變化不大)、a層(a_fc_analysis_user_info/a_fc_analysis_transaction_info)
第二家公司的數倉:建立在阿里雲emr上,分層:ods層(快照,歷史儲存30/60/無限大天)、dwd層(模型)、dws層(報表)、rpt層(報表)
最近在開發乙個業務資料支撐的時候,我想用其他同事寫好的,rpt層的資料,這樣依賴要避免!正確做法是開發模型,然後盡可能的復用。當我把幾個表需要的使用者資料做好一張表之後,我發現rpt層的sql量大大減少,依賴關係也變得很清晰。我有點理解分層的意義了——減少冗餘的sql,避免重複執行浪費資源浪費時間,同時減少從ods到rpt的依賴的層數,便於後期維護。
¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
分割線¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
20201106更新
去年對分層的好處的理解是:復用。除此之外,增加其他幾點,總結如下:
1.復用性:避免重複開發、重複計算,節約資源。
2.易於理解:數倉是面向分析的,分層組織資料使資料更容易理解,比如在dwd層使用星型模型/寬表,便於理解和使用。
3.加快查詢:比如使用寬表,避免了多次join,可以從單錶快速支援需求產出結果;將資料做預聚合(輕度彙總層),減少計算量,加快查詢速度。
4.條理清晰:每一層各司其職。
5.容錯性:出現錯誤可以根據血緣關係快速進行錯誤的排查。比如在azkaban,可以看到flow的執行中的job的執**況,非常直觀。
資料倉儲為什麼要分層
如何分層 ods層是將oltp資料通過etl同步到資料倉儲來作為資料倉儲最基礎的資料 在這個過程中,資料經過了一定的清洗,比如欄位的統一,髒資料的去除等,但是資料的粒度是不會變化的。ods層的資料可以只保留一定的時間。mid中間層是採用inmon集線器架構的方式,使用正規化建模 貼源 的方法。這一層...
資料倉儲為什麼要分層
資料倉儲為什麼要分層 如何分層 為什麼要分層 空間換時間。通過建設多層次的資料模型供使用者使用,避免使用者直接使用操作型資料,可以更高效的訪問資料。把複雜問題簡單化。講乙個複雜的任務分解成多個步驟來完成,每一層只處理單一的步驟,比較簡單和容易理解。而且便於維護資料的準確性,當資料出現問題之後,可以不...
資料倉儲?為什麼要分層?
我們對資料進行分層的乙個主要原因就是希望在管理資料的時候,能對資料有乙個更加清晰的掌控,詳細來講,主要有下面幾個原因 官方定義 資料倉儲是乙個面向主題的 整合的 隨時間變化的 但資訊本身相對穩定的資料集合,用於對管理決策過程的支援。這個定義的確官方,但是卻指出了資料倉儲的四個特點。特點 面向主題 資...