一、大數(shù)據(jù)輸出困惑
ERP系統(tǒng)穩(wěn)定運(yùn)行后,隨著時(shí)間的流逝,系統(tǒng)中業(yè)務(wù)數(shù)據(jù)的量級(jí)也隨之攀升。特別是以SAP、Oracle商務(wù)套件為依托的ERP系統(tǒng),數(shù)據(jù)增量更為驚人。以筆者所在企業(yè)為例:該企業(yè)部署了SAP公司的ERP系統(tǒng),應(yīng)用涵蓋時(shí)尚行業(yè)、零售行業(yè)兩大解決方案;其中,零售解決方案的數(shù)據(jù)增量尤為驚人;如:終端零售數(shù)據(jù)以平均每年1億條記錄的量級(jí)增長(zhǎng),對(duì)應(yīng)的庫(kù)存事務(wù)、財(cái)務(wù)憑證數(shù)據(jù)都在1億條以上。如此海量數(shù)據(jù)的沉淀,業(yè)務(wù)用戶(hù)想快速輸出近期明細(xì)數(shù)據(jù)(實(shí)時(shí)性較強(qiáng)的數(shù)據(jù))卻成了一種奢望,近期交易數(shù)據(jù)尚且如此,歷史明細(xì)數(shù)據(jù)輸出更為艱難。如何滿(mǎn)足用戶(hù)的愿望,實(shí)現(xiàn)明細(xì)數(shù)據(jù)的快速輸出變得迫在眉睫。好在SAP系統(tǒng)提供了“數(shù)據(jù)壓縮”技術(shù)和“信息結(jié)構(gòu)”技術(shù),讓明細(xì)數(shù)據(jù)的快速輸出成為了現(xiàn)實(shí)。筆者與其技術(shù)團(tuán)隊(duì)運(yùn)用上述兩大核心技術(shù)解決了大數(shù)據(jù)明細(xì)輸出問(wèn)題。
二、數(shù)據(jù)實(shí)時(shí)存儲(chǔ)
要保證明細(xì)數(shù)據(jù)快速輸出,首先要借助“信息結(jié)構(gòu)”技術(shù)實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)存儲(chǔ)和簡(jiǎn)單整合。所謂“信息結(jié)構(gòu)”技術(shù),即:用戶(hù)根據(jù)自身的需要定義數(shù)據(jù)結(jié)構(gòu),確定數(shù)據(jù)整合邏輯及數(shù)據(jù)匯集粒度;待確定無(wú)誤后激活該數(shù)據(jù)結(jié)構(gòu)。一旦被激活,任何與之相關(guān)的業(yè)務(wù)操作都會(huì)按照事先設(shè)定的業(yè)務(wù)邏輯要求自動(dòng)刷新(添加、修改、刪除等)對(duì)應(yīng)的數(shù)據(jù)表(Table)。通過(guò)“信息結(jié)構(gòu)”整合后的數(shù)據(jù)其存儲(chǔ)容量大大減少,同時(shí),實(shí)現(xiàn)了明細(xì)數(shù)據(jù)的實(shí)時(shí)存儲(chǔ)。與數(shù)據(jù)倉(cāng)庫(kù)比較而言,其特點(diǎn)就在于“實(shí)時(shí)”又“明細(xì)”。
三、“數(shù)據(jù)壓縮”技術(shù)
事實(shí)上,“信息結(jié)構(gòu)”中數(shù)據(jù)記錄超過(guò)1億條后,其查詢(xún)速度也將變慢;這樣以來(lái),效率低下的問(wèn)題依然存在。這時(shí),可使用“簇?cái)?shù)據(jù)表”技術(shù)來(lái)解決數(shù)據(jù)輸出速度慢的問(wèn)題。“簇?cái)?shù)據(jù)表”以數(shù)據(jù)塊為對(duì)象進(jìn)行存儲(chǔ),其數(shù)據(jù)表內(nèi)條目減少50倍左右;而且,其邏輯存儲(chǔ)和物理存儲(chǔ)完全是一致的,因此,明細(xì)數(shù)據(jù)查詢(xún)直接定位物理存儲(chǔ),保證數(shù)據(jù)快速輸出。可將“信息結(jié)構(gòu)”中的數(shù)據(jù)按照一定的邏輯進(jìn)行分類(lèi)形成若干個(gè)數(shù)據(jù)塊,分類(lèi)完畢后,“簇?cái)?shù)據(jù)表”首先存儲(chǔ)數(shù)據(jù)的分類(lèi)邏輯;而后,將數(shù)據(jù)塊的物理地址與之關(guān)聯(lián)并存儲(chǔ)。到此為止,就實(shí)現(xiàn)了明細(xì)數(shù)據(jù)的壓縮機(jī)制。
四、“數(shù)據(jù)解壓”過(guò)程
明細(xì)數(shù)據(jù)需要輸出時(shí),一旦用戶(hù)確定數(shù)據(jù)的輸出條件,程序根據(jù)條件內(nèi)容直接到對(duì)應(yīng)的“簇?cái)?shù)據(jù)表”中查找符合條件的記錄,然后,根據(jù)記錄中物理地址的指向?qū)?shù)據(jù)塊釋放到內(nèi)存中。這樣以來(lái),就完成了明細(xì)數(shù)據(jù)的快速輸出。在實(shí)際數(shù)據(jù)輸出時(shí),由于用戶(hù)所需數(shù)據(jù)與數(shù)據(jù)塊中的數(shù)據(jù)不完全一致,同時(shí),也要從多個(gè)數(shù)據(jù)塊中獲取,為了提高輸出效率,可使用“M+N”匹配法從多個(gè)數(shù)據(jù)塊中篩選出符合用戶(hù)需求的明細(xì)數(shù)據(jù)。
五、應(yīng)用案例
筆者所在企業(yè)的ERP系統(tǒng)中營(yíng)銷(xiāo)數(shù)據(jù)約4億條記錄,即使通過(guò)“信息結(jié)構(gòu)”簡(jiǎn)單壓縮后,數(shù)據(jù)量仍然在2.5億左右。當(dāng)下,在如此海量的數(shù)據(jù)表中查找近期一個(gè)月內(nèi)的明細(xì)數(shù)據(jù),依然困難重重。為此,索性引進(jìn)“數(shù)據(jù)壓縮”技術(shù)解決該問(wèn)題。相關(guān)技術(shù)部署完畢后,數(shù)據(jù)輸出測(cè)試結(jié)果:1000萬(wàn)條數(shù)據(jù)記錄可在40秒內(nèi)輸出到顯示器上。
以下描述重在闡述該技術(shù)的應(yīng)用過(guò)程,期待對(duì)用戶(hù)有所啟發(fā)和幫助。
1、“信息結(jié)構(gòu)”配置
1.1 定義數(shù)據(jù)元素(SE11)
創(chuàng)建“信息結(jié)構(gòu)”時(shí)可以借用ERP系統(tǒng)的字段(Field);由于描述不清晰,故,可自行添加數(shù)據(jù)元素。
1.2 擴(kuò)展結(jié)構(gòu)MCBEST(SE11)
點(diǎn)擊“附件結(jié)構(gòu)…”,將新建數(shù)據(jù)元素加入結(jié)構(gòu)MCBEST中。
1.3 維護(hù)自定義字段目錄(MC18)
作用:便于在創(chuàng)建信息結(jié)構(gòu)時(shí)字段選擇。
1.4 維護(hù)公式(MC1P)
例一:入庫(kù)數(shù)量公式;
例二:出庫(kù)數(shù)量公式;
例三:入庫(kù)庫(kù)金額公式;
例四:出庫(kù)金額公式;
1.5 維護(hù)自定義“信息結(jié)構(gòu)”(MC21)
1.6 維護(hù)數(shù)據(jù)更新規(guī)則(MC24)
顯示其中之一:移動(dòng)/調(diào)整入庫(kù)數(shù)量配置參數(shù);
如何處理:“發(fā)票校驗(yàn)”、“修改價(jià)格”等無(wú)數(shù)量更新而有價(jià)值更新業(yè)務(wù)。
1.7 激活更新(OMO9)
1.8 初始化“信息結(jié)構(gòu)”的數(shù)據(jù)
T-CODE:OLI1用于更新BF事件歷史數(shù)據(jù);
T-CODE:OLIZ用于UM事件歷史數(shù)據(jù)。
由發(fā)票校驗(yàn)引起的價(jià)值更新,即可以通過(guò)OLI1更新,也可以通過(guò)OLIZ更新;因此,數(shù)據(jù)初始化時(shí)應(yīng)避免重復(fù),造成數(shù)據(jù)重復(fù)計(jì)算。
2、“簇?cái)?shù)據(jù)表”
2.1 數(shù)據(jù)簇
概念:數(shù)據(jù)簇是一個(gè)數(shù)據(jù)塊,該數(shù)據(jù)塊聚合了若干ABAP/4中的數(shù)據(jù)對(duì)象(如圖所示)。
(圖1)
圖1備注1:數(shù)據(jù)簇 = 數(shù)據(jù)對(duì)象聚合 ,ABAP/4中基本字段,字符串,內(nèi)表都是數(shù)據(jù)對(duì)象。
圖1備注2:數(shù)據(jù)簇可以在ABAP/4內(nèi)存或數(shù)據(jù)表進(jìn)行存取。
2.2 “簇?cái)?shù)據(jù)表”
定義:存儲(chǔ)數(shù)據(jù)簇的特殊透明表,稱(chēng)為簇?cái)?shù)據(jù)表。
結(jié)構(gòu):見(jiàn)圖2:
(圖2)
圖2中3(關(guān)鍵字)是數(shù)據(jù)簇的標(biāo)識(shí),即通過(guò)這個(gè)標(biāo)識(shí)來(lái)找到這個(gè)數(shù)據(jù)簇;它由若干個(gè)字段組成,由用戶(hù)定義。
圖2中5(用戶(hù)數(shù)據(jù))由用戶(hù)定義,不是必須字段,可以不定義。
圖2中7(數(shù)據(jù)簇)字段名由系統(tǒng)默認(rèn),用戶(hù)可以修改字段默認(rèn)的長(zhǎng)度,用于存數(shù)據(jù)簇。
圖2中1(集團(tuán))、2(區(qū)域)、4(行計(jì)算器)、6(數(shù)據(jù)長(zhǎng)度)這四個(gè)字段名由系統(tǒng)默認(rèn),用戶(hù)不能修改。定義“簇?cái)?shù)據(jù)表”結(jié)構(gòu)時(shí),圖2中的字段順序不能改變。
2.3 創(chuàng)建“簇?cái)?shù)據(jù)表”(SE11)
2.4 “簇?cái)?shù)據(jù)表”操作語(yǔ)法
*在“簇?cái)?shù)據(jù)表”中存儲(chǔ)數(shù)據(jù)對(duì)象:
2.5 為什么使用“簇?cái)?shù)據(jù)表”
*透明表?xiàng)l目數(shù)太多,用SQL查詢(xún)很慢,幾乎不可查詢(xún)。
*“簇?cái)?shù)據(jù)表”將透明表內(nèi)容壓縮為數(shù)據(jù)塊進(jìn)行存儲(chǔ),條目數(shù)大大減少。
*“簇?cái)?shù)據(jù)表”若干個(gè)數(shù)據(jù)塊做為一個(gè)物理記錄,實(shí)現(xiàn)邏輯和物理存儲(chǔ)一致,查詢(xún)速度更快。
3、實(shí)例—“店鋪期間銷(xiāo)售數(shù)量和銷(xiāo)售金額查詢(xún)”
3.1 “信息結(jié)構(gòu)”創(chuàng)建
按照1.1至1.8步驟創(chuàng)建“信息結(jié)構(gòu)”S911,用來(lái)記錄物料在工廠和存儲(chǔ)地點(diǎn)下的數(shù)量和金額每一筆記錄。
3.2 創(chuàng)建“簇?cái)?shù)據(jù)表”ZTS911(SE11)
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://m.guhuozai8.cn/
本文標(biāo)題:“數(shù)據(jù)壓縮”技術(shù)助力SAP/ERP 系統(tǒng)大數(shù)據(jù)快速輸出
本文網(wǎng)址:http://m.guhuozai8.cn/html/consultation/10819917038.html