多數(shù)
BI
解決方案的好壞僅取決于用來提取、轉(zhuǎn)換數(shù)據(jù)以及將數(shù)據(jù)裝載到關(guān)系數(shù)據(jù)存儲(chǔ)中的方法。
ETL
(數(shù)據(jù)的提取、轉(zhuǎn)換和加載)過程的設(shè)計(jì)和實(shí)現(xiàn)是數(shù)據(jù)倉庫解決方案中極其重要的一部分。
ETL
過程用于從多個(gè)源提取業(yè)務(wù)數(shù)據(jù),清理數(shù)據(jù),然后集成這些數(shù)據(jù),并將它們裝入數(shù)據(jù)倉庫數(shù)據(jù)庫中,為數(shù)據(jù)分析做好準(zhǔn)備。下面對(duì)
SQL SERVER
和
DB2
數(shù)據(jù)倉庫設(shè)計(jì)中的
ETL
環(huán)節(jié)做個(gè)簡要的分析和對(duì)比:
?
一
SQL Server 2000
:
DTS
數(shù)據(jù)轉(zhuǎn)換服務(wù)
數(shù)據(jù)轉(zhuǎn)換服務(wù)是數(shù)據(jù)倉庫框架的一部分,可以與數(shù)據(jù)倉庫框架的所有元素進(jìn)行交互。作為用于從
OLEDB
和
ODBC
兼容數(shù)據(jù)源中完全提取異類數(shù)據(jù)(通過轉(zhuǎn)換操作數(shù)據(jù)并將其裝載到可分析的多維數(shù)據(jù)存儲(chǔ)中)的服務(wù)提供程序,
DTS
在成功實(shí)現(xiàn)這些解決方案的過程中扮演了重要角色。
DTS
提供了以下功能,即提取異類數(shù)據(jù)、自動(dòng)轉(zhuǎn)換數(shù)據(jù)以及支持將數(shù)據(jù)從
OLTP
架構(gòu)裝載到采用維度模型的數(shù)據(jù)存儲(chǔ)的端到端進(jìn)程。
?
?
?
二
DB2
:
ETL
轉(zhuǎn)換過程
?
DB2
中的
ETL
數(shù)據(jù)轉(zhuǎn)換操作大致可以分為
6
個(gè)模塊:數(shù)據(jù)的提取、驗(yàn)證、清理、集成、聚集和裝入。
?
?
?
三
ETL
模塊
?
?
數(shù)據(jù)提取
數(shù)據(jù)提取是捕獲源數(shù)據(jù)的過程。有兩種捕獲數(shù)據(jù)的主要方法:
(
1
)完全刷新:對(duì)移入中間數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行完全復(fù)制。該復(fù)制可能替換數(shù)據(jù)倉庫中的內(nèi)容,及時(shí)在新的時(shí)間點(diǎn)上添加完整的新副本,或者與目標(biāo)數(shù)據(jù)進(jìn)行比較,以便在目標(biāo)中生成一條修改記錄。
(
2
)增量更新:只捕獲源數(shù)據(jù)中修改的數(shù)據(jù),如何捕獲數(shù)據(jù)修改與數(shù)據(jù)源本身是密切相關(guān)的,實(shí)際上是逐個(gè)實(shí)現(xiàn)的問題。
?
數(shù)據(jù)驗(yàn)證
在項(xiàng)目的業(yè)務(wù)數(shù)據(jù)分析階段,您產(chǎn)生了一組數(shù)據(jù)質(zhì)量假設(shè)。這些假設(shè)將指定客戶和解決方案提供者雙方在數(shù)據(jù)質(zhì)量問題上的職責(zé)。解決方案提供者通常關(guān)心數(shù)據(jù)清理和增強(qiáng)問題。客戶至少要關(guān)注僅僅可以在數(shù)據(jù)源本身中解決的問題,以及與解釋數(shù)據(jù)含義相關(guān)的數(shù)據(jù)質(zhì)量問題。例如:
(1)?????????????
丟失的數(shù)據(jù)恢復(fù)。
(2)?????????????
模糊的數(shù)據(jù)轉(zhuǎn)換。
(3)?????????????
業(yè)務(wù)操作應(yīng)用程序相關(guān)的數(shù)據(jù)問題
——
只能從應(yīng)用程序本身解決的數(shù)據(jù)質(zhì)量問題。
您應(yīng)該在項(xiàng)目合同文檔中包含
數(shù)據(jù)質(zhì)量假設(shè)
,因?yàn)槿绻麤]有用正確的方法及時(shí)解決業(yè)務(wù)數(shù)據(jù)的質(zhì)量問題,它可能嚴(yán)重影響項(xiàng)目時(shí)間表。數(shù)據(jù)質(zhì)量假設(shè)可能是與客戶進(jìn)行時(shí)間表協(xié)商的一個(gè)好基礎(chǔ)。數(shù)據(jù)驗(yàn)證包含許多檢查,其中包括:
(1)?????????????
屬性的有效值(域檢查)。
(2)?????????????
屬性在剩余行的環(huán)境中是有效的。
(3)?????????????
屬性在該表或其他表中相關(guān)行的環(huán)境中是有效的。
(4)?????????????
關(guān)系在該表和其他表中的行間是有效的(外鍵檢查)。
?
數(shù)據(jù)清理
數(shù)據(jù)清理是清理有效數(shù)據(jù),使之更精確更有意義的過程。數(shù)據(jù)清理包括下列等任務(wù):
(1)?????????????
從數(shù)據(jù)源的數(shù)據(jù)合并。
(2)?????????????
域轉(zhuǎn)換和同步。
(3)?????????????
數(shù)據(jù)類型和格式的轉(zhuǎn)換。
(4)?????????????
用于不同目標(biāo)表的數(shù)據(jù)分離。
數(shù)據(jù)集成
數(shù)據(jù)集成是將多個(gè)數(shù)據(jù)源聯(lián)合成一個(gè)統(tǒng)一數(shù)據(jù)接口來進(jìn)行數(shù)據(jù)分析的過程
。數(shù)據(jù)集成是倉庫數(shù)據(jù)轉(zhuǎn)換過程中最重要的步驟,也是數(shù)據(jù)倉庫設(shè)計(jì)中的關(guān)鍵概念。
數(shù)據(jù)集成可能極其復(fù)雜。在該模塊中,可以應(yīng)用數(shù)據(jù)集成業(yè)務(wù)規(guī)則以及數(shù)據(jù)轉(zhuǎn)換邏輯和算法。集成過程的源數(shù)據(jù)可以來自兩個(gè)或更多數(shù)據(jù)源;它通常包含不同的連接操作。源數(shù)據(jù)還可能來自單個(gè)數(shù)據(jù)源;該類型的數(shù)據(jù)集成通常包含域值的合并和轉(zhuǎn)換。集成結(jié)果通常生成新的數(shù)據(jù)實(shí)體或?qū)傩裕子诮K端用戶進(jìn)行訪問和理解。
?
?
數(shù)據(jù)聚集
數(shù)據(jù)聚集是收集并以總結(jié)形式表達(dá)信息的過程。數(shù)據(jù)聚集通常是數(shù)據(jù)倉庫需求的一部分,它通常是以業(yè)務(wù)報(bào)表的形式出現(xiàn)的。
在多維模型中,數(shù)據(jù)聚集路徑是維度表設(shè)計(jì)中的重要部分。在數(shù)據(jù)存儲(chǔ)庫或數(shù)據(jù)倉庫中,數(shù)據(jù)聚集的級(jí)別是逐個(gè)(
case-by-case
)確定的。因?yàn)閿?shù)據(jù)倉庫幾乎仍然都是關(guān)系數(shù)據(jù)模型類型的,所以最好是建議您的客戶從數(shù)據(jù)集市構(gòu)建業(yè)務(wù)報(bào)表。
?
?
數(shù)據(jù)裝載
將數(shù)據(jù)移至中心數(shù)據(jù)倉庫中的目標(biāo)表通常是
ETL
過程的最后步驟。
裝入數(shù)據(jù)的最佳方法取決于所執(zhí)行操作的類型以及需要裝入多少數(shù)據(jù)。
您可以通過兩種基本方法在數(shù)據(jù)庫表中插入和修改數(shù)據(jù):
(1)?????????????
SQL insert/update/delete
(2)?????????????
成批
load
實(shí)用程序
大多數(shù)應(yīng)用程序使用
SQL IUD
操作,因?yàn)樗鼈冞M(jìn)行了日志記錄并且是可恢復(fù)的。但是,成批加載操作易于使用,并且在裝入大量數(shù)據(jù)時(shí)速度極快。使用哪種數(shù)據(jù)裝入方法取決于業(yè)務(wù)環(huán)境。
凡是有該標(biāo)志的文章,都是該blog博主Caoer(草兒)原創(chuàng),凡是索引、收藏
、轉(zhuǎn)載請注明來處和原文作者。非常感謝。