構建大型關係資料倉儲的十大最佳實踐

2022-07-13 04:45:11 字數 1626 閱讀 7036

構建大型關係資料倉儲的十大最佳實踐

撰稿人stuart ozer、prem mehra 和 kevin cox

技術審閱lubor kollar、thomas kejser、denny lee、jimmy may、michael redman 和 sanjay mishra

構建大型關係資料倉儲是一項複雜的任務。本文介紹一些使用 sql server 構建高效的大型關係資料倉儲時的設計技巧。由於大多數大型資料倉儲都使用表分割槽和索引分割槽,所以,本文中的許多建議都涉及區。這些技巧大都是使用 sql server 2005 構建大型資料倉儲的經驗之談。

考慮將大型事實資料表分割槽

當限制在單個分區內時,查詢速度會更快。

一般應用日期當作事實表的分割槽鍵。

應用查詢分割槽消除。

基於事實資料表日期鍵生成聚集索引

仔細選擇分割槽粒度

分割槽粒度會影響查詢並行度。

如果需要 maxdop 並行度(假設 maxdop = 4 或更大),應避免常用查詢只搜尋兩三個分割槽的分割槽設計。

恰當地設計維度表

對每個維度表的業務鍵(非**鍵)生成聚集索引。

對每個維度表的維度鍵(**鍵)生成非聚集主鍵索引。

對其他經常搜尋的維度列生成非聚集索引。

避免將維度表分割槽。

避免事實資料表和維度表之間存在主鍵-外來鍵關係。允許快速載入。通過 transform lookups 確保完整性,或在資料來源處執行完整性檢查。

編寫有效的查詢,以便消除分割槽

使用可調視窗方法維護資料

有效載入初始資料

對每個臨時表生成聚集索引,然後建立適當的 check 約束。不要使用 sort_in_tempdb 選項。

使用 switch 將所有分割槽切換到分割槽表中。

對分割槽表生成非聚集索引。

在吞吐量可達到 14 gb/秒的 san 中,在 64 個 cpu 的伺服器上,一小時之內可以載入 1 tb(非索引表)。有關詳細資訊,請參閱 sqlcat 部落格文章

有效刪除舊資料

通常,以下方法更快

或者,在迴圈中重複使用以下語句,「分批」刪除

delete top (1000) ... ;

commit

手動管理統計資訊

考慮有效的備份策略

使用 san 技術的快照備份是個非常不錯的選擇。

定期減少要備份的資料量。

請注意,不能對唯讀檔案組並行執行 restore。

資料倉儲 維度建模十大原則

遵循這些原則進行維度建模可以保證資料粒度合理,模型靈活,能夠適應未來的資訊資源,違反這些原則你將會把使用者弄糊塗,並且會遇到資料倉儲障礙。原則1 載入詳細的原子資料到維度結構中 維度建模應該使用最基礎的原子資料進行填充,以支援不可預知的來自使用者查詢的過濾和分組請求,使用者通常不希望每次只看到乙個單...

資料倉儲經理領銜 高薪酬的十大IT職位

文章講的是資料倉儲經理領銜 高薪酬的十大it職位,企業對於大資料技術的旺盛需求已經在相關it職位的薪酬水平上得到體現。在 2014薪酬調查指南 中,robert half techology 簡稱rht 彙總出資料及資料管理領域的十大it職位。其中收入水平最高的是資料倉儲經理,職位起薪在11萬525...

資料倉儲之維度建模的十大原則

業務流程是組織執行的活動,它們代表可測量的事件,如下乙個訂單或做一次結算,業務流程通常會捕獲或生成唯一的與某個事件相關的效能指標,這些資料轉換 成事實後,每個業務流程都用乙個原子事實表表示,除了單個流程事實表外,有時會從多個流程事實表合併成乙個事實表,而且合併事實表是對單一流程事實表的一 個很好的補...