構建大型關係資料倉儲的十大最佳實踐
撰稿人: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...
資料倉儲之維度建模的十大原則
業務流程是組織執行的活動,它們代表可測量的事件,如下乙個訂單或做一次結算,業務流程通常會捕獲或生成唯一的與某個事件相關的效能指標,這些資料轉換 成事實後,每個業務流程都用乙個原子事實表表示,除了單個流程事實表外,有時會從多個流程事實表合併成乙個事實表,而且合併事實表是對單一流程事實表的一 個很好的補...