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