專利名稱:計(jì)算機(jī)化財(cái)務(wù)系統(tǒng)的提取、變換和加載設(shè)計(jì)器模塊的制作方法
背景技術(shù):
本發(fā)明一般涉及計(jì)算機(jī)化財(cái)務(wù)系統(tǒng)的提取、變換和加載(ETL)設(shè)計(jì)器模塊,用于將指令傳遞到服務(wù)器的ETL服務(wù)模塊來配置ETL包。ETL包用于將元素從包含在源數(shù)據(jù)庫或數(shù)據(jù)存儲(chǔ)中的源財(cái)務(wù)表格中提取、變換并加載到目標(biāo)數(shù)據(jù)庫或數(shù)據(jù)存儲(chǔ)的目標(biāo)表格中,該目標(biāo)數(shù)據(jù)庫或數(shù)據(jù)存儲(chǔ)具有與第一表格的格式不相關(guān)的預(yù)定義格式。
計(jì)算機(jī)化的財(cái)務(wù)系統(tǒng)包括各種軟件包,包括會(huì)計(jì)程序和財(cái)務(wù)報(bào)表程序。會(huì)計(jì)程序維護(hù)企業(yè)的各種賬目,如總帳、存貨清單、應(yīng)收賬款、應(yīng)付賬款、余額、工薪單和其它賬目??値な枪镜呢?cái)務(wù)活動(dòng)和歷史的倉庫,它包含該公司的所有財(cái)務(wù)交易??値ず推渌~目通常作為表格(財(cái)務(wù)表格)儲(chǔ)存在一個(gè)或多個(gè)數(shù)據(jù)庫中。
財(cái)務(wù)報(bào)表應(yīng)用程序使用了儲(chǔ)存在數(shù)據(jù)庫中的財(cái)務(wù)表格中的數(shù)據(jù)來生成報(bào)表。這類報(bào)表包括例如余額報(bào)表和預(yù)測(cè)報(bào)表。
包含企業(yè)的財(cái)務(wù)表格的數(shù)據(jù)庫通常使用各種數(shù)據(jù)庫管理系統(tǒng)(DBMS)來組織和維護(hù)。在這些數(shù)據(jù)庫系統(tǒng)中的是遵循“關(guān)系型”模型的那些數(shù)據(jù)庫系統(tǒng),被稱為關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。關(guān)系型數(shù)據(jù)庫是以列和行的相關(guān)二維表格組織的數(shù)據(jù)的集合。表格中的數(shù)據(jù)可以通過對(duì)表格執(zhí)行諸如連接、排序、合并等集合運(yùn)算來訪問和操縱。這些運(yùn)算通常通過以諸如結(jié)構(gòu)化查詢語言(SQL)等查詢語言構(gòu)件的用戶定義的查詢來啟動(dòng)。SQL查詢包括高級(jí)命令,它通常描述了要被選擇、檢索或處理的數(shù)據(jù)集。
如上所述,財(cái)務(wù)報(bào)表程序需要訪問一個(gè)或多個(gè)財(cái)務(wù)表格中的企業(yè)財(cái)務(wù)信息來提取可用于形成報(bào)表的信息。某些現(xiàn)有技術(shù)財(cái)務(wù)報(bào)表程序或工具包括其軟件中的程序代碼(如,SQL語句)來直接訪問數(shù)據(jù)庫的財(cái)務(wù)表格。這一方法的一個(gè)問題是,當(dāng)修改或添加財(cái)務(wù)表格時(shí),需要修改報(bào)表程序的程序代碼以提供對(duì)經(jīng)修改的或新的財(cái)務(wù)表格的訪問。這類修改的完成是復(fù)雜、耗時(shí)和昂貴的。
上述的一種替換方法是利用某些服務(wù)器配備的現(xiàn)有提取、變換和加載(ETL)服務(wù)。ETL服務(wù)提供了一組用于將數(shù)據(jù)從各異的來源提取、變換和合并到單個(gè)或多個(gè)目標(biāo),以構(gòu)建依照預(yù)定義格式的數(shù)據(jù)倉庫或數(shù)據(jù)集市(data mart)。MicrosoftSQL Server的數(shù)據(jù)信息服務(wù)(DTS)是ETL服務(wù)的一個(gè)示例。
ETL服務(wù)允許創(chuàng)建ETL包(對(duì)MicrosoftSQL Server而言是DTS包),它定義了適用于財(cái)務(wù)報(bào)表應(yīng)用程序的自定義數(shù)據(jù)移動(dòng)解決方案。每一ETL包一般定義了相關(guān)聯(lián)的任務(wù)的多個(gè)步驟,這些任務(wù)用于執(zhí)行包含在源表格中的數(shù)據(jù)元素的期望的提取和變換。另外,ETL包的執(zhí)行促使ETL導(dǎo)入源表格的指定源數(shù)據(jù)、將數(shù)據(jù)變換成期望的格式、并將數(shù)據(jù)導(dǎo)出到存儲(chǔ)上的目標(biāo)數(shù)據(jù)庫中的目標(biāo)表格。結(jié)果,這一ETL服務(wù)可用于形成ETL包,它將所選擇的數(shù)據(jù)元素從源財(cái)務(wù)表格(如,總帳)移出、將數(shù)據(jù)元素變換成期望的格式、并將數(shù)據(jù)元素加載到準(zhǔn)備好供財(cái)務(wù)報(bào)表應(yīng)用程序使用的報(bào)表表格。另外,可直接向ETL包作出修改以容納期望的修改,而無需修改財(cái)務(wù)報(bào)表應(yīng)用程序的程序代碼。
盡管使用這類ETL服務(wù)避免了向特定的財(cái)務(wù)表格定制報(bào)表應(yīng)用程序代碼的需要,然而定義客戶數(shù)據(jù)移動(dòng)的ETL包仍必須被編程和配置。ETL服務(wù)包括允許用戶直接配置DTS包的用戶界面(如,用于MicrosoftSQL Server的DTS的EnterpriseManager)。這類編程是耗時(shí)的,且必須由某一人來執(zhí)行,它不僅具有財(cái)務(wù)報(bào)表應(yīng)用程序所期望的目標(biāo)表格的完整理解,包括期望的源數(shù)據(jù)和期望的數(shù)據(jù)格式,也知道如何編程或配置ETL包來執(zhí)行提取、變換和加載步驟。另外,由于多個(gè)步驟和相關(guān)聯(lián)的任務(wù)必須被手動(dòng)輸入以執(zhí)行期望的數(shù)據(jù)提取、變換和加載操作,ETL表的配置可以是復(fù)雜的。
存在對(duì)財(cái)務(wù)報(bào)表應(yīng)用程序使用的編程或配置ETL包的改進(jìn)方法的需求,包括令這類配置方法更有效和用戶友好。
發(fā)明內(nèi)容
本發(fā)明一般針對(duì)計(jì)算機(jī)化財(cái)務(wù)系統(tǒng)的提取、變換和加載(ETL)設(shè)計(jì)器模塊,用于配置ETL包。每一ETL包可用于將數(shù)據(jù)元素從財(cái)務(wù)數(shù)據(jù)庫的一個(gè)或多個(gè)財(cái)務(wù)表格中加載到依照預(yù)定義格式的報(bào)表表格中。ETL設(shè)計(jì)器模塊包括一定義變換對(duì)象的變換類。每一變換對(duì)象負(fù)責(zé)將財(cái)務(wù)表格的源列的源數(shù)據(jù)元素變換成與報(bào)表表格相關(guān)聯(lián)的目標(biāo)列的報(bào)表程序格式。
依照本發(fā)明的一個(gè)實(shí)施例,變換包括用預(yù)定義替換元素替換源數(shù)據(jù)元素的至少一部分。
依照本發(fā)明的另一實(shí)施例,變換包括對(duì)源數(shù)據(jù)元素進(jìn)行語法分析。
依照本發(fā)明的又一實(shí)施例,變換包括將兩個(gè)或多個(gè)源列的源數(shù)據(jù)元素串接。
依照本發(fā)明的再一實(shí)施例,變換包括源列的源數(shù)據(jù)元素的轉(zhuǎn)動(dòng)(pivot)。
圖1所示是其中可使用本發(fā)明的環(huán)境的框圖。
圖2是依照本發(fā)明的實(shí)施例的計(jì)算機(jī)化財(cái)務(wù)系統(tǒng)的簡化框圖。
圖3和4是示例性源財(cái)務(wù)表格。
圖5是用于導(dǎo)入、變換數(shù)據(jù)并將其導(dǎo)出到目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)泵(data pump)體系結(jié)構(gòu)。
圖6是提取、變換和加載(任務(wù))模塊的功能圖。
圖7是依照本發(fā)明的實(shí)施例的ETL設(shè)計(jì)器模塊的示例性對(duì)象模型。
圖8和9是示例性目標(biāo)報(bào)表表格。
圖10所示是依照本發(fā)明的實(shí)施配置ETL包的方法的流程圖。
具體實(shí)施例方式
本發(fā)明一般涉及計(jì)算機(jī)化財(cái)務(wù)系統(tǒng)的提取、變換和加載(ETL)設(shè)計(jì)器模塊,用于將指令傳遞到服務(wù)器的ETL服務(wù)模塊來配置ETL包。每一ETL包用于將源元素從包含在源數(shù)據(jù)庫中的源表格提取、變換并加載到目標(biāo)數(shù)據(jù)庫的目標(biāo)表格,它具有與源表格的格式不相關(guān)的預(yù)定義格式。
計(jì)算環(huán)境綜述圖1示出了適合在其中實(shí)現(xiàn)本發(fā)明的計(jì)算系統(tǒng)環(huán)境100的一個(gè)示例。計(jì)算系統(tǒng)環(huán)境100僅為合適的計(jì)算環(huán)境的一個(gè)示例,并非暗示對(duì)本發(fā)明的使用范圍或功能的局限。也不應(yīng)將計(jì)算環(huán)境100解釋為對(duì)示例性操作環(huán)境100中示出的任一組件或其組合具有任何依賴或需求。
本發(fā)明可以使用眾多其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置來操作。適合使用本發(fā)明的眾所周知的計(jì)算系統(tǒng)、環(huán)境和/或配置包括但不限于個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)者電子設(shè)備、網(wǎng)絡(luò)PC、小型機(jī)、大型機(jī)、包括任一上述系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。
本發(fā)明可在諸如由計(jì)算機(jī)執(zhí)行的程序模塊等計(jì)算機(jī)可執(zhí)行指令的一般上下文環(huán)境中描述。一般而言,程序模塊包括例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等,執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。本發(fā)明也可以在分布式計(jì)算環(huán)境中實(shí)踐,其中,任務(wù)由通過通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備來執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中,包括存儲(chǔ)器存儲(chǔ)設(shè)備。
參考圖1,用于實(shí)現(xiàn)本發(fā)明的示例系統(tǒng)包括以計(jì)算機(jī)110形式的通用計(jì)算裝置。計(jì)算機(jī)110的組件包括但不限于,處理單元120、系統(tǒng)存儲(chǔ)器130以及將包括系統(tǒng)存儲(chǔ)器的各類系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線121。系統(tǒng)總線121可以是若干種總線結(jié)構(gòu)類型的任一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線以及使用各類總線體系結(jié)構(gòu)的局部總線。作為示例而非局限,這類體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、增強(qiáng)ISA(EISA)總線、視頻電子技術(shù)標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線以及外圍部件互連(PCI)總線,也稱為Mezzanine總線。
計(jì)算機(jī)110通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì)算機(jī)110訪問的任一可用介質(zhì),包括易失性和非易失性介質(zhì)、可移動(dòng)和不可移動(dòng)介質(zhì)。作為示例而非局限,計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于儲(chǔ)存諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任一方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性,可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,RAM、ROM、EEPROM、閃存或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲(chǔ)、磁盒、磁帶、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或可以用來儲(chǔ)存所期望的信息并可由計(jì)算機(jī)110訪問的任一其它介質(zhì)。通信介質(zhì)通常在諸如載波或其它傳輸機(jī)制的已調(diào)制數(shù)據(jù)信號(hào)中包含計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任一信息傳送介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號(hào)”指以對(duì)信號(hào)中的信息進(jìn)行編碼的方式設(shè)置或改變其一個(gè)或多個(gè)特征的信號(hào)。作為示例而非局限,通信介質(zhì)包括有線介質(zhì),如有線網(wǎng)絡(luò)或直接連線連接,以及無線介質(zhì),如聲學(xué)、RF、紅外和其它無線介質(zhì)。上述任一的組合也應(yīng)當(dāng)包括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。
系統(tǒng)存儲(chǔ)器130包括以易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì),如只讀存儲(chǔ)器(ROM)131和隨機(jī)存取存儲(chǔ)器(RAM)132?;据斎?輸出系統(tǒng)133(BIOS)包括如在啟動(dòng)時(shí)幫助在計(jì)算機(jī)110內(nèi)的元件之間傳輸信息的基本例程,通常儲(chǔ)存在ROM 131中。RAM 132通常包含處理單元120立即可訪問或者當(dāng)前正在操作的數(shù)據(jù)和/或程序模塊。作為示例而非局限,圖1示出了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137。
計(jì)算機(jī)110也可包括其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。僅作示例,圖1示出了對(duì)不可移動(dòng)、非易失性磁介質(zhì)進(jìn)行讀寫的硬盤驅(qū)動(dòng)器141、對(duì)可移動(dòng)、非易失性磁盤152進(jìn)行讀寫的磁盤驅(qū)動(dòng)器151以及對(duì)可移動(dòng)、非易失性光盤156,如CD ROM或其它光介質(zhì)進(jìn)行讀寫的光盤驅(qū)動(dòng)器155??梢栽谑纠圆僮鳝h(huán)境中使用的其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字視頻帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū)動(dòng)器141通常通過不可移動(dòng)存儲(chǔ)器接口,如接口140連接到系統(tǒng)總線121,磁盤驅(qū)動(dòng)器151和光盤驅(qū)動(dòng)器155通常通過可移動(dòng)存儲(chǔ)器接口,如接口150連接到系統(tǒng)總線121。
圖1討論并示出的驅(qū)動(dòng)器及其關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī)110提供了計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。例如,在圖1中,示出硬盤驅(qū)動(dòng)器141儲(chǔ)存操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147。注意,這些組件可以與操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137相同,也可以與它們不同。這里對(duì)操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147給予不同的標(biāo)號(hào)來說明至少它們是不同的副本。
用戶可以通過輸入設(shè)備,如鍵盤162、麥克風(fēng)163和定位設(shè)備161(如鼠標(biāo)、跟蹤球或觸摸板)向計(jì)算機(jī)110輸入命令和信息。其它輸入設(shè)備(未示出)可包括操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等等。這些和其它輸入設(shè)備通常通過耦合至系統(tǒng)總線的用戶輸入接口160連接至處理單元120,但是也可以通過其它接口和總線結(jié)構(gòu)連接,如并行端口、游戲端口或通用串行總線(USB)。監(jiān)視器191或其它類型的顯示設(shè)備也通過接口,如視頻接口190連接至系統(tǒng)總線121。除監(jiān)視器外,計(jì)算機(jī)也可包括其它外圍輸出設(shè)備,如揚(yáng)聲器197和打印機(jī)196,通過輸出外圍接口190連接。
計(jì)算機(jī)110可以在使用到一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),如遠(yuǎn)程計(jì)算機(jī)180的邏輯連接的網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)180可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它公用網(wǎng)絡(luò)節(jié)點(diǎn),并通常包括許多或所有上述與計(jì)算機(jī)110相關(guān)的元件。圖1描述的邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但也可包括其它網(wǎng)絡(luò)。這類網(wǎng)絡(luò)環(huán)境常見于辦公室、或企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)以及因特網(wǎng)。
當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)110通過網(wǎng)絡(luò)接口或適配器170連接至LAN 171。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)110通常包括調(diào)制解調(diào)器172或其它裝置,用于通過WAN 173,如因特網(wǎng)建立通信。調(diào)制解調(diào)器172可以是內(nèi)置或外置的,通過用戶輸入接口160或其它適當(dāng)?shù)臋C(jī)制連接至系統(tǒng)總線121。在網(wǎng)絡(luò)化環(huán)境中,描述的與計(jì)算機(jī)110相關(guān)的程序模塊或其部分可儲(chǔ)存在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。作為示例而非局限,圖1示出了遠(yuǎn)程應(yīng)用程序185駐留在遠(yuǎn)程計(jì)算機(jī)180中??梢岳斫?,示出的網(wǎng)絡(luò)連接是示例性的,也可以使用通過在計(jì)算機(jī)之間建立通信鏈路的其它裝置。
如上所述,本發(fā)明可在諸如參考圖1所描述的計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)?;蛘?,本發(fā)明可在服務(wù)器、專用于消息處理的計(jì)算機(jī)或分布式系統(tǒng)上實(shí)現(xiàn),在分布式系統(tǒng)中,本發(fā)明的不同部分可在分布式計(jì)算系統(tǒng)的不同部分上實(shí)現(xiàn)。
計(jì)算機(jī)化的財(cái)務(wù)系統(tǒng)圖2所示是依照本發(fā)明的各個(gè)實(shí)施例的計(jì)算機(jī)化財(cái)務(wù)系統(tǒng)200的示意圖。系統(tǒng)200一般包括財(cái)務(wù)報(bào)表軟件包202、服務(wù)器204、源財(cái)務(wù)數(shù)據(jù)庫206和目標(biāo)報(bào)表數(shù)據(jù)庫208。財(cái)務(wù)數(shù)據(jù)庫206一般包括諸如企業(yè)的金融交易等相關(guān)數(shù)據(jù)的集合,并且較佳地為關(guān)系型數(shù)據(jù)庫,其中數(shù)據(jù)以被稱為財(cái)務(wù)表格的二維列和行形式來組織。
關(guān)系型數(shù)據(jù)庫通常包括多個(gè)表格。數(shù)據(jù)庫通常也包括關(guān)聯(lián)結(jié)構(gòu)。關(guān)聯(lián)結(jié)構(gòu)的一個(gè)示例是索引,它通常(但不必須)是B樹或散列索引的形式。索引可用于用幾乎不變的訪問時(shí)間來查找到表格中的特定行,而不管表格的大小如何。關(guān)聯(lián)結(jié)構(gòu)對(duì)數(shù)據(jù)庫的用戶是透明的,但是對(duì)于數(shù)據(jù)庫管理系統(tǒng)的有效操作和控制是必需的。
數(shù)據(jù)庫管理系統(tǒng)(DBMS),尤其是關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),是一種支持?jǐn)?shù)據(jù)庫特征的控制系統(tǒng),這些特征包括但不限于,將數(shù)據(jù)儲(chǔ)存在存儲(chǔ)器介質(zhì)上、從存儲(chǔ)器介質(zhì)中檢索數(shù)據(jù)以及更新存儲(chǔ)器介質(zhì)上的數(shù)據(jù)。
示例性財(cái)務(wù)數(shù)據(jù)庫206包括總帳表格210和余額表格212,它們分別在圖3和4中示出。每一表格包括列214和行216。示例性總帳表格210包括多個(gè)列214,包括用于列的“引用”、“代碼1”、“代碼2”、“日期”、“借方”和“貸方”字段。余額表格212中的列214包括用于列的“周期1”、“2”、“3”和“4”字段。財(cái)務(wù)數(shù)據(jù)庫206也包括索引表格(未示出),它包含關(guān)于數(shù)據(jù)庫中每一表格的信息。
一般而言,儲(chǔ)存在關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)通過以諸如SQL等查詢語言構(gòu)造的用戶定義的查詢來訪問。通常,對(duì)于任何給定的SQL查詢,有許多過程性的操作,它們需要在數(shù)據(jù)上執(zhí)行以實(shí)現(xiàn)SQL查詢的目的。例如,可以有許多聯(lián)結(jié)和表格掃描,它們需要被執(zhí)行以達(dá)到期望的目的。
圖2的示例性服務(wù)器204具有簡化的SQL服務(wù)器RDBMS體系結(jié)構(gòu),它本質(zhì)上包括三層。第一層提供了與SQL服務(wù)器的至少兩類集成,包括允許服務(wù)器接口集成到諸如分布式組件對(duì)象模塊(DCOM)的用戶應(yīng)用程序的應(yīng)用程序接口218,以及提供用于獨(dú)立的軟件銷售商開發(fā)的管理和配置工具的接口的工具接口220。
第二層通過提供應(yīng)用編程接口(API)向其它應(yīng)用程序打開SQL服務(wù)器204的功能,API包括SQL名字空間222、SQL分布式管理對(duì)象224以及ETL服務(wù)226。用戶界面228由向?qū)?、HTML等提供。
SQL分布式管理對(duì)象API 224抽象了DDL、儲(chǔ)存在過程中的系統(tǒng)、注冊(cè)表信息以及操作系統(tǒng)資源的使用,向SQL服務(wù)器的所有管理和配置任務(wù)提供了API。
(ETL)服務(wù)API 226展示了由SQL服務(wù)器204或其它服務(wù)器產(chǎn)品提供的服務(wù),以幫助構(gòu)建數(shù)據(jù)倉庫和數(shù)據(jù)集市,并較佳地包括一數(shù)據(jù)泵應(yīng)用程序。如下文更完整地描述的,這些服務(wù)提供了依照ETL包230(如,DTS包)在不同種類數(shù)據(jù)源之間傳輸和變換數(shù)據(jù)的能力。
本發(fā)明通過執(zhí)行泵應(yīng)用程序利用了服務(wù)器204的ETL服務(wù)226,以從源財(cái)務(wù)數(shù)據(jù)庫206的諸如總帳表格210等源財(cái)務(wù)表格中提取源元素、變換至少某些源元素、并通過執(zhí)行ETL包230將源元素加載或注入到報(bào)表數(shù)據(jù)庫或數(shù)據(jù)存儲(chǔ)208的目標(biāo)報(bào)表表格中。
這一操作在圖5中示意性地描述。當(dāng)從源表格中將每一行216拉到數(shù)據(jù)泵232中時(shí),應(yīng)用變換233。在將變換的源元素注入或加載到目標(biāo)數(shù)據(jù)庫208的對(duì)應(yīng)目標(biāo)表格中之前,可將變換的源元素臨時(shí)儲(chǔ)存在一分段表格中。數(shù)據(jù)進(jìn)232可以被實(shí)現(xiàn)為應(yīng)用程序135的全部或一部分,包括由計(jì)算機(jī)系統(tǒng)100的處理單元120執(zhí)行的指令,這些都在圖1中示出。
圖6示出了任務(wù)模塊或ETL包230的功能圖,ETL包表示MicrosoftSQLServer的DTS包。如圖所示,每一包230包括定義包230的工作流的步驟234、對(duì)數(shù)據(jù)執(zhí)行實(shí)際操作的任務(wù)236、以及全系統(tǒng)范圍內(nèi)可用的全局變量238。每一ETL包230可儲(chǔ)存在組件對(duì)象模型(COM)文件中。
COM對(duì)象是依照面向?qū)ο蟮木幊棠P蛠碓O(shè)計(jì)的模塊。面向?qū)ο蟮木幊淘试S使用和重復(fù)使用程序模塊,而不需要知道模塊的內(nèi)部狀態(tài)和過程。步驟對(duì)象234協(xié)調(diào)任務(wù)236的執(zhí)行控制的流程。沒有相關(guān)聯(lián)的步驟234對(duì)象的任務(wù)236從不被執(zhí)行。步驟對(duì)象234也可建立與對(duì)應(yīng)的任務(wù)236相關(guān)聯(lián)的前趨約束240。前趨約束是必須在對(duì)應(yīng)任務(wù)236的執(zhí)行之前發(fā)生的事件。
任務(wù)236定義了要對(duì)數(shù)據(jù)執(zhí)行(如,由數(shù)據(jù)泵執(zhí)行)的實(shí)際操作。例如,任務(wù)236可以在格式之間轉(zhuǎn)換數(shù)據(jù)。一旦數(shù)據(jù)處于可用的格式,則變換任務(wù)236在將數(shù)據(jù)移動(dòng)到目標(biāo)行之前變換數(shù)據(jù)。任務(wù)可以是自定義的過程腳本236a、ActiveX腳本236b或簡單數(shù)據(jù)泵變換236c。任務(wù)236定義了源表格242(如,總帳表格210或數(shù)據(jù)庫表格212)、報(bào)表數(shù)據(jù)庫208的目標(biāo)表格244、以及兩個(gè)表格之間的關(guān)聯(lián)列246。另外,任務(wù)236包括定義如何變換數(shù)據(jù)的變換算法233。
由此,可被結(jié)合到基于COM的體系結(jié)構(gòu)中的每一ETL包230也允許許多任務(wù)236、以及它們之中的任何復(fù)雜工作流和調(diào)度關(guān)系的指定。提供這類工作流和調(diào)度及前趨關(guān)系的指定的現(xiàn)有處理環(huán)境需要所有任務(wù)中所有這類關(guān)系的預(yù)定指定(如,以樹的形式)。相反,基于COM的ETL包230允許通過對(duì)每一任務(wù)單獨(dú)地指定前趨或優(yōu)先級(jí),每次對(duì)一個(gè)任務(wù)指定,來指定這些總調(diào)度關(guān)系。由此,不需要事先知道總調(diào)度關(guān)系,只要已知了各個(gè)步驟234的前趨約束。
財(cái)務(wù)報(bào)表軟件包202包括各種程序模塊,包括ETL設(shè)計(jì)器模塊250、數(shù)據(jù)刷新器模塊252和報(bào)表應(yīng)用程序或模塊254。包202也包括用戶界面256,用戶258可通過其察看程序模塊并與程序模塊交互,包括向ETL設(shè)計(jì)器模塊250提供輸入、設(shè)計(jì)報(bào)表和察看報(bào)表。
一般而言,程序模塊包括例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等,它們儲(chǔ)存在計(jì)算機(jī)可讀介質(zhì)中,并執(zhí)行特定的任務(wù)或事先特定的抽象數(shù)據(jù)類型。此外,本領(lǐng)域的技術(shù)人員可以理解,本發(fā)明也可用除參考圖1所示的之外的其它計(jì)算機(jī)系統(tǒng)配置來實(shí)施,包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器或可編程消費(fèi)者電子設(shè)備、網(wǎng)絡(luò)個(gè)人計(jì)算機(jī)、小型機(jī)、大型機(jī)等等。本發(fā)明也可在分布式計(jì)算環(huán)境中實(shí)施,其中,任務(wù)由通過通信網(wǎng)路連接的遠(yuǎn)程處理設(shè)備來執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。
本發(fā)明的ETL設(shè)計(jì)器模塊250包括類、接口和值類型的庫,它們用于通過應(yīng)用程序接口218(圖2)與ETL服務(wù)226在程序上進(jìn)行通信,以配置ETL包230,ETL包被設(shè)計(jì)成從源財(cái)務(wù)數(shù)據(jù)庫206的財(cái)務(wù)表格中提取和變化數(shù)據(jù),并將數(shù)據(jù)加載到依照預(yù)定格式的目標(biāo)報(bào)表數(shù)據(jù)庫208的報(bào)表表格中。報(bào)表數(shù)據(jù)庫208可由報(bào)表應(yīng)用程序254訪問以生成報(bào)表259。
ETL設(shè)計(jì)器模塊250的一個(gè)示例性對(duì)象模型在圖7中示意性地示出。ETL設(shè)計(jì)器模塊250包括映射器引擎根類,可從其定義或例示映射器引擎對(duì)象260。映射器引擎根對(duì)象260配置了源和目標(biāo)列映射和變換。映射器引擎根對(duì)象260的兄弟對(duì)象較佳地在源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫分支262和264中以分層方式組織。
映射器引擎對(duì)象模型的源數(shù)據(jù)庫分支262一般描述了源財(cái)務(wù)數(shù)據(jù)庫206的源表格。源數(shù)據(jù)庫分支262包括源數(shù)據(jù)庫對(duì)象350、源表格對(duì)象352和源列對(duì)象354。
源數(shù)據(jù)庫對(duì)象350由源數(shù)據(jù)庫類定義,并是它的一個(gè)實(shí)例,并且標(biāo)識(shí)(即,命名)了源數(shù)據(jù)庫,如源財(cái)務(wù)數(shù)據(jù)庫206。
源表格對(duì)象352是源數(shù)據(jù)庫對(duì)象350的兄弟,并且由源表格類定義,并是它的一個(gè)實(shí)例。源表格對(duì)象352標(biāo)識(shí)(即,命名)了源表格,如源財(cái)務(wù)表格210(圖3)或212(圖4)。
源列對(duì)象354是對(duì)應(yīng)的源表格對(duì)象352的兄弟,它由源類定義,并是它的源類的實(shí)例。源列對(duì)象354的每一個(gè)標(biāo)識(shí)了源表格的列,包括列名(即,字段)和數(shù)據(jù)類型。這一信息較佳地從通過與源數(shù)據(jù)庫206通信而接收的源表格的模式中獲取。對(duì)于圖3的示例性源表格210,將對(duì)每一列,如“引用”、“代碼1”、“代碼2”、“日期”、“借方”和“貸方”列生成源列對(duì)象。
目標(biāo)數(shù)據(jù)庫分支264一般描述了目標(biāo)報(bào)表數(shù)據(jù)庫208的目標(biāo)表格,其示例在圖8和9中提供。圖8示出了對(duì)應(yīng)于圖3的總帳表格210的示例性報(bào)表表格270。圖9示出了對(duì)應(yīng)于圖4的余額表格212的示例性報(bào)表表格272。另外,分支264描述了目標(biāo)表格的列和源財(cái)務(wù)數(shù)據(jù)庫206的對(duì)應(yīng)源表格的列之間的關(guān)聯(lián)。目標(biāo)數(shù)據(jù)庫分支264包括目標(biāo)數(shù)據(jù)庫對(duì)象274、目標(biāo)表格對(duì)象276、目標(biāo)對(duì)象278、關(guān)聯(lián)對(duì)象280和變換對(duì)象282。
目標(biāo)數(shù)據(jù)庫對(duì)象274由目標(biāo)數(shù)據(jù)庫類定義,且是它的一個(gè)實(shí)例,并且標(biāo)識(shí)(即,命名)了目標(biāo)數(shù)據(jù)庫,如目標(biāo)報(bào)表數(shù)據(jù)庫208。
目標(biāo)表格對(duì)象276是目標(biāo)數(shù)據(jù)庫對(duì)象274的兄弟,并由目標(biāo)表格類定義,且是它的一個(gè)實(shí)例。目標(biāo)表格對(duì)象276標(biāo)識(shí)(即,命名)了預(yù)定義的目標(biāo)表格,如目標(biāo)報(bào)表表格270(圖8)或272(圖9)。目標(biāo)表格的模式基于報(bào)表應(yīng)用程序254期望的格式被編程到ETL設(shè)計(jì)器模塊250中。
目標(biāo)列對(duì)象278是對(duì)應(yīng)的目標(biāo)表格對(duì)象276的兄弟,并由目標(biāo)對(duì)象類定義,且是它的一個(gè)實(shí)例。目標(biāo)列對(duì)象278的每一個(gè)標(biāo)識(shí)了目標(biāo)表格的一列,包括列名(即字段)和數(shù)據(jù)類型。另外,目標(biāo)列對(duì)象278是基于對(duì)應(yīng)的目標(biāo)表格預(yù)定義的,因此不需要任何用戶輸入就能被設(shè)置。采用圖8的示例性報(bào)表表格270,可對(duì)每一列,如“引用”、“代碼”、“日期”、“借方”和“貸方”列生成目標(biāo)列對(duì)象。
一個(gè)或多個(gè)關(guān)聯(lián)對(duì)象280是每一目標(biāo)列對(duì)象278的兄弟,由關(guān)聯(lián)類定義,并是它的一個(gè)實(shí)例。關(guān)聯(lián)對(duì)象280的每一個(gè)標(biāo)識(shí)了源表格,如總帳表格210(圖3)的列,和目標(biāo)表格的對(duì)應(yīng)父目標(biāo)列對(duì)象278的關(guān)聯(lián)。因此,關(guān)聯(lián)對(duì)象定義了源表格的一個(gè)或多個(gè)列,以及目標(biāo)表格的一列之間的映射。由此,目標(biāo)報(bào)表表格中的至少某些列將具有對(duì)應(yīng)的關(guān)聯(lián)對(duì)象280,其每一個(gè)對(duì)應(yīng)于由對(duì)應(yīng)的源表格對(duì)象352的源列對(duì)象354定義的可用源列之一。例如,為將“引用”報(bào)表表格列290映射到“引用”源列292,關(guān)聯(lián)對(duì)象280作為標(biāo)識(shí)報(bào)表表格279的“引用”報(bào)表列290的目標(biāo)對(duì)象278的兄弟,可被鏈接到對(duì)應(yīng)于源財(cái)務(wù)表格210的“引用”源列292的源列對(duì)象254。以類似的方式,關(guān)聯(lián)對(duì)象280可將目標(biāo)“日期”列294映射到源“日期”列296,將目標(biāo)“借方”列298映射到源“借方”列300,等等。另外,多個(gè)關(guān)聯(lián)對(duì)象280可被鏈接到一個(gè)目標(biāo)對(duì)象278。例如,對(duì)應(yīng)于目標(biāo)“代碼”列302的目標(biāo)對(duì)象可具有兩個(gè)關(guān)聯(lián)對(duì)象兄弟,它們分別標(biāo)識(shí)源表格的源“代碼1”和“代碼2”列304和306的源列對(duì)象354。
變換對(duì)象282是關(guān)聯(lián)對(duì)象280的兄弟,或?qū)?yīng)于關(guān)聯(lián)對(duì)象280,由變換類定義,且是它的一個(gè)實(shí)例。一般而言,變換對(duì)象282負(fù)責(zé)將源元素從源表格列的源格式變換到相關(guān)聯(lián)的目標(biāo)列的目標(biāo)格式。變換對(duì)象282定義了步驟和相關(guān)聯(lián)的任務(wù),它們將被編程到ETL包230中以執(zhí)行期望的變換。
變換對(duì)象282可以被配置成執(zhí)行替換310、語法分析312、串接314和轉(zhuǎn)動(dòng)316變換。替換變換310一般涉及用預(yù)定義的替換元素替換源元素的至少一部分。通常,替換僅修改源元素的格式,而維持源元素的值或意義。例如,源財(cái)務(wù)表格210包括具有月/日/年(MM/DD/YY)源格式的源元素320的“日期”列214,而報(bào)表表格270的相關(guān)聯(lián)的目標(biāo)“日期”列294是月/日/年(MM/DD/YYYY)的目標(biāo)格式。對(duì)應(yīng)的變換對(duì)象282負(fù)責(zé)將每一源元素320從月/日/年的源格式變換成目標(biāo)格式。因此,這一示例性變換對(duì)象282用于在將源元素320注入到目標(biāo)表格270之前將年份從兩位數(shù)格式轉(zhuǎn)換成四位數(shù)格式。
語法分析變換312一般涉及源列的源元素320的各部分的語法分析或移除,以將它們從源格式轉(zhuǎn)換成相關(guān)聯(lián)的目標(biāo)列的期望目標(biāo)格式。由此,例如當(dāng)源元素320對(duì)應(yīng)于包括諸如客戶標(biāo)識(shí)符部分和物質(zhì)標(biāo)識(shí)符部分等多條信息的代碼,且對(duì)應(yīng)的目標(biāo)列僅需要客戶標(biāo)識(shí)符部分時(shí),語法分析變換312是有用的。另外,語法分析變換可用于消除不期望的字符。例如,源財(cái)務(wù)表格210包括具有源格式###-##的“引用”列292,而對(duì)應(yīng)或相關(guān)聯(lián)的目標(biāo)“引用”列290的目標(biāo)格式為#####。因此,對(duì)應(yīng)的變換對(duì)象將對(duì)列292中的源元素320執(zhí)行語法分析變換,以移除“-”,由此將源元素變換成目標(biāo)格式。
串接變換314一般涉及將關(guān)聯(lián)到由對(duì)應(yīng)的關(guān)聯(lián)對(duì)象280定義的單個(gè)目標(biāo)列的兩個(gè)或多個(gè)源列相聯(lián)結(jié)。例如,變換對(duì)象282可與關(guān)聯(lián)對(duì)象280相關(guān)聯(lián),該關(guān)聯(lián)對(duì)象280將源表格210(圖3)的源“代碼1”和“代碼2”列330和332分別鏈接到目標(biāo)表格270(圖8)的目標(biāo)“代碼”列302。在這一情況下,變換對(duì)象282負(fù)責(zé)串接源“代碼1”和“代碼2”列330和332,以將單獨(dú)的代碼的源格式(如,“44”和“A22”)轉(zhuǎn)換成目標(biāo)格式,其中,兩個(gè)代碼被聯(lián)結(jié)成單個(gè)代碼(如,“44A22”)。
轉(zhuǎn)動(dòng)變換316一般涉及轉(zhuǎn)置源表格的列和行,或者換言之,將列數(shù)據(jù)轉(zhuǎn)換成行數(shù)據(jù)。例如,圖4的源表格212具有源格式,其中,企業(yè)的“周期”以列214組織,而“期初余額”和“期末余額”以行216組織。不幸的是,對(duì)應(yīng)的目標(biāo)表格272(圖9)具有與源格式相反的目標(biāo)格式“周期”以行334組織,而“期初余額”和“期末余額”以列336組織。轉(zhuǎn)動(dòng)變換316用于轉(zhuǎn)置源表格元素320,以與目標(biāo)表格相匹配,由此提供了期望的變換,它在圖9中被示出為完成。
映射器引擎對(duì)象260包括ETL生成器方法360,當(dāng)被調(diào)用時(shí),它在編程上與ETL服務(wù)226通信以生成ETL包230,ETL包230可用于依照映射器引擎對(duì)象260的服務(wù)和目標(biāo)相關(guān)對(duì)象執(zhí)行源表格的源數(shù)據(jù)元素的期望提取和變換,并將變換的源數(shù)據(jù)元素加載到目標(biāo)表格中。因此,ETL生成器360生成指令,這些指令通過ETL服務(wù)226(圖2),基于映射器引擎對(duì)象自動(dòng)配置ETL包230的步驟和相關(guān)任務(wù),包括前趨的設(shè)置和SQL語句的編程。
圖10所示是依照本發(fā)明的實(shí)施例配置ETL包230的方法的流程圖。該方法可由系統(tǒng)200的ETL設(shè)計(jì)器模塊250通過執(zhí)行儲(chǔ)存在計(jì)算機(jī)介質(zhì)上的對(duì)應(yīng)指令來執(zhí)行。在該方法的步驟370,形成一個(gè)或多個(gè)關(guān)聯(lián)對(duì)象280(圖7),其每一個(gè)標(biāo)識(shí)了源財(cái)務(wù)表格(如,圖3的總帳表格210)的一個(gè)或多個(gè)源列,它們對(duì)應(yīng)于對(duì)應(yīng)的報(bào)表表格(如,圖8的報(bào)表表格270)的一個(gè)目標(biāo)列,或與其相關(guān)聯(lián)。如上所述,源和目標(biāo)列較佳地由源和目標(biāo)列對(duì)象定義。下一步,在步驟372,形成變換對(duì)象282(圖7),它定義了將至少一個(gè)源列的源數(shù)據(jù)元素從源格式到由關(guān)聯(lián)對(duì)象標(biāo)識(shí)的相關(guān)聯(lián)的目標(biāo)列的報(bào)表格式的變換。由變換對(duì)象定義的變換可以是上述的任一個(gè),如替換、語法分析、串接或轉(zhuǎn)動(dòng)。這些變換依照來自用戶258(圖2)的輸入來選擇。最后,在步驟374,生成用于配置ETL包230的指令,以提取源列的源數(shù)據(jù)元素320(圖3)、依照變換對(duì)象將源數(shù)據(jù)元素變換成報(bào)表格式、以及依照關(guān)聯(lián)對(duì)象將變換的源數(shù)據(jù)元素加載到報(bào)表數(shù)據(jù)表格的相關(guān)聯(lián)的目標(biāo)列中。如下文更詳細(xì)地討論的,該方法可包括在步驟374生成指令之前確認(rèn)對(duì)報(bào)表表格的需要的目標(biāo)列已完成了關(guān)聯(lián)對(duì)象的步驟。
重要的是,用戶通過定義所有必要的源和目標(biāo)列關(guān)聯(lián)以及包含在將數(shù)據(jù)元素轉(zhuǎn)換成目標(biāo)報(bào)表表格的報(bào)表格式所需的源列中的數(shù)據(jù)元素,正確地完成了用于期望的ETL操作的映射器引擎對(duì)象模型。如果不是,則ETL包230將無法執(zhí)行期望的變換和注入操作,導(dǎo)致未完成的目標(biāo)報(bào)表表格。
依照本發(fā)明的一個(gè)實(shí)施例,目標(biāo)列對(duì)象278包括“IsRequired(需要)”和“IsComplete(已完成)”屬性,它們用于確保對(duì)于目標(biāo)表格已完整地定義了映射和變換。IsComplete屬性指明對(duì)象模型狀態(tài)是否被認(rèn)為是完成的,而IsRequired屬性指明它是否需要完成。如果IsRequired屬性被設(shè)為“真”,則IsComplete屬性將被設(shè)為“假”,直到對(duì)目標(biāo)列對(duì)象278設(shè)置了所有需要的關(guān)聯(lián)對(duì)象280和變換對(duì)象282。另一方面,如果IsRequired屬性被設(shè)為“假”,則IsComplete屬性可被設(shè)為“真”,因?yàn)閷?duì)目標(biāo)對(duì)象不必設(shè)置關(guān)聯(lián)和變換對(duì)象。當(dāng)目標(biāo)表格對(duì)象的所有目標(biāo)列對(duì)象278的IsComplete屬性被設(shè)為“真”時(shí),ETL生成器方法360僅被允許來配置對(duì)應(yīng)的ETL包230。
IsRequired屬性的設(shè)置可基于各種條件而變化。例如,如果用戶表明源表格包括交易表格,則對(duì)應(yīng)于這類數(shù)據(jù)的列的目標(biāo)列對(duì)象278的IsRequired屬性可從“假”變?yōu)椤罢妗?。在這一情況下,那些目標(biāo)列對(duì)象的必需關(guān)聯(lián)和變換對(duì)象必需被完成,以在可執(zhí)行ETL生成器方法360之前將IsComplete屬性設(shè)為“真”。
基于IsRequired和IsComplete屬性,可在用戶界面256(圖2)中提供一任務(wù)窗格,它指示了用戶在執(zhí)行ETL生成器方法360之前必須完成的管理和變換。因此,任務(wù)窗格較佳地標(biāo)識(shí)了未完成但需要的目標(biāo)列對(duì)象(即,目標(biāo)列)以及剩余的任務(wù),如標(biāo)識(shí)源表格的相關(guān)聯(lián)的源列,或選擇必須被完成的變換。
盡管參考特定實(shí)施例描述了本發(fā)明,然而本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,可以在不脫離本發(fā)明的精神和范圍的情況下在形式和細(xì)節(jié)上作出改變。
權(quán)利要求
1.一種儲(chǔ)存在計(jì)算機(jī)化財(cái)務(wù)系統(tǒng)的計(jì)算機(jī)可讀介質(zhì)上的提取、變換和加載(ETL)設(shè)計(jì)器模塊,用于配置將源數(shù)據(jù)從財(cái)務(wù)數(shù)據(jù)存儲(chǔ)的財(cái)務(wù)表格加載到具有預(yù)定義格式的報(bào)表表格的ETL包,所述ETL設(shè)計(jì)器模塊包括一定義目標(biāo)列對(duì)象的目標(biāo)列類,所述目標(biāo)列對(duì)象的每一個(gè)標(biāo)識(shí)了報(bào)表表格的目標(biāo)列;一定義關(guān)聯(lián)對(duì)象的關(guān)聯(lián)類,所述關(guān)聯(lián)對(duì)象的每一個(gè)標(biāo)識(shí)了財(cái)務(wù)表格的至少一個(gè)源列與由對(duì)應(yīng)的目標(biāo)列對(duì)象標(biāo)識(shí)的目標(biāo)列的關(guān)聯(lián);以及一定義變換對(duì)象的變換類,所述變換對(duì)象的每一個(gè)負(fù)責(zé)將源列的源數(shù)據(jù)元素變換成由對(duì)應(yīng)的關(guān)聯(lián)對(duì)象標(biāo)識(shí)的關(guān)聯(lián)目標(biāo)列的報(bào)表格式。
2.如權(quán)利要求1所述的模塊,其特征在于,所述變換包括用預(yù)定義的替換元素替換源數(shù)據(jù)元素的至少一部分。
3.如權(quán)利要求1所述的模塊,其特征在于,所述變換包括對(duì)源數(shù)據(jù)元素的語法分析。
4.如權(quán)利要求1所述的模塊,其特征在于,所述變換包括兩個(gè)或多個(gè)源列的源數(shù)據(jù)元素的串接。
5.如權(quán)利要求1所述的模塊,其特征在于,所述變換包括源列的源數(shù)據(jù)元素的轉(zhuǎn)動(dòng)。
6.如權(quán)利要求1所述的模塊,其特征在于,所述變換和關(guān)聯(lián)對(duì)象的每一個(gè)是目標(biāo)列對(duì)象之一的兄弟。
7.如權(quán)利要求6所述的模塊,其特征在于,所述目標(biāo)列對(duì)象是由目標(biāo)表格類定義的目標(biāo)表格對(duì)象的兄弟。
8.如權(quán)利要求1所述的模塊,其特征在于,包括一ETL生成器方法,它被配置成編程上與服務(wù)器的ETL服務(wù)模塊進(jìn)行通信,以基于所述目標(biāo)、關(guān)聯(lián)和變換對(duì)象配置ETL包。
9.一種儲(chǔ)存在計(jì)算機(jī)化財(cái)務(wù)系統(tǒng)的計(jì)算機(jī)可讀介質(zhì)上的提取、變換和加載(ETL)設(shè)計(jì)器模塊,用于配置ETL包,所述模塊包括一定義變換對(duì)象的變換類,所述變換對(duì)象的每一個(gè)負(fù)責(zé)將財(cái)務(wù)賬目表格的源列的源數(shù)據(jù)元素變換成報(bào)表表格的相關(guān)聯(lián)目標(biāo)列的報(bào)表格式。
10.如權(quán)利要求9所述的模塊,其特征在于,所述變換包括用預(yù)定義的替換元素替換源數(shù)據(jù)元素的至少一部分。
11.如權(quán)利要求9所述的模塊,其特征在于,所述變換包括對(duì)源數(shù)據(jù)元素進(jìn)行語法分析。
12.如權(quán)利要求9所述的模塊,其特征在于,所述變換包括兩個(gè)或多個(gè)源列的源數(shù)據(jù)元素的串接。
13.如權(quán)利要求9所述的模塊,其特征在于,所述變換包括源列的源數(shù)據(jù)元素的轉(zhuǎn)動(dòng)。
14.計(jì)算機(jī)化財(cái)務(wù)系統(tǒng)中,一種配置提取、變換和加載(ETL)包、以將源數(shù)據(jù)元素從財(cái)務(wù)數(shù)據(jù)存儲(chǔ)的財(cái)務(wù)表格加載到具有預(yù)定義格式的報(bào)表表格中的方法,所述方法包括以下步驟a)形成一個(gè)或多個(gè)關(guān)聯(lián)對(duì)象,其每一個(gè)標(biāo)識(shí)了與報(bào)表表格的目標(biāo)列相關(guān)聯(lián)的一個(gè)或多個(gè)源列;b)形成一變換對(duì)象,它定義了至少一個(gè)源列的源數(shù)據(jù)元素從源格式到由所述關(guān)聯(lián)對(duì)象標(biāo)識(shí)的相關(guān)聯(lián)目標(biāo)列的報(bào)表格式的變換;以及c)生成用于配置ETL包的指令,用于提取源列的源數(shù)據(jù)元素、依照所述變換對(duì)象將源數(shù)據(jù)元素變換成報(bào)表格式、以及依照所述關(guān)聯(lián)對(duì)象將所變換的源數(shù)據(jù)元素加載到報(bào)表數(shù)據(jù)表格的相關(guān)聯(lián)的目標(biāo)列中。
15.如權(quán)利要求14所述的方法,其特征在于,所述變換包括用預(yù)定義的替換元素替換源數(shù)據(jù)元素的至少一部分。
16.如權(quán)利要求14所述的方法,其特征在于,所述變換包括對(duì)源數(shù)據(jù)元素進(jìn)行語法分析。
17.如權(quán)利要求14所述的方法,其特征在于,所述變換包括兩個(gè)或多個(gè)源列的源數(shù)據(jù)元素的串接。
18.如權(quán)利要求14所述的方法,其特征在于,所述變換包括源列的源數(shù)據(jù)元素的轉(zhuǎn)動(dòng)。
19.如權(quán)利要求14所述的方法,其特征在于,所述形成步驟a)包括接收定義一個(gè)或多個(gè)源列與預(yù)定義目標(biāo)列的關(guān)聯(lián)的用戶輸入。
20.如權(quán)利要求14所述的方法,其特征在于,所述形成步驟b)包括接收選擇變換的用戶輸入。
21.如權(quán)利要求14所述的方法,其特征在于,包括在執(zhí)行所述生成步驟c)之前確認(rèn)對(duì)報(bào)表表格的每一目標(biāo)列已完成了關(guān)聯(lián)對(duì)象的步驟。
全文摘要
一種計(jì)算機(jī)化財(cái)務(wù)系統(tǒng)的提取、變換和加載(ETL)設(shè)計(jì)器模塊,用于配置ETL包以將數(shù)據(jù)元素從財(cái)務(wù)數(shù)據(jù)庫的財(cái)務(wù)表格加載到依照預(yù)定義格式的報(bào)表表格中。該ETL設(shè)計(jì)器模塊包括定義變換對(duì)象的變換類。每一變換對(duì)象負(fù)責(zé)將財(cái)務(wù)表格的源列的源數(shù)據(jù)元素變換成報(bào)表表格的關(guān)聯(lián)目標(biāo)列的報(bào)表格式。
文檔編號(hào)G06F9/44GK1684069SQ200510067380
公開日2005年10月19日 申請(qǐng)日期2005年4月13日 優(yōu)先權(quán)日2004年4月13日
發(fā)明者P·J·斯特姆奎斯特 申請(qǐng)人:微軟公司