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