跳轉到主要內容
Beplay体育安卓版本平台的博客

加載數據倉庫數據模型與磚Lakehouse實時

維度建模實現現代lakehouse使用三角洲住表上
分享這篇文章

維度建模是一種最流行的數據建模技術構建一個現代數據倉庫。它允許客戶快速發展的beplay体育app下载地址事實和維度基於業務需求的企業。幫助客戶在這個領域時,我們beplay体育app下载地址發現了許多正在尋找最佳實踐和實現從磚參考體係結構。

在本文中,我們的目標是深入研究維度建模的最佳實踐對磚Lakehouse平台和提供一個生活例子加載一個企業級數據倉庫維度模型實時使用三角洲生活表。Beplay体育安卓版本

以下是我們將介紹高級步驟在這個博客:

  1. 定義一個業務問題
  2. 設計一個維度模型
  3. 維度建模的最佳實踐和推薦
  4. 實現一個磚Lakehouse維度模型
  5. 結論

1。定義一個業務問題

維度建模是麵向業務的;它總是開始於一個業務問題。在構建維度模型之前,我們需要了解業務問題解決,因為它表明資產將和消耗的數據終端用戶。我們需要設計數據模型來支持更容易和更快的查詢。

業務矩陣維度建模的基本概念,以下是業務矩陣的一個例子,行和列是共享維度代表業務流程。定義業務問題決定了糧食的事實數據和需要的尺寸。這裏的關鍵思想是,我們可以逐步構建額外的數據資產輕鬆基於業務矩陣及其共享或符合維度。

業務矩陣與共享維度和業務流程
業務矩陣與共享維度和業務流程

這裏我們假設業務發起人希望團隊建立一個報告給見解:

  1. 是賣什麼產品,這樣他們就可以了解產品受歡迎嗎
  2. 表現最好的商店是什麼店實踐學習好嗎

2。設計一個維度模型

基於定義的業務問題,數據模型設計的目的是有效地表示數據的可重用性、靈活性和可伸縮性。這裏是高級數據模型能夠解決上述業務問題。

圖表顯示了星型模式是如何工作的,用事實和維度Lakehouse建成的
Lakehouse維度模型

設計應該容易理解與不同的查詢模式和有效的數據。從這個模型,我們設計了銷售事實表來回答我們的業務問題;正如你所看到的,除了外鍵(顆)維度,它隻包含數字指標用來衡量業務,例如sales_amount。

我們還設計維度表等產品,商店,顧客,提供上下文信息的事實數據的日期。維度表通常與事實表回答特定的業務問題,如最受歡迎的產品對於一個給定的月,季店是表現最好的,等等。

3所示。維度建模的最佳實踐和推薦

與磚Lakehouse的平台,一個可以很容易地設計與實現維度Beplay体育安卓版本模型,並簡單地構建事實和維度對給定的主題區域。

以下是一些建議的最佳實踐而實現維度模型:

  • 應該要正規化維度表。而不是第三範式或雪花型模型,維度表通常是高度規範化和扁平的多對一的關係在一個維度表。
  • 使用符合維度表屬性在不同的維度表列名和域內容相同。這個優勢是來自不同事實表的數據可以合並在一個報告中使用符合維度屬性與每個事實表相關聯。
  • 通常的維度表的趨勢是在跟蹤更改尺寸隨著時間的推移,支持按原樣或就像報告。你可以很容易地應用下列基本技術處理維度基於不同的需求。
    • 1型技術覆蓋維度屬性的初始值。
    • 2型技術,最常見的鏡頭分割技術,你用它來準確的變更跟蹤。
    這可以很容易地實現與三角洲住表的實現。
    • 人們很容易執行SCD 1型或SCD 2型使用三角洲住表使用申請變更成
  • 主+外鍵約束允許最終用戶喜歡自己理解表之間的關係。
  • 使用標識列自動生成唯一的整數值,當添加新行。標識列是代理鍵的一種形式。指的是博客鏈接為更多的細節。
  • 執行檢查約束不要擔心數據質量和數據正確性問題偷偷靠近你。

4所示。實現一個磚Lakehouse維度模型

現在,讓我們來看一個例子的三角洲生活基於表的維度建模實現:

下麵的示例代碼顯示了我們如何創建一個維度表(dim_store)使用SCD 2型,變化數據捕獲從源係統。

——創建黃金表創建增量式生活dim_storeTBLPROPERTIES(“質量”=“黃金”)評論”緩慢變化維度2型存儲維度的金層”;——將所有更改存儲為SCD2申請更改live.dim_store流(live.silver_store)鍵(可以)序列通過updated_date*除了(_rescued_data input_file_name)存儲作為SCD類型2;

下麵的示例代碼顯示了我們如何創建一個事實表(fact_sale)的約束valid_product_id我們能夠確保所有事實記錄加載與之關聯的一個有效的產品。

——創建事實表銷售黃金層創建流媒體直播fact_sale (約束valid_store_business_key期望(store_business_key)違反下降,約束valid_product_id期望(product_id)違反下降)TBLPROPERTIES(“質量”=“金”、“ignoreChanges”=“真正的”)評論“黃金銷售事實表層”作為選擇sale.transaction_id,date.date_id,customer.customer_id,product.product_id作為product_id,store.store_id,store.business_key作為store_business_key,sales_amount流(live.silver_sale)出售內心的加入live.dim_date日期to_date (sale.transaction_date“M / d / yy”)=to_date (date.date“M / d / yyyy”)——隻有加入活動的客戶beplay体育app下载地址內心的加入(選擇*live.dim_customer在哪裏__END_AT)客戶sale.customer_id=customer.customer_id——隻有加入活動的產品內心的加入(選擇*live.dim_product在哪裏__END_AT)產品sale.product=product.SKU——隻有加入活動的商店內心的加入(選擇*live.dim_store在哪裏__END_AT)存儲sale.store=store.business_key

三角洲生活表管道能找到例子在這裏。請參考三角洲生活表快速入門如何創建一個三角洲住表管道。看到下麵,DLT提供完整的可見性在青銅ETL管道和不同對象之間的依賴關係,銀,金層之後lakehouse圖案架構

端到端DLT管道
端到端DLT管道

這是一個例子的維度表dim_store根據傳入的變化更新。下麵,商店布裏斯班機場被更新為布裏斯班機場V2,即用SCD 2型支持,截至2022年1月07年的原始記錄,並創建一個新記錄開始與一個開放在同一天結束日期(NULL) -這表明布裏斯班機場的最新紀錄。

化合物2型為存儲維度
化合物2型為存儲維度

更多的實現細節,請參閱在這裏整個筆記本的例子。

5。結論

在這個博客中,我們了解了詳細維度建模的概念,用δ的最佳實踐,以及如何實現他們生活表。

了解更多關於維度建模金博科技

開始在Lakehouse構建維度模型

磚免費試用14天

免費試著磚

相關的帖子

看到所有Beplay体育安卓版本平台的博客的帖子
Baidu
map