本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體為一種商業(yè)智能etl的封裝方法及系統(tǒng)。
背景技術(shù):
::etl(extraction-transformation-loading,抽取-轉(zhuǎn)換-加載)是bi(businessintelligence,商業(yè)智能)的重要組成部分,由于bi展現(xiàn)工具(例如:tableau、microsoftbi、qlikview等)已經(jīng)非常成熟和完善,一個(gè)商業(yè)智能項(xiàng)目的實(shí)現(xiàn)周期與效果很大程度決定于etl模塊的設(shè)計(jì)周期以及效果,如果不能按需對(duì)企業(yè)需要的數(shù)據(jù)進(jìn)行準(zhǔn)確的抽取及存儲(chǔ),那么商業(yè)智能項(xiàng)目難免成為海市蜃樓。發(fā)明人發(fā)現(xiàn)商業(yè)智能在現(xiàn)有的實(shí)踐中,存在如下問題:由于各企業(yè)的行業(yè)、會(huì)計(jì)核算體系、管理體系、erp系統(tǒng)供應(yīng)商、數(shù)據(jù)源數(shù)量、以及客戶的關(guān)注重點(diǎn)、分析模式等不盡相同,商業(yè)智能項(xiàng)目通常都是項(xiàng)目型交付,即依據(jù)客戶的分析目的,設(shè)計(jì)bi分析模型,根據(jù)分析模型由專業(yè)it人員編寫代碼實(shí)現(xiàn)etl,維護(hù)時(shí)也需通過代碼實(shí)現(xiàn)。當(dāng)然,也有一些erp供應(yīng)商一直致力于商業(yè)智能產(chǎn)品的標(biāo)準(zhǔn)化,但etl都根據(jù)企業(yè)的絕對(duì)共性封裝通用的執(zhí)行邏輯,或者完全不支持客戶化配置,或者同樣需要由專業(yè)it人員修改程序代碼、sql代碼才能調(diào)整etl的執(zhí)行邏輯,而預(yù)設(shè)的etl邏輯只支持所有企業(yè)共性的入門級(jí)分析??偠灾ㄖ频膃tl邏輯構(gòu)件不能通用,而通用的etl邏輯構(gòu)件只能支撐粗陋的入門級(jí)分析,對(duì)大多數(shù)企業(yè)分析價(jià)值非常有限,以財(cái)務(wù)分析為例:會(huì)計(jì)科目設(shè)置幾個(gè)級(jí)次,某個(gè)會(huì)計(jì)科目下是否配置項(xiàng)目核算、配置了幾個(gè)項(xiàng)目核算,具體是哪些項(xiàng)目核算,項(xiàng)目核算是否該企業(yè)自定義。不說集團(tuán)下不同的企業(yè)會(huì)不一樣,在同一個(gè)企業(yè)的不同經(jīng)營(yíng)周期也會(huì)不同,更遑論企業(yè)自定義的個(gè)性化數(shù)據(jù)之所以會(huì)存在,就因?yàn)檫@些數(shù)據(jù)存在管理價(jià)值,分析的價(jià)值不言而喻。而在erp商業(yè)智能分析領(lǐng)域,由于erp領(lǐng)域尤其是財(cái)務(wù)領(lǐng)域的專業(yè)性,it人員通常難于理解erp的專業(yè)知識(shí),而erp用戶通常也無法掌握etl所需要的it代碼語言,從而造成了技術(shù)壁壘與溝通障礙,導(dǎo)致商業(yè)智能項(xiàng)目中的etl部分實(shí)現(xiàn)周期長(zhǎng),數(shù)據(jù)校對(duì)困難,效果不理想,商業(yè)智能系統(tǒng)上線后也難以調(diào)整和維護(hù),甚至erp系統(tǒng)數(shù)據(jù)的改動(dòng),可能導(dǎo)致固化的etl模塊產(chǎn)生難以發(fā)現(xiàn)的錯(cuò)誤,時(shí)不時(shí)需要修改etl代碼,方可正確執(zhí)行etl邏輯。上述etl的現(xiàn)狀導(dǎo)致了商業(yè)智能項(xiàng)目實(shí)施成本高企,普及難度重重。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的在于提供一種商業(yè)智能etl的封裝方法及系統(tǒng),其可以兼容常見erp系統(tǒng)(例如:用友軟件、金蝶軟件、暢捷通等),并隨著erp系統(tǒng)數(shù)據(jù)源的調(diào)整重新生成分析維度類型或分析維度數(shù)據(jù),可以將異構(gòu)的erp數(shù)據(jù)合并到一起,且可以由erp用戶根據(jù)企業(yè)需要直接配置etl方案以及生成數(shù)據(jù)立方體(定制事實(shí)表)。為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案是:一種商業(yè)智能etl的封裝方法,包括如下步驟,s1、分析所選擇的erp數(shù)據(jù)源并提取分析維度,若為多個(gè)erp數(shù)據(jù)源,對(duì)分析維度進(jìn)行去重合并;所述分析維度,根據(jù)實(shí)際情況,為分析維度類型或者分析維度數(shù)據(jù)二者中至少一個(gè);s2、將s1生成的分析維度作為選擇參數(shù)給用戶選擇并保存為etl方案,根據(jù)s1提供的分析維度性質(zhì)不同,即提供分析維度類型或者分析維度數(shù)據(jù)二者中至少一個(gè);根據(jù)實(shí)際情況,若其還具有多個(gè)事實(shí)數(shù)據(jù)類型時(shí),則事實(shí)數(shù)據(jù)類型可同時(shí)作為選擇參數(shù)提供給用戶選擇并一起保存到etl方案;s3、基于步驟s2中用戶所保存etl方案的分析維度和事實(shí)數(shù)據(jù)類型(如果etl方案不包含事實(shí)數(shù)據(jù)類型,則為封裝的默認(rèn)事實(shí)數(shù)據(jù)類型)構(gòu)建生成數(shù)據(jù)立方體,保存至數(shù)據(jù)倉(cāng)庫(kù)中,每一個(gè)etl方案有且僅對(duì)應(yīng)一個(gè)數(shù)據(jù)立方體(同時(shí)包含維度和事實(shí),可以是t-sql語句、視圖或數(shù)據(jù)庫(kù)表等對(duì)象),以供bi展示工具、報(bào)表工具等調(diào)用。在本發(fā)明一實(shí)施例中,所述步驟s2中,用戶除了選擇所述分析維度、事實(shí)數(shù)據(jù)類型參數(shù),還可提供事實(shí)數(shù)據(jù)的計(jì)算標(biāo)準(zhǔn)(即加載參數(shù))作為參數(shù)給用戶選擇;用戶能夠隨時(shí)修改上述etl方案,新方案保存時(shí)或被調(diào)度時(shí),將按照新方案重構(gòu)并更新數(shù)據(jù)立方體。在本發(fā)明一實(shí)施例中,所述步驟s3中,在數(shù)據(jù)立方體保存至數(shù)據(jù)倉(cāng)庫(kù)前,根據(jù)erp數(shù)據(jù)源的特性,構(gòu)建分析維度和事實(shí)數(shù)據(jù)的存儲(chǔ)框架以便于數(shù)據(jù)存儲(chǔ),具體的:所述erp數(shù)據(jù)源泛指企事業(yè)單位的各類信息管理系統(tǒng)的數(shù)據(jù)庫(kù),所述信息管理系統(tǒng)包括財(cái)務(wù)系統(tǒng)、供應(yīng)鏈、人力資源、生產(chǎn)制造、成本系統(tǒng)等;根據(jù)erp數(shù)據(jù)源對(duì)應(yīng)的組織機(jī)構(gòu)數(shù)(或者數(shù)據(jù)源數(shù))生成同等數(shù)量的存儲(chǔ)單元,每個(gè)存儲(chǔ)單元包含存儲(chǔ)結(jié)構(gòu)一致的若干個(gè)維度表和事實(shí)表,亦即所有存儲(chǔ)單元的同一個(gè)性質(zhì)的表的列數(shù)量與屬性都是一樣的;用戶可隨時(shí)修改erp數(shù)據(jù)源,erp數(shù)據(jù)源調(diào)整后或etl方案被調(diào)度時(shí),該存儲(chǔ)框架將根據(jù)新erp數(shù)據(jù)源重新構(gòu)建。在本發(fā)明一實(shí)施例中,所述步驟s3中之后,還包括一數(shù)據(jù)轉(zhuǎn)換步驟s4:維度虛擬重組,用于用戶零代碼重組分析維度,即用戶可進(jìn)行分級(jí)維度自定義,并將s2中配置的若干個(gè)etl方案映射至自定義分級(jí)維度中的明細(xì)維度,方案保存或者被調(diào)度時(shí),將根據(jù)多級(jí)自定義的分級(jí)維度和對(duì)應(yīng)etl方案中的維度構(gòu)建并更新數(shù)據(jù)立方體,供bi展示工具調(diào)用。在本發(fā)明一實(shí)施例中,對(duì)于財(cái)務(wù)分析而言,在維度映射時(shí),可同時(shí)指定各個(gè)自定義明細(xì)維度是否抵扣項(xiàng),以支持財(cái)務(wù)報(bào)表olap分析,維度虛擬重組的方案支持按照財(cái)務(wù)報(bào)表的報(bào)表項(xiàng)目來設(shè)置,一個(gè)方案對(duì)應(yīng)一張報(bào)表(例如:資產(chǎn)負(fù)債表、損益表等)或者一張報(bào)表的部分元素(例如:資產(chǎn)類合計(jì)、負(fù)債及所有者權(quán)益等),具體包括:基于該維度虛擬重組方案直接生成能夠支持olap分析的財(cái)務(wù)報(bào)表數(shù)據(jù)立方體(例如:資產(chǎn)合計(jì)-流動(dòng)資產(chǎn)-貨幣資金-銀行存款-xx銀行,支持逐級(jí)匯總、逐級(jí)鉆取、切片切塊等),該財(cái)務(wù)報(bào)表為單個(gè)企業(yè)的個(gè)別報(bào)表、若干個(gè)企業(yè)的匯總報(bào)表,或加載抵消數(shù)據(jù),成為合并報(bào)表。本發(fā)明還提供了一種商業(yè)智能etl的封裝系統(tǒng),包括,預(yù)處理etl構(gòu)件,用于分析指定的n個(gè)erp數(shù)據(jù)源,并生成分析維度類型或者分析維度數(shù)據(jù)二者中至少一個(gè),若為多個(gè)erp數(shù)據(jù)源時(shí),應(yīng)對(duì)所述分析維度類型或者分析維度數(shù)據(jù)進(jìn)行去重合并;其中,n為大于等于1的整數(shù);etl配置構(gòu)件,用于顯示所述預(yù)處理etl構(gòu)件合并生成的分析維度類型(分析維度選擇器)或者分析維度數(shù)據(jù)(加載條件選擇器),封裝支持用戶配置上述參數(shù)的選擇器以新增、修改并存儲(chǔ)客戶化etl方案;根據(jù)實(shí)際情況,若其還具有多個(gè)事實(shí)數(shù)據(jù)類型時(shí),則事實(shí)數(shù)據(jù)類型(事實(shí)數(shù)據(jù)選擇器)可同時(shí)作為選擇參數(shù)提供給用戶選擇并一起保存到客戶化etl方案;定制事實(shí)表配置構(gòu)件,根據(jù)erp用戶配置的客戶化etl方案(如果該類etl方案中不包含事實(shí)數(shù)據(jù)類型,則為程序封裝的事實(shí)數(shù)據(jù)類型)構(gòu)建生成數(shù)據(jù)立方體,etl方案和數(shù)據(jù)立方體一一對(duì)應(yīng);此處以數(shù)據(jù)庫(kù)表亦即定制事實(shí)表作為數(shù)據(jù)立方體,或以t-sql語句、視圖等替代數(shù)據(jù)庫(kù)表作為數(shù)據(jù)立方體;客戶化etl構(gòu)件,根據(jù)erp用戶配置的客戶化etl方案構(gòu)建生成定制事實(shí)表,或t-sql語句、視圖等。在本發(fā)明一實(shí)施例中,所述etl配置構(gòu)件,還可顯示加載參數(shù)給用戶選擇;erp用戶能夠修改已使用的etl方案(或者維度虛擬重組方案),并保存該方案,以便后續(xù)etl配置構(gòu)件調(diào)用和修改以及定制事實(shí)表重置構(gòu)件對(duì)相應(yīng)的定制事實(shí)表進(jìn)行重建,并調(diào)用客戶化etl構(gòu)件。在本發(fā)明一實(shí)施例中,還包括一維度虛擬重組構(gòu)件,以使得用戶能夠進(jìn)行自定義分級(jí)維度設(shè)置,并將若干個(gè)etl方案虛擬映射給所配置的自定義明細(xì)維度,具體功能包括:用戶根據(jù)分析需求,能夠?qū)⒅付ǖ娜舾蓚€(gè)etl方案分別虛擬映射到用戶配置的其中一維度虛擬重組方案中的自定義明細(xì)維度上,重組erp系統(tǒng)已固化的維度隸屬關(guān)系,重構(gòu)“多級(jí)自定義維度-etl方案選擇維度”這一全新維度,以及參照etl方案中數(shù)據(jù)加載的條件和參數(shù),完全自定義分析維度;對(duì)于財(cái)務(wù)分析而言,通過將財(cái)務(wù)報(bào)表(例如:資產(chǎn)負(fù)債、所有者權(quán)益)的每個(gè)報(bào)表元素設(shè)置為不同層級(jí)的分級(jí)維度,并設(shè)置各個(gè)自定義明細(xì)維度是否抵扣項(xiàng),實(shí)現(xiàn)olap分析財(cái)務(wù)報(bào)表。在本發(fā)明一實(shí)施例中,還包括一數(shù)據(jù)倉(cāng)庫(kù)框架配置構(gòu)件、一數(shù)據(jù)倉(cāng)庫(kù)框架重置構(gòu)件、一定制事實(shí)表重置構(gòu)件以及一數(shù)據(jù)權(quán)限控制構(gòu)件,所述數(shù)據(jù)倉(cāng)庫(kù)框架配置構(gòu)件,用于分析所選擇erp數(shù)據(jù)源的數(shù)據(jù)結(jié)構(gòu)特性,并根據(jù)特性構(gòu)建分析維度(例如:會(huì)計(jì)科目、項(xiàng)目核算、事實(shí)類型等)存儲(chǔ)框架,根據(jù)erp數(shù)據(jù)源對(duì)應(yīng)的組織機(jī)構(gòu)數(shù)(或者數(shù)據(jù)源數(shù))生成同等數(shù)量的存儲(chǔ)單元,每個(gè)存儲(chǔ)單元包含存儲(chǔ)結(jié)構(gòu)一致的若干個(gè)維度表和事實(shí)表;所述數(shù)據(jù)倉(cāng)庫(kù)框架重置構(gòu)件,用于erp數(shù)據(jù)源變動(dòng)時(shí),重構(gòu)數(shù)據(jù)倉(cāng)庫(kù)存儲(chǔ)框架;所述定制事實(shí)表重置構(gòu)件,用于在用戶etl方案或維度虛擬重組方案變動(dòng)時(shí),重構(gòu)定制事實(shí)表;所述數(shù)據(jù)權(quán)限控制構(gòu)件,用于輸出定制事實(shí)表到bi展示工具時(shí),根據(jù)用戶授權(quán),只輸出已授權(quán)的事實(shí)數(shù)據(jù)。在本發(fā)明一實(shí)施例中,所述數(shù)據(jù)倉(cāng)庫(kù)框架配置構(gòu)件,還具有如下功能:評(píng)估指定數(shù)據(jù)庫(kù)服務(wù)器上的數(shù)據(jù)庫(kù)的庫(kù)表結(jié)構(gòu),根據(jù)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)特征識(shí)別erp系統(tǒng)供應(yīng)商及產(chǎn)品類型,自動(dòng)構(gòu)建erp數(shù)據(jù)源列表,以備erp用戶配置;所述erp數(shù)據(jù)源泛指企事業(yè)單位的各類信息管理系統(tǒng)數(shù)據(jù)庫(kù),上述信息管理系統(tǒng)包括財(cái)務(wù)系統(tǒng)、供應(yīng)鏈、人力資源、生產(chǎn)制造、成本系統(tǒng)等;針對(duì)各erp系統(tǒng)供應(yīng)商的不同erp系統(tǒng)產(chǎn)品,調(diào)用預(yù)處理etl構(gòu)件中配套該產(chǎn)品的數(shù)據(jù)etl方法,進(jìn)行數(shù)據(jù)預(yù)處理。相較于現(xiàn)有技術(shù),本發(fā)明可支持若干個(gè)企業(yè)的若干個(gè)異構(gòu)(或同構(gòu))的erp系統(tǒng)數(shù)據(jù)源,亦可支持某個(gè)企業(yè)的多個(gè)或單個(gè)erp數(shù)據(jù)源,通過預(yù)處理etl構(gòu)件傳遞分析維度類型與分析維度數(shù)據(jù)到數(shù)據(jù)倉(cāng)庫(kù)分單元更新與存儲(chǔ),用戶通過etl配置構(gòu)件快速配置etl方案,客戶化etl按用戶方案構(gòu)建并更新定制事實(shí)表;需要強(qiáng)調(diào)的是,本發(fā)明支持將不同供應(yīng)商的異構(gòu)產(chǎn)品,以相同的存儲(chǔ)架構(gòu)將數(shù)據(jù)合并抽取到同一個(gè)數(shù)據(jù)倉(cāng)庫(kù),從而實(shí)現(xiàn)異構(gòu)erp數(shù)據(jù)源的數(shù)據(jù)合并,使應(yīng)用多個(gè)供應(yīng)商的erp系統(tǒng)的集團(tuán)企業(yè),或更換了erp系統(tǒng)而同時(shí)存在異構(gòu)數(shù)據(jù)源的企業(yè),能夠快速實(shí)現(xiàn)異構(gòu)的多erp數(shù)據(jù)源合并,以及為后續(xù)的客戶化etl提供支撐;顯而易見,本方法亦能同時(shí)支持擁有不同行業(yè)下屬企業(yè)的集團(tuán)企業(yè),無論是多個(gè)還是單個(gè)數(shù)據(jù)源,而商業(yè)智能分析調(diào)用的事實(shí)數(shù)據(jù)表,全部由用戶通過etl配置構(gòu)件或者維度虛擬重組構(gòu)件零代碼配置,大幅降低erp領(lǐng)域商業(yè)智能項(xiàng)目etl的實(shí)現(xiàn)成本,同時(shí)相對(duì)于通用標(biāo)準(zhǔn)化etl封裝而言,大幅改進(jìn)數(shù)據(jù)分析效果;特別需要強(qiáng)調(diào)的是,本發(fā)明中所指的olap財(cái)務(wù)報(bào)表,尤其是指olap資產(chǎn)負(fù)債表(支持諸如“資產(chǎn)合計(jì)-流動(dòng)資產(chǎn)-貨幣資金-銀行存款-xx銀行”的逐級(jí)匯總,逐級(jí)鉆取,切片切塊)和olap損益表(支持諸如“利潤(rùn)總額-營(yíng)業(yè)利潤(rùn)-主營(yíng)業(yè)務(wù)利潤(rùn)-營(yíng)業(yè)費(fèi)用-差旅費(fèi)”的逐級(jí)匯總,逐級(jí)鉆取,切片切塊)是一個(gè)發(fā)明人自定義的全新事物,目前用中英文檢索找不到相關(guān)的任何文獻(xiàn)。附圖說明圖1通行etl方法架構(gòu)示意圖。圖2本發(fā)明的一個(gè)實(shí)施例的etl系統(tǒng)架構(gòu)示意圖。圖3本發(fā)明的一個(gè)實(shí)施例的etl系統(tǒng)流程示意圖。圖4本發(fā)明的一個(gè)實(shí)施例的etl配置選擇器示意圖。圖5以重構(gòu)科目分析維度為例,列示維度虛擬重組構(gòu)件工作原理示意圖。圖6本發(fā)明的另一個(gè)適用于單數(shù)據(jù)源的實(shí)施例的etl方法流程示意圖。具體實(shí)施方式為了更好的理解本發(fā)明所述的商業(yè)智能etl的封裝方法及系統(tǒng),以下結(jié)合圖2-圖5對(duì)本發(fā)明的一個(gè)具體實(shí)施例進(jìn)行系統(tǒng)的描述。本發(fā)明所涉及的每個(gè)構(gòu)件以及選擇器都是通過編程(包括但不限于:java、h5、php、c#、vb)的方法封裝實(shí)現(xiàn),并提供操作界面給用戶(尤其是erp用戶)進(jìn)行操作控制。如圖3所示:步驟301:首先,提供界面由用戶配置并連接erp數(shù)據(jù)源服務(wù)器,數(shù)據(jù)倉(cāng)庫(kù)框架配置構(gòu)件對(duì)服務(wù)器上數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)進(jìn)行分析,并根據(jù)erp供應(yīng)商的系統(tǒng)存儲(chǔ)特征以及數(shù)據(jù)庫(kù)表結(jié)構(gòu)識(shí)別erp的供應(yīng)商、系統(tǒng)的類別、系統(tǒng)的版本。如果erp數(shù)據(jù)源支持集團(tuán)一套賬(例如:用友軟件的nc、u9,金蝶軟件的eas、k/3cloud),則根據(jù)erp數(shù)據(jù)源的組織結(jié)構(gòu)表構(gòu)建組織結(jié)構(gòu)表。如果erp數(shù)據(jù)源不提供組織結(jié)構(gòu)的功能,一個(gè)企業(yè)一個(gè)數(shù)據(jù)源(例如:用友軟件的u8,暢捷通的t系列產(chǎn)品、金蝶的k/3wise、kis系列產(chǎn)品),則由數(shù)據(jù)倉(cāng)庫(kù)框架配置構(gòu)件提供一個(gè)界面供用戶維護(hù)組織結(jié)構(gòu)表,并由用戶將erp數(shù)據(jù)源映射給指定的組織機(jī)構(gòu)。由于一個(gè)企業(yè)可能存在多個(gè)erp數(shù)據(jù)源(例如用友u8早期產(chǎn)品的一個(gè)會(huì)計(jì)年度一個(gè)數(shù)據(jù)源,或者改變基礎(chǔ)檔案重新建賬),所以必須支持用戶將多個(gè)erp數(shù)據(jù)源映射給組織機(jī)構(gòu)中的同一個(gè)企業(yè)。步驟302:優(yōu)選地,為了使etl的整個(gè)系統(tǒng)更有效率,應(yīng)將分析維度類型,分析維度數(shù)據(jù),事實(shí)數(shù)據(jù)等先進(jìn)行一次etl并保存到數(shù)據(jù)倉(cāng)庫(kù)。為了構(gòu)建合理適用的存儲(chǔ)框架,事實(shí)表與維度表按照組織機(jī)構(gòu)或者數(shù)據(jù)源劃分存儲(chǔ)單元存放,為每個(gè)組織機(jī)構(gòu)(或erp數(shù)據(jù)源)虛擬一個(gè)單獨(dú)的存儲(chǔ)單元,該單元包含存儲(chǔ)結(jié)構(gòu)一致的相關(guān)分析維度表與底層事實(shí)表,客戶化etl構(gòu)件被調(diào)用時(shí),按照etl方案或維度虛擬重組方案聚合統(tǒng)計(jì)預(yù)處理數(shù)據(jù),更新定制事實(shí)表。分析維度表是指具體的分析維度數(shù)據(jù),如:科目表、項(xiàng)目核算表(具體實(shí)施時(shí),視預(yù)計(jì)數(shù)據(jù)量而定,如果數(shù)據(jù)量較大,可拆分為:商品表、客戶表、供應(yīng)商表、部門表、職員表等),以科目維度表為例,數(shù)據(jù)倉(cāng)庫(kù)框架重置構(gòu)件對(duì)每個(gè)erp數(shù)據(jù)源的科目級(jí)次、是否配置項(xiàng)目核算等特性進(jìn)行分析,并創(chuàng)建可兼容所有數(shù)據(jù)源科目的存儲(chǔ)框架。步驟303:在erp數(shù)據(jù)源被修改保存生效時(shí),則調(diào)用數(shù)據(jù)倉(cāng)庫(kù)框架重置構(gòu)件。步驟304:預(yù)處理etl構(gòu)件根據(jù)時(shí)間戳或者用戶指定的加載范圍,將指定erp數(shù)據(jù)源的分析維度類型更新到維度類型表,或者將分析維度數(shù)據(jù)更新到對(duì)應(yīng)存儲(chǔ)單元的分析維度表,或者同時(shí)處理上述二者,事實(shí)數(shù)據(jù)清洗并重新加載到對(duì)應(yīng)存儲(chǔ)單元的底層事實(shí)表。預(yù)處理etl構(gòu)件可根據(jù)分析維度的數(shù)據(jù)特征識(shí)別數(shù)據(jù)是否已經(jīng)存在于數(shù)據(jù)倉(cāng)庫(kù),如果不存在則同步該分析維度數(shù)據(jù),以約束數(shù)據(jù)完整性。步驟305:如果數(shù)據(jù)源增加或調(diào)整,數(shù)據(jù)倉(cāng)庫(kù)框架重置構(gòu)件會(huì)清洗所有維度表,并調(diào)用數(shù)據(jù)倉(cāng)庫(kù)框架配置構(gòu)件重新構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)存儲(chǔ)框架(或根據(jù)情況同時(shí)清洗事實(shí)表,并重置時(shí)間戳),該構(gòu)件亦可由用戶根據(jù)需要調(diào)用。步驟306:用戶可通過選擇器選擇分析維度、事實(shí)數(shù)據(jù)、加載條件、加載參數(shù)中的1-4個(gè)項(xiàng)目,具體的實(shí)施方式后續(xù)參照附圖4細(xì)述。步驟307:用戶可通過配置維度虛擬重組方案,并把etl配置構(gòu)件配置好的若干個(gè)etl方案(包括分析維度、事實(shí)數(shù)據(jù)、加載條件、加載參數(shù))映射到指定的自定義明細(xì)維度。具體的實(shí)施方式后續(xù)參照附圖5細(xì)述。步驟308:檢查etl方案對(duì)應(yīng)的定制事實(shí)表是否存在,如果不存在則調(diào)用定制事實(shí)表配置構(gòu)件。否則,轉(zhuǎn)向檢查etl方案是否調(diào)整。步驟309:定制事實(shí)表配置構(gòu)件對(duì)配置方案類型進(jìn)行校驗(yàn),如果是etl配置構(gòu)件保存的方案,則根據(jù)用戶指定的分析維度和事實(shí)數(shù)據(jù)構(gòu)建定制事實(shí)表。如果是維度虛擬重組構(gòu)件保存的方案,則根據(jù)用戶配置的多級(jí)自定義維度及保留的etl方案維度,以及事實(shí)數(shù)據(jù)構(gòu)建維度虛擬重組方案所對(duì)應(yīng)的定制事實(shí)表。步驟310:在etl方案被修改保存生效時(shí),構(gòu)件則調(diào)用定制事實(shí)表重置構(gòu)件。并重置關(guān)聯(lián)的維度虛擬重組方案中所映射自定義明細(xì)維度的時(shí)間戳。步驟311:客戶化etl構(gòu)件對(duì)配置方案類型進(jìn)行校驗(yàn),如果是etl配置構(gòu)件保存的方案,則根據(jù)用戶指定的分析維度和事實(shí)數(shù)據(jù)從分單元數(shù)據(jù)倉(cāng)庫(kù)抽取數(shù)據(jù),并進(jìn)行聚合統(tǒng)計(jì)。如果是維度虛擬重組構(gòu)件保存的方案,則根據(jù)用戶配置的自定義維度及保留的etl方案維度,從對(duì)應(yīng)的若干個(gè)定制事實(shí)表抽取數(shù)據(jù),并進(jìn)行聚合統(tǒng)計(jì),構(gòu)建并更新對(duì)應(yīng)的定制事實(shí)表。一個(gè)etl方案或維度虛擬重組方案,將構(gòu)建一個(gè)且僅構(gòu)建一個(gè)數(shù)據(jù)立方體,優(yōu)選地,該數(shù)據(jù)立方體為定制事實(shí)表,如上所述,該定制事實(shí)表數(shù)據(jù)或來源于分單元數(shù)據(jù)倉(cāng)庫(kù),或來源與其他的定制事實(shí)表,不再使用經(jīng)典的星型存儲(chǔ)框架,而是使定制事實(shí)表包含一個(gè)全包含的數(shù)據(jù)立方體(datacube),亦即同時(shí)包含所有已選分析維度級(jí)次與事實(shí)數(shù)據(jù)。舉例來講,對(duì)于財(cái)務(wù)分析而言,例如包含已選擇的:各類時(shí)間、各級(jí)次組織結(jié)構(gòu)、各級(jí)次科目、各級(jí)次項(xiàng)目核算、余額和發(fā)生額等列,以支持直接用于商業(yè)智能分析;全包含的數(shù)據(jù)立方體的好處主要在于避免星型存儲(chǔ)框架數(shù)據(jù)庫(kù)表之間的復(fù)雜關(guān)聯(lián)關(guān)系(leftjoin左聯(lián)接、rightjoin右聯(lián)接、innerjoin內(nèi)聯(lián)接、fulljoin全聯(lián)接、crossjoin叉積,primarykey主鍵、foreignkey外鍵、joinfield聯(lián)接字段等)等造成的非專業(yè)it人員無法將事實(shí)表和維度表通過查詢?cè)O(shè)計(jì)器關(guān)聯(lián)成為olap分析數(shù)據(jù)源,畢竟本發(fā)明的核心目的是為了使普通的erp用戶可完全配置etl方案并構(gòu)建自己預(yù)期的事實(shí)定制表,以直接用于商業(yè)智能分析,所以不選擇傳統(tǒng)的星型存儲(chǔ)框架。作為備選選擇,也可不基于物理方式生成數(shù)據(jù)表,而只構(gòu)建一段t-sql語句以作為商業(yè)智能數(shù)據(jù)源,但選擇這個(gè)方法,當(dāng)數(shù)據(jù)達(dá)到一定量級(jí)時(shí),性能將難以保障,考慮到最終商業(yè)智能的用戶通常為企業(yè)業(yè)主或決策層,所以本發(fā)明優(yōu)選了將維度和事實(shí)統(tǒng)一存儲(chǔ)在一個(gè)物理表的存儲(chǔ)框架。步驟312:etl方案變動(dòng)后,相應(yīng)的定制事實(shí)表不能僅按照時(shí)間戳更新,由定制事實(shí)表重置構(gòu)件重構(gòu)定制事實(shí)表,并調(diào)用客戶化etl構(gòu)件。定制事實(shí)表重置構(gòu)件對(duì)需要重構(gòu)的定制事實(shí)表進(jìn)行清洗,清洗完成后調(diào)用定制事實(shí)表配置構(gòu)件重構(gòu)定制事實(shí)表。優(yōu)選地,定制事實(shí)表重置構(gòu)件還可以檢查該etl方案是否被維度虛擬重組方案關(guān)聯(lián),如果存在關(guān)聯(lián)方案,則調(diào)用客戶化etl構(gòu)件對(duì)關(guān)聯(lián)的由維度虛擬重組方案生成的定制事實(shí)表之相應(yīng)數(shù)據(jù)也進(jìn)行清洗和重載。如步驟306所述,etl配置構(gòu)件中的選擇器設(shè)計(jì),以用戶能夠靈活高效的配置etl方案為目的,選用erp用戶常用的各種控件作為界面操作載體。用戶可以新增并保存新的etl方案,也可以對(duì)構(gòu)件預(yù)設(shè)或者用戶歷史配置的方案進(jìn)行調(diào)整和保存。優(yōu)選地,為了在etl方案數(shù)量龐大時(shí)提高用戶的操作效率,etl配置構(gòu)件允許用戶對(duì)etl方案自定義分類,并將etl方案按用戶指定的類別進(jìn)行存放,允許用戶檢索和選擇etl方案。如圖4所示,etl配置構(gòu)件中的選擇器包含以下部分,其中模塊403和405應(yīng)至少存在一項(xiàng):模塊401:主要包含分析維度選擇器和事實(shí)數(shù)據(jù)選擇器,將影響定制事實(shí)表的數(shù)據(jù)列。模塊402:主要包含加載條件選擇器和加載參數(shù)選擇器,將影響定制事實(shí)表的數(shù)據(jù)行,或影響數(shù)據(jù)行中的事實(shí)數(shù)據(jù)值。模塊403:分析維度選擇器將影響定制事實(shí)表的維度數(shù)據(jù)列,該選擇器的數(shù)據(jù)列表來源于預(yù)處理etl構(gòu)件生成的維度類型,用于選擇哪些維度參與分析。通過組合框、列表選擇框等控件選擇要對(duì)哪一些維度進(jìn)行分析,對(duì)于財(cái)務(wù)分析而言,例如:當(dāng)前的定制事實(shí)表主題是銷售費(fèi)用分析,可以選擇分析“部門+銷售項(xiàng)目”組合維度,也可以只選擇分析“職員”維度。模塊404:事實(shí)數(shù)據(jù)選擇器將影響定制事實(shí)表的事實(shí)數(shù)據(jù)列。通過列表選擇框等控件選擇要對(duì)哪一些事實(shí)數(shù)據(jù)進(jìn)行分析,對(duì)于財(cái)務(wù)分析而言,例如:期初余額,借方期初余額,貸方期初余額,借方發(fā)生額,貸方發(fā)生額,期末余額,借方期末余額,貸方期末余額,損益額等。也可以將不同的事實(shí)數(shù)據(jù)直接封裝成幾個(gè)操作界面,比如損益類etl方案配置窗體,直接封裝損益額取數(shù),而無需由用戶選擇事實(shí)數(shù)據(jù)。模塊405:加載條件選擇器將影響定制事實(shí)表的數(shù)據(jù)行,該選擇器的數(shù)據(jù)列表來源于預(yù)處理etl構(gòu)件生成的維度數(shù)據(jù),用于篩選指定維度的數(shù)據(jù)。通過樹狀選擇框、日期選擇框等控件指定當(dāng)前要分析的數(shù)據(jù)范圍。例如:通過日期選擇框選擇時(shí)間范圍,通過樹狀選擇框指定只統(tǒng)計(jì)哪些特定組織機(jī)構(gòu),或者哪些特定的會(huì)計(jì)科目等。當(dāng)然,為了能夠控制所有公司(或數(shù)據(jù)源)的加載條件,這里的維度,應(yīng)當(dāng)是去重合并后的整個(gè)集團(tuán)的合并維度。以會(huì)計(jì)科目為例,以科目代碼為關(guān)鍵列,對(duì)整個(gè)集團(tuán)的erp數(shù)據(jù)源進(jìn)行去重合并,形成集團(tuán)科目表,以供科目樹狀選擇器進(jìn)行選擇。模塊406:加載參數(shù)選擇器將影響定制事實(shí)表的數(shù)據(jù)行,或影響數(shù)據(jù)行中的事實(shí)數(shù)據(jù)值。通過列表選擇框等控件指定是否對(duì)特定的數(shù)據(jù)進(jìn)行加載,例如:憑證的狀態(tài)(未審核、已審核、已過賬),以及通過復(fù)選框等控件選擇加載參數(shù),對(duì)財(cái)務(wù)分析而言,例如:是否考慮合并抵消事實(shí)、是否計(jì)算股權(quán)比例等。下面結(jié)合附圖5對(duì)維度虛擬重組構(gòu)件進(jìn)行細(xì)述,以財(cái)務(wù)分析為例,一方面,企業(yè)為了更高效的管理數(shù)據(jù),通常會(huì)減少科目或項(xiàng)目核算的層級(jí),而設(shè)置數(shù)量較為龐大的一級(jí)維度(科目、項(xiàng)目核算),以科目為例,一級(jí)科目通常有百多個(gè),對(duì)象太多,不太適合數(shù)據(jù)對(duì)比分析;另一方面,erp系統(tǒng)的基礎(chǔ)檔案分級(jí)通?;谌粘5墓芾硇枰?,除了這種固化的層級(jí)隸屬關(guān)系,企業(yè)通常還需要按照其他的統(tǒng)計(jì)方法分析財(cái)務(wù)數(shù)據(jù),對(duì)于可由用戶配置的etl方法而言,可支持用戶另行配置多級(jí)自定義維度,并通過虛擬映射把指定的若干個(gè)etl方案(含分析維度、事實(shí)數(shù)據(jù)、加載條件及加載參數(shù))虛擬映射到指定的自定義明細(xì)維度,生成新分析維度是至關(guān)重要的。維度虛擬重組構(gòu)件,支持用戶自定義維度虛擬重組方案,并由用戶虛擬映射etl方案,拓展分析維度,客戶化etl構(gòu)件按照虛擬映射重拓展后的多級(jí)自定義維度與etl方案中的維度,以及etl方案對(duì)應(yīng)的定制事實(shí)表,構(gòu)建和更新定制事實(shí)表,從而將客戶化etl的效果提升到一個(gè)新臺(tái)階。自定義明細(xì)維度與分析維度之間沒有實(shí)質(zhì)的隸屬關(guān)系,僅根據(jù)維度虛擬重組構(gòu)件中指定的關(guān)聯(lián),形成了虛擬映射關(guān)系,一個(gè)etl方案可映射給多個(gè)維度虛擬重組方案,而該領(lǐng)域的通行做法為:直接編寫代碼指定加載條件向上匯總維度數(shù)據(jù),該模式下,分析維度未被拓展,不支持用戶靈活配置,更不支持olap分析(逐級(jí)匯總、逐級(jí)鉆取、切片切塊等),而本發(fā)明通過用戶配置的維度虛擬重組方案,實(shí)現(xiàn)了分析維度的重組與拓展。既輕松實(shí)現(xiàn)按維度虛擬重組對(duì)數(shù)據(jù)進(jìn)行各種匯總統(tǒng)計(jì)分析,亦支持在olap分析中將“多級(jí)自定義維度-多級(jí)etl方案維度”完全貫穿,形成一個(gè)完整分析鏈的有機(jī)整體,支持olap分析。對(duì)于財(cái)務(wù)報(bào)表分析,維度虛擬重組方案支持按照財(cái)務(wù)報(bào)表的報(bào)表項(xiàng)目來設(shè)置,一個(gè)方案對(duì)應(yīng)一張報(bào)表或者部分元素,并允許用戶設(shè)置各個(gè)自定義明細(xì)維度是否抵扣項(xiàng),構(gòu)件基于該維度虛擬重組方案可直接生成可以支持olap分析的財(cái)務(wù)報(bào)表(例如:資產(chǎn)負(fù)債表、損益表等)數(shù)據(jù)立方體,這些財(cái)務(wù)報(bào)表可以是單體企業(yè)或者集團(tuán)某個(gè)下屬企業(yè)的個(gè)別報(bào)表,也可以是若干個(gè)企業(yè)的匯總報(bào)表,或者選擇加載參數(shù)中的“考慮合并抵消”,加載抵消數(shù)據(jù),成為合并報(bào)表。如步驟307所述,維度虛擬重組構(gòu)件可以重組用戶分析的維度。維度虛擬重組構(gòu)件主要包含兩個(gè)核心部分:維度虛擬重組配置器,允許用戶新增或配置維度虛擬重組方案,每個(gè)維度虛擬重組支持若干個(gè)級(jí)別的自定義維度。優(yōu)選地,用戶可以對(duì)維度方案進(jìn)行分類,并同時(shí)提供檢索功能。以提高用戶檢索和選擇方案的效率。維度虛擬重組映射器,允許用戶將已保存的etl方案映射到維度虛擬重組方案中的最明細(xì)自定義維度,從而形成虛擬關(guān)聯(lián)關(guān)系,優(yōu)選地,配置器支持用戶選擇原etl方案中的分析維度是否繼續(xù)保留,以及保留的維度級(jí)次,從而使用戶可以更有針對(duì)性的定制和存儲(chǔ)定制事實(shí)表,維度虛擬重組構(gòu)件在保存時(shí)會(huì)根據(jù)自定義維度、被設(shè)置為保留的etl方案維度以及對(duì)應(yīng)的維度級(jí)次,拓展形成新的自定義分析維度,客戶化etl構(gòu)件調(diào)用維度虛擬重組方案時(shí),將會(huì)調(diào)用該自定義分析維度,聚合統(tǒng)計(jì)原etl方案對(duì)應(yīng)的若干個(gè)定制事實(shí)表。生成新的定制事實(shí)表。優(yōu)選地,構(gòu)件支持維度虛擬重組方案按每個(gè)自定義明細(xì)維度存儲(chǔ)時(shí)間戳,通過比對(duì)etl方案的更新時(shí)間戳和該自定義明細(xì)維度更新時(shí)間戳來校驗(yàn)并更新維度虛擬重組方案對(duì)應(yīng)的定制事實(shí)表的數(shù)據(jù)。同時(shí)如果用戶重新配置etl方案,etl配置構(gòu)件也將重置相應(yīng)的自定義明細(xì)維度時(shí)間戳,以便已經(jīng)修改了etl方案部分的維度虛擬重組方案能夠完整更新。為了能夠進(jìn)一步說明維度虛擬重組和etl方案之間是如何映射的,圖5展示了映射拓展的簡(jiǎn)單示意圖,圖中是一組三個(gè)級(jí)次的自定義維度,圖中列舉了資產(chǎn)合計(jì)-流動(dòng)資產(chǎn)-應(yīng)收賬款,其中應(yīng)收賬款是自定義明細(xì)維度,虛擬映射一個(gè)etl方案,由于需要按照科目和客戶對(duì)余額進(jìn)行重分類,所以分析維度選擇器選擇了科目和客戶(如果應(yīng)收類科目沒有項(xiàng)目核算,只有子科目,則只選擇科目),也因?yàn)樾枰胤诸?,余額類型選擇了借方期末余額,而應(yīng)收賬款和預(yù)收賬款的借方余額都屬于應(yīng)收賬款,所以科目選擇了這兩個(gè)一級(jí)科目,而加載參數(shù)選擇了考慮股權(quán)比例及考慮合并抵消。也就是出具的olap資產(chǎn)負(fù)債表是大股東權(quán)益部分的合并報(bào)表。主流的bi產(chǎn)品有相當(dāng)部分不支持?jǐn)?shù)據(jù)權(quán)限控制,或者對(duì)用戶訪問數(shù)據(jù)的權(quán)限需要在腳本級(jí)開發(fā)實(shí)現(xiàn),例如bi領(lǐng)導(dǎo)廠商之一的qlikview就需要通過腳本來定義用戶可訪問的數(shù)據(jù)權(quán)限?;谶@種現(xiàn)狀,優(yōu)選地,本發(fā)明可以通過api或webservice等方式提供數(shù)據(jù)輸出接口,來輸出定制事實(shí)表。一方面,如圖2所示,本系統(tǒng)可提供數(shù)據(jù)權(quán)限控制構(gòu)件,僅輸出用戶被授權(quán)可訪問的數(shù)據(jù):數(shù)據(jù)模型、組織機(jī)構(gòu)、分析維度(例如客戶、供應(yīng)商、部門)等權(quán)限,bi系統(tǒng)通過接口回傳用戶名,接口程序在輸出前根據(jù)回傳的用戶數(shù)據(jù)權(quán)限,只輸出該用戶已授權(quán)允許訪問的數(shù)據(jù)。更為重要的是,bi調(diào)用數(shù)據(jù)訪問接口,在輸出數(shù)據(jù)前,該接口可以校驗(yàn)etl方案與維度虛擬重組方案對(duì)應(yīng)定制事實(shí)表的更新時(shí)間戳是否與預(yù)處理etl時(shí)間戳一致,若不一致,調(diào)用客戶化etl構(gòu)件更新定制事實(shí)表。以避免計(jì)劃調(diào)度或者人工指定更新滯緩導(dǎo)致的商業(yè)智能上展示的非最新數(shù)據(jù)。顯而易見,如果bi與etl作為一個(gè)整體的產(chǎn)品存在,則只提供內(nèi)部訪問接口或方法即可。圖6為一種商業(yè)智能etl方法的第二個(gè)實(shí)施例,該方法可用于單erp數(shù)據(jù)源的etl:步驟601:獲取erp數(shù)據(jù)源的分析維度(分析維度類型、或者某個(gè)分析維度的實(shí)際數(shù)據(jù)或者二者同時(shí)生成),以備步驟602中的etl配置構(gòu)件選擇。步驟602:用戶可通過選擇器選擇分析維度、事實(shí)數(shù)據(jù)、加載條件、加載參數(shù)中的1-4個(gè)項(xiàng)目,具體的實(shí)施方式見第一個(gè)實(shí)施例對(duì)于附圖4的細(xì)述。步驟603:檢查etl配置對(duì)應(yīng)的定制事實(shí)表是否存在,如果不存在則調(diào)用定制事實(shí)表配置構(gòu)件。步驟604:定制事實(shí)表配置構(gòu)件根據(jù)用戶指定的分析維度和事實(shí)數(shù)據(jù)構(gòu)建定制事實(shí)表。步驟605:在etl方案被修改保存生效時(shí),構(gòu)件則調(diào)用定制事實(shí)表重置構(gòu)件。步驟606:客戶化etl構(gòu)件根據(jù)用戶指定的分析維度和事實(shí)數(shù)據(jù)從erp數(shù)據(jù)源抽取數(shù)據(jù),并將數(shù)據(jù)更新到定制事實(shí)表。步驟607:etl方案變動(dòng)后,相應(yīng)的定制事實(shí)表不能僅按照時(shí)間戳更新,由定制事實(shí)表重置構(gòu)件重構(gòu)定制事實(shí)表,并調(diào)用客戶化etl構(gòu)件。為了使本發(fā)明的描述簡(jiǎn)明扼要,本發(fā)明的實(shí)施例只對(duì)erp產(chǎn)品中最常見的財(cái)務(wù)模塊進(jìn)行了描述和舉例,顯而易見地,本發(fā)明所描述的封裝方法(除olap財(cái)務(wù)報(bào)表外),同樣適用于erp產(chǎn)品的其他系統(tǒng)模塊,包括但不限于:供應(yīng)鏈、生產(chǎn)系統(tǒng)、成本系統(tǒng)、預(yù)算系統(tǒng)、人力資源系統(tǒng)。通過上述兩個(gè)實(shí)施例可知,以上描述乃是本發(fā)明的實(shí)施例及所運(yùn)用的技術(shù)原理,本領(lǐng)域的技術(shù)人員可以清楚地理解本發(fā)明,并能夠通過編程封裝的方式,以軟件產(chǎn)品、接口或服務(wù)的方式實(shí)現(xiàn)本發(fā)明,或者基于本發(fā)明進(jìn)行修改或變型。故而,本領(lǐng)域的技術(shù)人員將本發(fā)明所描述的方法及系統(tǒng)進(jìn)行形式上的修改,或依本發(fā)明的構(gòu)想做出改變,其所產(chǎn)生的功能作用仍未脫離說明書及附圖所涵蓋的精神時(shí),仍應(yīng)屬本發(fā)明的保護(hù)范圍。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12