如何通過數據模型設計生成數倉開發腳本(DML)

2021-02-08 Datablau
眾所周知在數據建模工具中設計的ER圖可以直接產生DDL腳本並執行到資料庫生成資料庫schema,稱為正向工程。另一方面,在數倉設計開發過程中常常使用DML。(DML是Data Manipulation Language的縮寫,意思是數據操作語言,是指在SQL語言中,負責對資料庫對象運行數據訪問工作的指令集,以INSERT、UPDATE、DELETE三種指令為核心,分別代表插入、更新與刪除,是開發以數據為中心的應用程式必定會使用到的指令。)
在數倉開發過程中,就是要把數據像整理衣櫃一樣分層治理好,比較經典的就是三層維度模型。

 

我們通常先設計數倉模型(明細層和匯總層),一般做法是將源端(OLTP)或ODS貼源層的數據模型先複製一份,基於數倉需求通過對多張表的合併、加工、轉換來設計數倉模型。之後再基於源端或ODS貼源層的數據模型和數倉模型的對應關係,包括維度表和事實表的加載邏輯、各業務系統的維度表和事實表的加載邏輯、各業務整體維度表以及基於事實表產生對應的維度指標和度量值。來開發DML腳本。



這種方法費時費力,存在大量重複性工作,不斷在源端模型,數倉模型,ETL之間切換,效率極低。有沒有方法只關注模型設計,直接在源端模型上做數倉模型設計,選取或拖拽寬表,然後直接生成DML腳本呢?在數據模型設計工具中使用源和目標系統的加工邏輯,加速創建源到目標的元數據驅動的映射。拖放方法和自動映射功能替代了傳統的手工方法,同時可以管理事前的數據血緣管理。




關於Datablau

Datablau創建於2016年,核心創始和研發團隊全部來自於原CA erwin,天然具有世界級產品廠商的血緣和水準,是國內數據治理的第一品牌。依託多年的行業積累和技術沉澱,Datablau在產品設計層面充分發揮了後天優勢,實現了集數據建模、數據目錄、數據質量和數據準備為一體的企業級數據治理平臺,全面滿足企業對於數據治理的客觀需求。

目前Datablau在建設銀行、華為、中信集團、嘉實基金、中國人壽、國電大渡河、四川航空等大型客戶得到實際應用並深受好評,客戶範圍已經覆蓋到銀行、保險、製造業和能源行業等核心領域,Datablau已成為企業數據治理領域的領導廠商。


王琤Allen  CEO

曾任CA ERwin全球研發負責人,2006年加入CA,十幾年經驗在數據建模領域,客戶多來自世界500強、美國銀行(BOA)、SunTrust、AT&T、殼牌等深度參與建設銀行新一代系統數據模型設計。多項專利和論文關於統一(關係型與非關係型)數據建模。復旦大學、北京航空航天大學 客座講師。IEEE member、 OMG member、DAMA member。

