ETL即數(shù)據(jù)抽?。‥xtract)、轉換(Transform)、裝載(Load)的過程。它是構建數(shù)據(jù)倉庫的重要環(huán)節(jié)。數(shù)據(jù)倉庫是面向主題的、集成的、穩(wěn)定的且隨時間不斷變化的數(shù)據(jù)集合,用以支持經(jīng)營管理中的決策制定過程。數(shù)據(jù)倉庫系統(tǒng)中有可能存在著大量的噪聲數(shù)據(jù),引起的主要原因有:濫用縮寫詞、慣用語、數(shù)據(jù)輸入錯誤、重復記錄、丟失值、拼寫變化等。即便是一個設計和規(guī)劃良好的數(shù)據(jù)庫系統(tǒng),如果其中存在著大量的噪聲數(shù)據(jù),那么這個系統(tǒng)也是沒有任何意義的,因為“垃圾進,垃圾出”(garbage in, garbage out),系統(tǒng)根本就不可能為決策分析系統(tǒng)提供任何支持。為了清除噪聲數(shù)據(jù),必須在數(shù)據(jù)庫系統(tǒng)中進行數(shù)據(jù)清洗。目前有不少數(shù)據(jù)清洗研究和ETL研究,但是如何在ETL過程中進行有效的數(shù)據(jù)清洗并使這個過程可視化,此方面研究不多。本文主要從兩個方面闡述ETL和數(shù)據(jù)清洗的實現(xiàn)過程:ETL的處理方式[19]和數(shù)據(jù)清洗的實現(xiàn)方法。
(1)ETL的處理方式
本文所采用的ETL方法是數(shù)據(jù)庫段區(qū)域中的ETL處理方式,它不使用外部引擎而是使用數(shù)據(jù)庫作為唯一的控制點。由于源系統(tǒng)SQLserver2000是關系數(shù)據(jù)庫,它的段表也是典型的關系型表。成功地將外部未修改數(shù)據(jù)載入數(shù)據(jù)庫后,再在數(shù)據(jù)庫內部進行轉換。數(shù)據(jù)庫段區(qū)域中的ETL處理方式執(zhí)行的步驟是提取、裝載、轉換,即通常所說的ELT。[21]這種方式的優(yōu)點是為抽取出的數(shù)據(jù)首先提供一個緩沖以便于進行復雜的轉換,減輕了ETL進程的復雜度。
(2)ETL過程中實現(xiàn)數(shù)據(jù)清洗的實現(xiàn)方法
首先,在理解源數(shù)據(jù)的基礎上實現(xiàn)數(shù)據(jù)表屬性一致化。為解決源數(shù)據(jù)的同義異名和同名異義的問題,可通過元數(shù)據(jù)管理子系統(tǒng),在理解源數(shù)據(jù)的同時,對不同表的屬性名根據(jù)其含義重新定義其在數(shù)據(jù)挖掘庫中的名字,并以轉換規(guī)則的形式存放在元數(shù)據(jù)庫中,在數(shù)據(jù)集成的時候,系統(tǒng)自動根據(jù)這些轉換規(guī)則將源數(shù)據(jù)中的字段名轉換成新定義的字段名,從而實現(xiàn)數(shù)據(jù)挖掘庫中的同名同義。
其次,通過數(shù)據(jù)縮減,大幅度縮小數(shù)據(jù)量。由于源數(shù)據(jù)量很大,處理起來非常耗時,所以可以優(yōu)先進行數(shù)據(jù)縮減,以提高后續(xù)數(shù)據(jù)處理分析效率。
最后,通過預先設定數(shù)據(jù)處理的可視化功能節(jié)點,達到可視化的進行數(shù)據(jù)清洗和數(shù)據(jù)轉換的目的。針對縮減并集成后的數(shù)據(jù),通過組合預處理子系統(tǒng)提供各種數(shù)據(jù)處理功能節(jié)點,能夠以可視化的方式快速有效完成數(shù)據(jù)清洗和數(shù)據(jù)轉換過程。
ETL即數(shù)據(jù)抽?。‥xtract)、轉換(Transform)、裝載(Load)的過程。它是構建數(shù)據(jù)倉庫的重要環(huán)節(jié)。數(shù)據(jù)倉庫是面向主題的、集成的、穩(wěn)定的且隨時間不斷變化的數(shù)據(jù)集合,用以支持經(jīng)營管理中的決策制定過程。數(shù)據(jù)倉庫系統(tǒng)中有可能存在著大量的噪聲數(shù)據(jù),引起的主要原因有:濫用縮寫詞、慣用語、數(shù)據(jù)輸入錯誤、重復記錄、丟失值、拼寫變化等。即便是一個設計和規(guī)劃良好的數(shù)據(jù)庫系統(tǒng),如果其中存在著大量的噪聲數(shù)據(jù),那么這個系統(tǒng)也是沒有任何意義的,因為“垃圾進,垃圾出”(garbage in, garbage out),系統(tǒng)根本就不可能為決策分析系統(tǒng)提供任何支持。為了清除噪聲數(shù)據(jù),必須在數(shù)據(jù)庫系統(tǒng)中進行數(shù)據(jù)清洗。目前有不少數(shù)據(jù)清洗研究和ETL研究,但是如何在ETL過程中進行有效的數(shù)據(jù)清洗并使這個過程可視化,此方面研究不多。本文主要從兩個方面闡述ETL和數(shù)據(jù)清洗的實現(xiàn)過程:ETL的處理方式[19]和數(shù)據(jù)清洗的實現(xiàn)方法。
(1)ETL的處理方式
本文所采用的ETL方法是數(shù)據(jù)庫段區(qū)域中的ETL處理方式,它不使用外部引擎而是使用數(shù)據(jù)庫作為唯一的控制點。由于源系統(tǒng)SQLserver2000是關系數(shù)據(jù)庫,它的段表也是典型的關系型表。成功地將外部未修改數(shù)據(jù)載入數(shù)據(jù)庫后,再在數(shù)據(jù)庫內部進行轉換。數(shù)據(jù)庫段區(qū)域中的ETL處理方式執(zhí)行的步驟是提取、裝載、轉換,即通常所說的ELT。[21]這種方式的優(yōu)點是為抽取出的數(shù)據(jù)首先提供一個緩沖以便于進行復雜的轉換,減輕了ETL進程的復雜度。
(2)ETL過程中實現(xiàn)數(shù)據(jù)清洗的實現(xiàn)方法
首先,在理解源數(shù)據(jù)的基礎上實現(xiàn)數(shù)據(jù)表屬性一致化。為解決源數(shù)據(jù)的同義異名和同名異義的問題,可通過元數(shù)據(jù)管理子系統(tǒng),在理解源數(shù)據(jù)的同時,對不同表的屬性名根據(jù)其含義重新定義其在數(shù)據(jù)挖掘庫中的名字,并以轉換規(guī)則的形式存放在元數(shù)據(jù)庫中,在數(shù)據(jù)集成的時候,系統(tǒng)自動根據(jù)這些轉換規(guī)則將源數(shù)據(jù)中的字段名轉換成新定義的字段名,從而實現(xiàn)數(shù)據(jù)挖掘庫中的同名同義。
其次,通過數(shù)據(jù)縮減,大幅度縮小數(shù)據(jù)量。由于源數(shù)據(jù)量很大,處理起來非常耗時,所以可以優(yōu)先進行數(shù)據(jù)縮減,以提高后續(xù)數(shù)據(jù)處理分析效率。
最后,通過預先設定數(shù)據(jù)處理的可視化功能節(jié)點,達到可視化的進行數(shù)據(jù)清洗和數(shù)據(jù)轉換的目的。針對縮減并集成后的數(shù)據(jù),通過組合預處理子系統(tǒng)提供各種數(shù)據(jù)處理功能節(jié)點,能夠以可視化的方式快速有效完成數(shù)據(jù)清洗和數(shù)據(jù)轉換過程。