2015-05-30 27 views
0

當建立一個數據倉庫,我通常看到的ETL處理方法主要有兩種:ETL - 視圖還是持久表?

1.查看 - 視圖查看 - 的意見的意見觀點 - ...

方法之一是顯然在數據庫中,並且具有您沒有那麼多冗餘數據的優點,但可能導致性能問題。

2.第二階段表(數據副本) - 明確表(數據副本) - 數據倉庫表(數據副本) - ...

方法有兩個可能有許多工具來完成存儲過程和作業或者像SSIS這樣的ETL工具。 這裏的好處是,可以很容易地理解這個過程,因爲你可以很好地形象化它。您通常也具有非常好的整體ETL性能和許多預定義的任務等。 例如,一個問題可能是過程的更改更復雜,因爲必須更改持久表。

在現實世界中,您通常會看到兩者的混合體,特別是在許多人蔘與過程中。 當然,這也取決於情況(表格的大小,這家公司設計的類似流程是如何設計的,ETL流程有多複雜,......)。

我個人更喜歡複製表,保持ETL過程簡單,如果可能的話做的ETL工具(通常在SSIS我的情況)都被設計用於此目的。

但什麼是最佳實踐,爲什麼?

回答

0

views DWH中的視圖視圖不會隨着數據量而縮放。說到dwh,我的意思是我們正在談論大量的數據。整合來自多個來源的數據是dwh的常見用例。 Stage-> tranform - > fact/dim是如何構建dwh以存儲數據的最常見方式之一。是的,當我們談論hdfs和其他技術時,這會有所改變,但意見不能在dwh中給你期望的表現。 我見過許多系統和所有的人都多步ETL過程,你首先從源獲取數據到數據倉庫,然後清潔/處理/符合/ ETL通過/人到您的二維/其他模型轉換這個數據。

0

如果你想知道點即時參考的數據關係,在維DW實現爲2型或類型3緩慢變化維,你可能不會在源系統中找到。

通過garpitmzn提到的規模問題不僅僅是數據量,而且還加入必要的調整和denormalise數據進行多維分析。使用視圖(除非具體化),您可以爲每個查詢重複可能的複雜聯接。在維度加載的時候最好做一次。