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