BI是一個數(shù)據(jù)分析的工具,而ERP系統(tǒng)則是一個聯(lián)機(jī)事務(wù)處理系統(tǒng)。這兩個系統(tǒng)之間會產(chǎn)生交集嗎?答案是肯定的。做一個形象的比喻。ERP系統(tǒng)就好像是一個油田,而BI就是一個煉油的工具。BI系統(tǒng)在煉油時(shí),肯定需要原油。這個原油就是ERP系統(tǒng)中的數(shù)據(jù)。在這篇文章中,筆者就以SAP的ERP系統(tǒng)和BW系統(tǒng)(BI系統(tǒng)的一種)為例,分析一下如果有效的從ERP系統(tǒng)中抽取數(shù)據(jù)。
一、系統(tǒng)初始數(shù)據(jù)抽取
在實(shí)際項(xiàng)目中,一般都是先有ERP系統(tǒng),然后再上BI項(xiàng)目。這就好像是煉油。一般都是先有原油,然后再進(jìn)行提煉。而且BI項(xiàng)目其分析的一般都是3-5年的數(shù)據(jù),為此ERP系統(tǒng)中的數(shù)據(jù)量已經(jīng)比較多了。
為此第一次數(shù)據(jù)的抽取,所需要花的時(shí)間是比較多的。如上圖右面的分支所示,就表示在SAP系統(tǒng)中第一次如果從系統(tǒng)中抽取數(shù)據(jù)。為了保障數(shù)據(jù)抽取的準(zhǔn)確性與高效性,SAP專門為BI系統(tǒng)準(zhǔn)備了一張SetUp表。這張表是根據(jù)BI系統(tǒng)的需要而設(shè)計(jì)的。通常情況下,SAP中的數(shù)據(jù)BI系統(tǒng)可能只需要50%即可。所以這張SETUP表是為BI系統(tǒng)量身定制的。數(shù)據(jù)要比原系統(tǒng)的數(shù)據(jù)要少。
在數(shù)據(jù)抽取之前,一般需要先對SetUp表進(jìn)行清空。以防止該表中原有數(shù)據(jù)與需要導(dǎo)入的數(shù)據(jù)出現(xiàn)沖突的清空。清空之后,再將源系統(tǒng)中的數(shù)據(jù)導(dǎo)入到SetUp表中。通過中間表SetUp,可以過濾到一些BI系統(tǒng)用不到都是數(shù)據(jù),以提高數(shù)據(jù)抽取的效率。將數(shù)據(jù)抽取到SetUp表之后,再通過工具將數(shù)據(jù)傳輸?shù)紹I中去。
二、從ERP系統(tǒng)中抽取數(shù)據(jù)需要解決的問題
當(dāng)BI系統(tǒng)從ERP系統(tǒng)中抽取數(shù)據(jù)時(shí),用戶主要關(guān)心的是三個問題。一是數(shù)據(jù)抽取是否完全,二是數(shù)據(jù)抽取是否準(zhǔn)確,三是數(shù)據(jù)抽取是否及時(shí)。如果能夠確保這三個問題都不成問題了,那么這個數(shù)據(jù)抽取的解決方案就是成功的。
在實(shí)際工作中,一般數(shù)據(jù)抽取可以分為兩個部分。一是初始化抽取。在這個部分中,往往是采取完全抽取的方式。即將ERP中的數(shù)據(jù)全部抽取到BI中。如果企業(yè)ERP運(yùn)行的時(shí)間比較長,這個抽取的過程會比較漫長。如筆者做過一個項(xiàng)目,這個數(shù)據(jù)的初始化抽取工作就會了2天時(shí)間。二是后續(xù)的抽取。當(dāng)?shù)谝淮纬槿『,?shù)據(jù)會有變化。對于這些變化的數(shù)據(jù),一般不會采取完全覆蓋的方式。即不會將已經(jīng)抽上去的數(shù)據(jù)清除,然后重新來過。如果這樣做的的話,傳輸?shù)臅r(shí)間會比較長。通常情況下,我們采用的方式增量更新的方式。簡單的說,就是只更新上次更新后未更新的數(shù)據(jù)。
如果采用增量更新的話,那么項(xiàng)目管理員只需要關(guān)心捕獲、運(yùn)輸和融合三個話題。捕獲表示系統(tǒng)如何判斷數(shù)據(jù)是否更新、是否有刪除等等;運(yùn)輸表示數(shù)據(jù)如果傳遞到BW上去;融合指的是新舊數(shù)據(jù)如何對接等等。在SAP的解決方案中,對此都有比較詳細(xì)的處理方式。
三、項(xiàng)目的建議
在實(shí)際項(xiàng)目中,從ERP抽取數(shù)據(jù)要比上面所話的圖復(fù)雜的多。除了要掌握上圖的基本理論之外,筆者認(rèn)為在數(shù)據(jù)抽取時(shí),還需要關(guān)注如下內(nèi)容。
一是要充分認(rèn)識到從BI系統(tǒng)中抽取數(shù)據(jù)的重要性。在實(shí)際項(xiàng)目中,雖然有時(shí)候也需要從文本數(shù)據(jù)中獲取數(shù)據(jù),但是這個比例并不是很高。在筆者遇到的項(xiàng)目中,一般文本類型的數(shù)據(jù)只有10%左右。大部分的數(shù)據(jù)都是來源于ERP系統(tǒng)。為此從ERP系統(tǒng)中抽取數(shù)據(jù),無論是BI系統(tǒng)設(shè)計(jì)者、還是企業(yè)用戶,都是無法避免的一個課題。
二是需要注意,數(shù)據(jù)抽取等系統(tǒng)本身性能的沖擊。如上所示,如果采用增量更新方式的話,系統(tǒng)除了要往基礎(chǔ)表中寫入數(shù)據(jù)之外,還需要向另外一張額外的表中寫入數(shù)據(jù)?梢,這會增加服務(wù)器的負(fù)擔(dān)。特別是當(dāng)數(shù)據(jù)量比較多時(shí),會還用比較多的系統(tǒng)資源。為此在數(shù)據(jù)抽取時(shí),要關(guān)注對系統(tǒng)本身性能的沖擊。一般情況下,都會采取一些措施來避免這種情況。如可以合理安排數(shù)據(jù)抽取的時(shí)間,將其放在用戶使用量比較少的時(shí)候。像在SAP系統(tǒng)中,其采用的是中間表的方式,來減少數(shù)據(jù)的傳輸量。
三是需要注意,對于SAP系統(tǒng)來說,那面這些表,是系統(tǒng)專門為BI系統(tǒng)所準(zhǔn)備的。即在系統(tǒng)安裝時(shí)就已經(jīng)存在了的。只是系統(tǒng)沒有啟用而已。當(dāng)企業(yè)用戶需要使用BI系統(tǒng)時(shí),需要通過事務(wù)代碼來激活這些表。否則的話,就無法使用。上圖中所顯示的表格都是邏輯表,實(shí)際表的結(jié)果要比這個要復(fù)雜的多。不過作為BI的事實(shí)顧問來說,只需要掌握這些邏輯表即可。對于其后臺的基礎(chǔ)表,讓SAP的技術(shù)人員去了解即可。
四是DeltaQueqe的方式。對于BI系統(tǒng)來說,DeltaQueqe其實(shí)提供了三種方式。其中比較常用的就是DeltaQueqe方式(上圖所示的方式)和DirectQueqe的方式。其中前者對于性能的沖擊比較小,因?yàn)橛兄虚g表的過濾。而后者對于系統(tǒng)性能的沖擊比較大。在后續(xù)硬件跟的上的情況下,采用DirectQueqe的方式也未嘗不可。不過筆者建議,在現(xiàn)階段,還是采用DeltaQueqe方式為宜。
四、增量更新處理方式
后續(xù)的數(shù)據(jù),一般都是通過增量更新的方式。如在實(shí)際項(xiàng)目中,都會設(shè)置一個批處理作業(yè)。在晚上下班后,讓系統(tǒng)自動將一天之內(nèi)更新的數(shù)據(jù)傳輸?shù)紹I中。此時(shí)就遇到一個問題,系統(tǒng)如何來判斷,哪些數(shù)據(jù)時(shí)更新過的呢?注意,這個地方的數(shù)據(jù)更新其實(shí)包括三方面的內(nèi)容。分別是數(shù)據(jù)更新、數(shù)據(jù)刪除和新建數(shù)據(jù)。
針對這個內(nèi)容,在SAP系統(tǒng)中其實(shí)又提供了兩種方式。一是增量隊(duì)列式。如上圖所示,在SAP中專門有一個ExtractionQueue表。當(dāng)SAP系統(tǒng)中數(shù)據(jù)有更新時(shí),系統(tǒng)會將數(shù)據(jù)寫入到SAP基礎(chǔ)表的同時(shí)寫入到這個表中。也就是說,這個表中的數(shù)據(jù)就是最近所更新的數(shù)據(jù)。需要注意的是,這個表中的數(shù)據(jù)一般保存的是最近更新的和最近一次更新的。系統(tǒng)會在記錄中做一下標(biāo)識來判斷數(shù)據(jù)是否已經(jīng)傳輸?shù)搅薆W中去。一般的IO數(shù)據(jù)抽取,都是采用這種方式。
二是采用時(shí)間戳的方式。即系統(tǒng)在數(shù)據(jù)更新時(shí),會記錄數(shù)據(jù)更新的時(shí)間。這個時(shí)間往往是精確到秒的。然后系統(tǒng)中另外有一個地方會記錄系統(tǒng)上次抽取數(shù)據(jù)的時(shí)間。然后這次數(shù)據(jù)抽取時(shí),其就會將這兩個時(shí)間進(jìn)行比較,然后將晚于這個時(shí)間的數(shù)據(jù)全部抽取上去。通常情況下,財(cái)務(wù)相關(guān)的數(shù)據(jù),都會采用這種方式來抽取。
也就是說,系統(tǒng)中可以允許同時(shí)存在這兩種數(shù)據(jù)。到底是用甚么樣的數(shù)據(jù),就要看用戶的需要而定。不過一般情況下,物流相關(guān)的數(shù)據(jù),推薦是用增量隊(duì)列的方式。而財(cái)務(wù)相關(guān)的數(shù)據(jù),則采用時(shí)間戳的方式。
這另外需要提醒的是,上圖所示的ExtractionQueue與DeltaQueue表其實(shí)是同一張表。在表中,會有一個字段來標(biāo)識其到底是屬于哪一張表中的內(nèi)容。也就是說,上圖中所顯示的表一般是邏輯表,而不是實(shí)體表。另外,系統(tǒng)還會額外的提供兩張控制表,來確保整個增量更新作業(yè)的準(zhǔn)確性。
通過上面的分析我們可以知道,SAP的從ERP系統(tǒng)中抽取數(shù)據(jù)的解決方案,相對來說是比較合理科學(xué)的。可以解決數(shù)據(jù)傳輸過程中捕獲、傳輸、融合等方面的問題。無論是項(xiàng)目管理員還是開發(fā)人員,都值得借鑒這種處理方式。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:SAP BI從ERP系統(tǒng)抽取數(shù)據(jù)解決方案
本文網(wǎng)址:http://www.ezxoed.cn/html/solutions/1401931344.html