相關焦點

  • 馬蜂窩數據中臺起步建設:數倉的架構、模型與應用
    3、設計流程馬蜂窩數倉模型設計的整體流程涉及需求調研、模型設計、開發測試、模型上線四個主要環節,且規範設計了每個階段的輸出與輸入文檔。模型開發:就是對模型計算腳本的代碼實現過程,其中包含了數據映射、腳本實現、測試驗證等開發過程。單元測試完成後需要通知業務方一起對模型數據進行業務驗證,對驗證問題做收集,返回驗證模型設計的合理性。
  • 數據倉庫模型設計與工具
    數據模型對於數倉是最核心的東西,數據模型是數據組織和存儲方法,模型的好壞,決定了數倉能支撐企業業務多久。為什麼大多數企業,數倉都要重建,這不僅僅是業務拓展、發展迅速,很大一部分是因為模型建的很爛。
  • 基於MaxCompute的數倉數據質量管理
    隨著業務的增加,數據的應用越來越多,企業在創建的數倉過程中對數據的管理也提出了更高的要求,而數據質量也是數倉建設過程不容忽視的環節。本文針對MaxCompute數倉建設過程中如何做數據質量給出規範建議,為實際數據治理提供依據及指導。
  • 數據研發同學,如何設計企業數據倉庫?
    在目前大數據時代,企業如何構建好自己的數據倉庫,個人認為,目前數據倉庫類型主要分為兩種,一種是離線數據倉庫,一種是實時數據倉庫,這兩種數據倉庫的主要區別在於業務對於數據計算延遲的敏感度。這兩種數倉雖然從技術實現上有一定差異,但是整體模型構建上,卻有很多的相似點。離線數據倉庫設計離線數據倉庫的設計,主要分為三層結構,ODS層(原始數據層),DWD層(公共明細層)和DWS(公共匯總層),APP層(業務數據應用層)。
  • 如何設計一個規範的數據倉庫
    數倉分層的主要原因:清晰數據結構每一個數據分層都有它的作用域,這樣在使用表的時候能更方便的定位和理解。數據血緣追蹤由於最終給業務呈現的是一個能直接使用的業務表,但是表的數據來源有很多,如果有一張來源表出問題了,我們希望能夠快速準確的定位到問題,並清楚他的危害範圍。
  • 漫談數倉OLAP技術
    數據應用,是真正體現數倉價值的部分,包括且又不局限於 數據可視化、BI、OLAP、即席查詢,實時大屏,用戶畫像,推薦系統,數據分析,數據挖掘,人臉識別,風控反欺詐,ABtest等等。
  • 關於AI文本生成動畫模型的論文
    近日,迪士尼研究所和羅格斯大學的科學家共同發表了關於AI文本生成動畫模型的論文。 研究人員表示,這種算法只要在輸入的文本中描述某些活動即可,不需要注釋數據和進行大量訓練就能產生動畫。 這篇論文中,研究人員進一步提出了端到端模型,這種模型可以創建一個粗略的故事版和電影劇本的視頻,用來描繪電影劇本中的文字。
  • 基於Kafka+Flink平臺化設計,實時數倉還能這樣建
    二、Flink+Kafka 平臺化設計基於以上情況,我們想要對 Kafka+Flink 做一個平臺化的開發,減少用戶的開發成本和運維成本。實際上在 2018 年的時候我們就開始基於 Flink 做一個實時計算平臺,Kafka 在其中發揮著重要作用,今年,為了讓用戶更加方便、更加容易的去使用 Flink 和 Kafka,我們進行了重構。
  • 五大關鍵能力,華為云云原生數據倉庫GaussDB(DWS)深度技術解讀
    同時,我們還集成了現代編譯器技術,利用LLVM框架,運行時動態生成執行代碼,減少無關指令生成;數據量越大,可獲得的性能提升效果越好。  正是因為有這樣一個全並行計算引擎,我們可以將系統資源最大化利用,提供極致的分析性能。
  • 你的數據倉庫既要有「維度模型設計」也要看「分層架構」
    維度模型設計和分層架構都是數據倉庫必不可缺的。維度建模以分析決策的需求出發構建模型,構建的數據模型為分析需求服務,因此它重點解決用戶如何更快速完成分析需求,同時還有較好的大規模複雜查詢的響應性能。而分層架構的設計的主要是為在管理數據的時候,能對數據有一個更加清晰的掌控。
  • 基於大概念和開發模型的 Arduino 學習活動設計路徑
    本期《271教育研究》文章是來自濰坊峽山實驗初中王福榮老師的《基於大概念和開發模型的Arduino學習活動設計路徑 》。本文通過文獻研究和課堂實踐,構建基於大概念和開發模型的學習活動設計思路,讓學生更有效地開展Arduino學習,培養學生學科核心素養。[ 關鍵詞 ] 大概念;開發模型;Arduino 學習活動設計 近年來STEAM 教育、創客教育在中小學愈發重視,其中基於Arduino 的作品設計能夠更好地落實新課程標準,培養學生的動手能力、創新能力和運用信息技術解決問題的思維品質。
  • 58商業數倉建設實踐
    商業數倉架構58商業數倉架構分為四層:ODS ( 貼源層 ):其中包括埋點的數據採集、傳輸,離線、實時、多維分析所使用數據的源頭;DWD ( 明細數據層 ):涵蓋了業務數據倉庫、客戶數據倉庫、廣告數據倉庫、全站用戶行為數據倉庫等等;
  • 數據倉庫入門,看這一篇文章就夠了
    今天跟著我來學學數據倉庫的基礎知識,通過本文的閱讀,你將獲得以下方面的認知:什麼是數倉數倉的核心概念數倉的分層架構數據倉庫概述數據倉庫,顧名思義數據倉庫本質上是一種特殊的數據組織形式:面向主題,即數據倉庫中表的設計是按照一個個主題進行組織的而非按照業務流程設計;集成性,是指將企業中各大業務系統進行數據集中、整合、加工從而形成全局統一的數據視圖;
  • 天貓面試真題:如何進行資料庫設計?
    建庫腳本,也可以通過 PowerDesigner 工具生成 CDM,即 Database->PDM->LDM->CDM,稱為反向工程。邏輯設計階段邏輯設計階段是將概念數據模型轉換為具體的 DBMS 所支持的數據模型,並將進行優化。雖然 LDM 獨立於 DBMS 的,但可以進行外鍵,索引,視圖等對象的設計工作。
  • 阿里巴巴雲原生實時數倉核心技術揭秘
    提出HSAP(HybridServing & Analytics Processing)服務分析一體化的系統設計理念,同一份數據同時滿足實時離線在線場景的計算需求,極大的簡化了數倉架構的複雜度,降低了成本,重新定義數倉趨勢。
  • 【原創】-數據倉庫的由來?
    資料庫通常追求業務交易的數據,交易數據的完整性,數據的一致性,在遵從三大範式的情況下,減少數據的冗餘性,使得在數據存儲性能上實現最優解。 2、數據分析的效率、複雜語句查詢的速度,數據之間的相互關聯,在數倉中,更偏向通過對業務源數據的理解,加工出適合開發的多維數據模型,從而提高數據分析的效率。
  • 關於數據倉庫建設,了解這7點就夠了
    ETL 可以是 MapReduce 腳本或 HiveSQL。實時數倉分層:為更好的統一管理數據,實時數倉可採用離線數倉的數據模型進行分層處理,可以分為實時明細層寫入druid等查詢效率高的存儲方便下遊使用;輕度匯總層對數據進行匯總分析後供下遊使用。數據流轉方案:實時數倉的數據來源可以為kafka消息隊列,這樣可以做到隊列中的數據即可以寫入數據湖用於批量分析,也可以實時處理,下遊可以寫入數據集市供業務使。
  • 基於Python腳本的R語言的函數
    這是數據科學和機器學習的一場大的爭論。毫無疑問,這兩種語言在最近幾年都取得了巨大的進展,成為數據科學、預測分析和機器學習的首選程式語言。事實上,在IEEE新近的一篇文章中,Python取代C++成為2018年的頂級程式語言,R已經牢牢地保住了它在前10名中的位置。 然而,這兩種程式語言之間存在著一些本質的差異。R主要是為數據分析問題的統計分析和快速原型化而開發的工具。
  • 基於WebGL的在線3D建模與互動腳本開發系統 ThingJS
    GL中的3D框架進行3D開發,界面設計採用HTML5,系統腳本採用 JavaScript。完整的平臺系統包含七大模塊:3D場景搭建、模型操作、模型導入、模型導出、場景渲染、壓縮與解壓、信息存儲與顯示。各模塊獨立又緊密聯繫,核心的核心主要是3D建模與場景搭建、交互控制開發,ThingJS本著加速3D項目開發的原則,做了間接的封裝,擁有自己的平臺特色。
  • 輕鬆構建 PyTorch 生成對抗網絡(GAN)
    主要內容課題及方案概覽模型的開發環境生成對抗網絡模型模型的訓練和驗證結論與總結課題及方案概覽下面顯示的兩組手寫體數字圖片,您是否能從中夠辨認出由計算機生成的『手寫』字體是其中哪一組?2016年,Alec Radford 等發表的論文 《深度卷積生成對抗網絡》(DCGAN)中,開創性地將卷積神經網絡應用到生成對抗網絡的模型算法設計當中,替代了全連結層,提高了圖片場景裡訓練的穩定性。