簡體   English   中英

具有非透視數據的數據倉庫

[英]Data warehouse with unpivoted data

我正在為特定客戶的公司(我正在為之工作)核心 ERP 應用程序構建數據倉庫。

在源數據庫中,數據倉庫中的大部分維度信息基本上都以非透視方式存儲,因為應用程序是根據客戶要求定制的產品。

對於我正在使用的當前客戶,我可以取消透視並提取數據。 但我擔心的是,如果我們要重用數據倉庫(也與其他客戶一起),那么我認為根據他們對字段進行分類的方式,數據倉庫 model 將無法調整,需要進一步定制。

請讓我知道是否有任何有效的機制來克服這個設計問題。

以下是產品在源數據庫中分類方式的示例(這也適用於大多數其他主數據分類),

Product Code  MasterClassification  MasterClassificationValue
------------  --------------------  -------------------------
AAA           Brand                 AA
AAA           Category              A

相同的數據集:

Product Code  Brand  Category
------------  -----  --------
AAA           AA     A

提前致謝。

這是一個經典且有據可查的數據問題。 您所描述的“未透視”被稱為 EAV。 我建議您將“EAV”與“報告”一起搜索。 你不是一個人!

源系統中存儲的維度數據是非透視的,這是有道理的——它是一個數據庫,因此應該對其進行規范化。 如何在數據倉庫中處理它是另一個問題。

在之前的工作中,我們爭論過我們是否應該以及如何攜帶旋轉/非規范化/“寬而淺”的數據。 在我們的實現中,每個表都帶有一個視圖(包含 ETL 邏輯)和一個過程(用於加載表)。 這是很多基礎設施,所以我們在添加另一個表之前三思而后行。 此外,對透視數據的需求通常來自分析團隊在 Tableau 中的使用,Tableau 是一種可以輕松使用非透視/“窄而深”數據並對其進行透視的工具——因此我們經常爭論是否真的需要透視數據。

最終,我們決定偶爾攜帶透視數據,但只能通過報告視圖。 (我們有命名約定來區分報告視圖和 ETL 視圖。)我認為這是您應該考慮的一種方法,原因是您自己提到的:可以添加新類別,從而使您的透視設計過時。 此外,如果您有多個客戶使用此數據,則每個客戶可能對一組不同的類別感興趣。 您可以在此表的頂部為每個客戶投射自定義的透視報告視圖。 這聽起來像是很多工作,但我認為這比每次您意識到添加了一個新類別時重做一個數據透視表的工作量要少。 祝你好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM