摘 要: 以某企業(yè)的成本分析系統(tǒng)為依托,針對(duì)成本系統(tǒng)的數(shù)據(jù)特點(diǎn),研究了企業(yè)業(yè)務(wù)數(shù)據(jù)的實(shí)際問題和需求,完成了源數(shù)據(jù)庫(kù)中數(shù)據(jù)的ETL過程,并且根據(jù)業(yè)務(wù)要求創(chuàng)建了新的數(shù)據(jù)倉(cāng)庫(kù),用開源的工具實(shí)現(xiàn)了聯(lián)機(jī)分析處理模塊,并且利用前端技術(shù)進(jìn)行了數(shù)據(jù)的展現(xiàn)。
關(guān)鍵詞: 商業(yè)智能; 數(shù)據(jù)倉(cāng)庫(kù); OLAP; 回歸分析; 成本分析
中圖分類號(hào): TN911?34; TP311.17 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2016)19?0111?05
Abstract: On the basis of the cost analysis system of a certain enterprise, the practical problems and demands of the enterprise′s business data are studied according to the data characteristics of the cost system. The data ETL process in the source database was accomplished, and a new data warehouse was established according to the business requirements. The on?line analysis processing module was realized with the open source tool, and the data was showed with the front?end technology.
Keywords: business intelligence; data warehouse; OLAP; regression analysis; cost analysis
近年來(lái),隨著生產(chǎn)企業(yè)的日益發(fā)展,如果想提升管理的科學(xué)化和精細(xì)化水平,那么需要加強(qiáng)集團(tuán)各單位產(chǎn)品成本核算與控制,從而降低公司的生產(chǎn)成本,服務(wù)于各單位間的結(jié)算和考核,為對(duì)外報(bào)價(jià)和內(nèi)部分析決策提供支撐[1?2]。企業(yè)的決策層都了解實(shí)施成本核算系統(tǒng)已經(jīng)迫在眉睫。成本分析系統(tǒng)能夠集中處理分散在各處的數(shù)據(jù),然后利用BI技術(shù)從數(shù)據(jù)中挖掘出一些有用信息,這可以讓企業(yè)管理者及時(shí)掌握企業(yè)生產(chǎn)成本的狀況。因此,基于商業(yè)智能的成本核算研究顯得十分必要,不但利于降低企業(yè)成本,對(duì)于提高企業(yè)經(jīng)濟(jì)效益具有重要意義[3]。
1 系統(tǒng)架構(gòu)
生產(chǎn)的成本分析是企業(yè)管理層的一塊重要管理工作,系統(tǒng)開展成本分析是解決問題的最好辦法[3]。本系統(tǒng)主要分為基礎(chǔ)數(shù)據(jù)管理、生產(chǎn)數(shù)據(jù)管理、成本分析、綜合查詢、系統(tǒng)管理和維護(hù)總共5個(gè)模塊?;A(chǔ)數(shù)據(jù)維護(hù)模塊主要管理企業(yè)相關(guān)基礎(chǔ)數(shù)據(jù),包括材料定義管理,產(chǎn)品定義管理,工藝管理,數(shù)據(jù)導(dǎo)入導(dǎo)出四個(gè)功能;生產(chǎn)數(shù)據(jù)管理模塊管理企業(yè)相關(guān)生產(chǎn)數(shù)據(jù),分為生產(chǎn)數(shù)據(jù)采集,分廠內(nèi)部數(shù)據(jù)維護(hù)和生產(chǎn)數(shù)據(jù)審核三方面;綜合查詢模塊提供工時(shí)、費(fèi)用率和月報(bào)表的查詢;成本分析模塊根據(jù)系統(tǒng)中存儲(chǔ)的各類數(shù)據(jù)進(jìn)行分析,包括不同產(chǎn)品報(bào)價(jià)對(duì)比,采購(gòu)材料歷史價(jià)格,產(chǎn)品工時(shí)統(tǒng)計(jì)查詢,生產(chǎn)計(jì)劃執(zhí)行情況,分廠庫(kù)房管理和按產(chǎn)品類型查詢工時(shí);系統(tǒng)維護(hù)管理模塊功能是對(duì)人員訪問和使用的權(quán)限進(jìn)行控制[4]。企業(yè)成本分析系統(tǒng)總體功能模塊劃分如圖1所示。
從商業(yè)智能技術(shù)的角度來(lái)看,總體系統(tǒng)的架構(gòu)可以劃分為6個(gè)層次,分別為前端應(yīng)用、數(shù)據(jù)處理分析(OLAP和DM)、數(shù)據(jù)倉(cāng)庫(kù)(DWH)、數(shù)據(jù)抽取轉(zhuǎn)換加載和數(shù)據(jù)源。如圖2所示。
2 設(shè) 計(jì)
2.1 綜合查詢模塊
綜合查詢模塊提供系統(tǒng)數(shù)據(jù)按條件檢索費(fèi)用率和工藝工序等信息。從系統(tǒng)的角度上看,綜合查詢模塊的流程,如圖3所示。
2.2 工時(shí)核算模塊
(1) 工時(shí)分類匯總,按照格式輸入要匯總的報(bào)表日期范圍,選擇匯總的單位,顯示匯總結(jié)果。累加工時(shí)是在本單位內(nèi)部對(duì)所有組成件的工時(shí)合計(jì),完成工時(shí)=累加工時(shí)×實(shí)收數(shù)量。查詢結(jié)果設(shè)計(jì)如表1所示。
2.3 成本分析模塊
(1) 不同類型產(chǎn)品報(bào)價(jià)的對(duì)比
各基型產(chǎn)品的變種報(bào)價(jià)會(huì)有差異,用一個(gè)table表現(xiàn)出報(bào)價(jià)差異具體出現(xiàn)在哪些方面。
(2) 材料采購(gòu)歷史價(jià)格的對(duì)比
輸入材料編碼后系統(tǒng)對(duì)應(yīng)的調(diào)出原材料名稱、采購(gòu)單價(jià)和成本等信息。將ERP系統(tǒng)中該物料編碼對(duì)應(yīng)的材料在不同時(shí)期的實(shí)際采購(gòu)價(jià)格進(jìn)行導(dǎo)入,可以查詢導(dǎo)出該種材料在不同時(shí)期的實(shí)際采購(gòu)成本對(duì)比表。
(3) 分廠庫(kù)房成本分析
首先把ERP的庫(kù)房數(shù)據(jù)(數(shù)量,圖號(hào)和工時(shí))導(dǎo)入到本系統(tǒng),然后可以隨時(shí)通過軟件查詢各分廠的產(chǎn)品庫(kù)存情況。
2.4 成本分析的數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì)
系統(tǒng)是在關(guān)系數(shù)據(jù)庫(kù)MySQL的基礎(chǔ)上去創(chuàng)建數(shù)據(jù)倉(cāng)庫(kù)的,所有可以說此數(shù)據(jù)倉(cāng)庫(kù)的邏輯模型就是關(guān)系模型[5]。在DW的邏輯模型設(shè)計(jì)這一步,需要產(chǎn)出的方案是對(duì)現(xiàn)在要實(shí)現(xiàn)的主題進(jìn)行定義,然后在DW的元數(shù)據(jù)中把對(duì)應(yīng)的數(shù)據(jù)繼續(xù)載入[6]。DW的架構(gòu)主要有星型和雪花型兩種方式,根據(jù)建設(shè)企業(yè)成本分析系統(tǒng)的項(xiàng)目需求,采用星型架構(gòu)比較符合項(xiàng)目的目標(biāo),數(shù)據(jù)倉(cāng)庫(kù)的星型模型如圖4所示。
2.5 聯(lián)機(jī)分析處理(OLAP)的設(shè)計(jì)
(1) 聯(lián)機(jī)分析處理的架構(gòu)設(shè)計(jì)
從聯(lián)機(jī)分析處理的架構(gòu)設(shè)計(jì)上看,OLAP屬于中央夾層,他從DW提取到數(shù)據(jù)后,有兩種方式:一種是直接流到OLAP層;一種是經(jīng)過一個(gè)存儲(chǔ)器后再流經(jīng)到聯(lián)機(jī)分析處理層。然后聯(lián)機(jī)分析處理應(yīng)用服務(wù)處理好數(shù)據(jù)后,會(huì)給到OLAP前端工具,后者給到Web服務(wù)器進(jìn)行顯示[7]。本系統(tǒng)的OLAP模塊使用的技術(shù)架構(gòu)包括表示層(PL)、維度層(DL)、Star層以及存儲(chǔ)層四層。
(2) 多維數(shù)據(jù)分析的設(shè)計(jì)
首先鉆取去改變數(shù)據(jù)維度的層次,轉(zhuǎn)變數(shù)據(jù)分析的粒度;然后進(jìn)行切塊和切片的設(shè)計(jì),這里關(guān)注的是度量數(shù)據(jù)在剩余維度上的分布情況;最后是數(shù)據(jù)的旋轉(zhuǎn),在數(shù)據(jù)表格把維度的位置進(jìn)行交換,也就是重新部署一下。多維數(shù)據(jù)的分析設(shè)計(jì)從系統(tǒng)角度上看主要是實(shí)現(xiàn)三個(gè)方面的內(nèi)容:一是數(shù)據(jù)的鉆??;二是數(shù)據(jù)的切片和切塊;三是數(shù)據(jù)的旋轉(zhuǎn)[8]。
(3) OLAP的數(shù)據(jù)實(shí)現(xiàn)設(shè)計(jì)
聯(lián)機(jī)分析處理可以分為多維MOLAP、關(guān)系型ROLAP以及混合型HOLAP[9]。HOLAP結(jié)合了前面兩個(gè)類型的技術(shù)特點(diǎn)和優(yōu)勢(shì),在MOLAP立方體匯總存儲(chǔ)高級(jí)別的統(tǒng)計(jì)數(shù)據(jù),在ROLAP中存儲(chǔ)低級(jí)別的統(tǒng)計(jì)數(shù)據(jù)和明細(xì)數(shù)據(jù)。本系統(tǒng)根據(jù)成本系統(tǒng)的需求使用HOLAP。
3 成本預(yù)測(cè)算法設(shè)計(jì)
(1) 一元線性回歸模型設(shè)計(jì)
4 基于商業(yè)智能的成本分析系統(tǒng)實(shí)現(xiàn)
4.1 成本分析系統(tǒng)的實(shí)現(xiàn)
生產(chǎn)企業(yè)的成本分析系統(tǒng)主要界面如圖5所示,這是一個(gè)基于商業(yè)智能的系統(tǒng)。用戶界面負(fù)責(zé)和用戶交互,接收用戶輸入、上傳的數(shù)據(jù)和查詢命令,展示查詢結(jié)果和其他反饋信息。系統(tǒng)配置管理模塊包括用戶、部門、角色、權(quán)限管理,材料、單件、產(chǎn)品、分廠(車間)、工時(shí)定額、小時(shí)費(fèi)用率、工作令號(hào)等基礎(chǔ)數(shù)據(jù)的定義,工藝路線的制定和維護(hù)。業(yè)務(wù)邏輯以各分廠每月上報(bào)的生產(chǎn)數(shù)據(jù)為基礎(chǔ),按照基礎(chǔ)數(shù)據(jù)定義計(jì)算各級(jí)產(chǎn)品和單件成本,計(jì)算對(duì)外報(bào)價(jià),計(jì)算各車間之間互轉(zhuǎn)成本,服務(wù)于內(nèi)部結(jié)算,最后提供成本分析支持決策。
4.1.1 成本分析子系統(tǒng)
(1) 不同類型產(chǎn)品報(bào)價(jià)的對(duì)比:輸入兩產(chǎn)品的編號(hào),點(diǎn)擊對(duì)比按鈕后,頁(yè)面隨即跳轉(zhuǎn)到了結(jié)果頁(yè)面,顯示不同類型的產(chǎn)品報(bào)價(jià)對(duì)比情況。
(2) 采購(gòu)材料歷史價(jià)格:輸入產(chǎn)品圖號(hào)的編號(hào),按照格式選擇兩個(gè)時(shí)間,點(diǎn)擊搜索按鈕后,頁(yè)面隨即跳轉(zhuǎn)到結(jié)果頁(yè)面,顯示材料采購(gòu)價(jià)格的對(duì)比情況。
(3) 產(chǎn)品工時(shí)統(tǒng)計(jì)查詢:輸入單件、總成的編號(hào),點(diǎn)擊搜索按鈕后,頁(yè)面隨即跳轉(zhuǎn)到了結(jié)果頁(yè)面,顯示單件、總成或產(chǎn)品的工時(shí)情況,點(diǎn)擊下方的導(dǎo)出按鈕可以導(dǎo)出查詢到的結(jié)構(gòu)表。
(4) 生成計(jì)劃執(zhí)行情況:選擇分廠的下拉框,然后選擇兩個(gè)時(shí)間點(diǎn),點(diǎn)擊搜索按鈕后,頁(yè)面隨即跳轉(zhuǎn)到了結(jié)果頁(yè)面,顯示生成計(jì)劃與實(shí)際產(chǎn)量的對(duì)比情況。
4.1.2 分廠工時(shí)核算子系統(tǒng)
(1) 工時(shí)分類匯總:首先可以先選擇查詢的方式:一種是按照分廠查詢;一種是按照工作令號(hào)進(jìn)行查詢,接著選擇開始時(shí)間和結(jié)束時(shí)間,點(diǎn)擊對(duì)比按鈕后,頁(yè)面隨即跳轉(zhuǎn)到結(jié)果頁(yè)面。
(2) 加工費(fèi)匯總分析:首先選擇匯總的單位,接著選擇開始時(shí)間和結(jié)束時(shí)間,點(diǎn)擊對(duì)比按鈕后,頁(yè)面隨即跳轉(zhuǎn)到結(jié)果頁(yè)面。
4.2 后臺(tái)輔助功能
在完成了基于商業(yè)智能的成本分析系統(tǒng)的設(shè)計(jì)后,接下來(lái)就是要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)倉(cāng)庫(kù),這個(gè)過程分為四個(gè)階段,分別是選擇一個(gè)高效率容易使用的數(shù)據(jù)倉(cāng)庫(kù)工具,然后根據(jù)企業(yè)的需求和做好的數(shù)據(jù)設(shè)計(jì)確定數(shù)據(jù)倉(cāng)庫(kù)表,最后創(chuàng)建維度和實(shí)際操作。
4.3 聯(lián)機(jī)分析的實(shí)現(xiàn)
使用Pentaho工具實(shí)現(xiàn)OLAP的步驟如下:
(1) 利用Mondrian創(chuàng)建一個(gè)DataSource項(xiàng)目,鏈接4.2節(jié)準(zhǔn)備好的數(shù)據(jù)倉(cāng)庫(kù);
(2) 創(chuàng)建JPivot視圖,數(shù)據(jù)源作為與數(shù)據(jù)庫(kù)的一個(gè)鏈接,在數(shù)據(jù)源中,可以對(duì)數(shù)據(jù)源中設(shè)置好的維度表,事實(shí)表做關(guān)系處理,添加計(jì)算等;
(3) 創(chuàng)建維度相對(duì)簡(jiǎn)單,這里可以按照數(shù)據(jù)倉(cāng)庫(kù)的設(shè)計(jì)構(gòu)建維度以及聯(lián)機(jī)分析處理的多維數(shù)據(jù)集;
(4) 向數(shù)據(jù)倉(cāng)庫(kù)中加載測(cè)試數(shù)據(jù),然后再處理多維數(shù)據(jù)集,最后通過前端分析工具(前端網(wǎng)頁(yè))對(duì)多維數(shù)據(jù)集進(jìn)行展現(xiàn)。
4.4 成本預(yù)測(cè)的實(shí)現(xiàn)
4.4.1 一元線性回歸算法預(yù)測(cè)成本
(1) 一元線性回歸模型算法,相對(duì)簡(jiǎn)單,由于其一元線性回歸直線模型函數(shù)為:[y=ax+b,]只要根據(jù)公式求出其參數(shù)[a]和參數(shù)[b]就可以,從數(shù)學(xué)的角度上看,就是對(duì)輸入矩陣兩個(gè)參數(shù)的累積計(jì)算。
(2) 編碼實(shí)現(xiàn)。算法比較明了,只要按照式(3), 式(4)計(jì)算即可,需要計(jì)算出[x]的累積,[y]的累積,[x?y]的累積,[x]平方的累加,[y]平方的累加,然后綜合計(jì)算即可。用一個(gè)for循環(huán)即可計(jì)算出來(lái),然后接著計(jì)算[a]和[b]的值,輸出結(jié)果畫出預(yù)測(cè)的圖像。
(3) 利用一元線性回歸算法預(yù)測(cè)企業(yè)2015年相關(guān)成本,如圖6所示。
4.4.2 多元回歸算法預(yù)測(cè)企業(yè)利潤(rùn)
(1) 多元回歸模型算法。如式(11)所示,現(xiàn)在只要求這個(gè)線性回歸方程,就可以得出想要的值。
(2) 編碼實(shí)現(xiàn)。首先從輸入的矩陣中獲取[yt[]]為樣本結(jié)果值,[xc[]]為測(cè)試樣本,[xt[][]]為矩陣系數(shù)的轉(zhuǎn)置數(shù)據(jù),[x[][]]為系數(shù)矩陣。這些獲取的過程比較簡(jiǎn)單,只要兩個(gè)for函數(shù)進(jìn)行循環(huán)就可以實(shí)現(xiàn)。
求[XTX,]這里要注意:設(shè)[C=A*B,]則[A]的列數(shù)[A.n]必須和[B]的行數(shù)[B.m]匹配上,也就是要相等,[C]的列數(shù)[=B]的列數(shù),[C]的行數(shù)[=A]的行數(shù),這里[XTX[][]]結(jié)果一定是nTotalMainHead?2方陣。
從數(shù)學(xué)原理上講就是先求得其伴隨矩陣,然后再求得[A]的行列式,就可以得到[A]的逆矩陣。求行列式時(shí)調(diào)用到一個(gè)子函數(shù)MaDet,eterm=MaDet((double*)xtx,nTotal Main Head?2),函數(shù)的返回值就是行列式值,傳過去的值是矩陣的首地址和矩陣的行數(shù)。
求伴隨矩陣,即求[k*k]方陣中元素[A(m,n)]的余子式。也要寫一個(gè)子函數(shù)Creat_M(float*p,int m,int n,int k),入口參數(shù)為[k*k]方陣的第一個(gè)位置,方陣元素[A]的標(biāo)記是[m]和[n,]方陣行數(shù)為第[k]個(gè)。求代數(shù)余子式就是除第[i]行和第[j]列外的所有元素,一起存儲(chǔ)到以temp為第一地址的數(shù)據(jù)里面,這里面又調(diào)用了求行列式的值。
(3) 企業(yè)利潤(rùn)預(yù)測(cè)結(jié)果展現(xiàn)。根據(jù)企業(yè)歷史的利潤(rùn)、建造工時(shí)、加工費(fèi)用、產(chǎn)量,利用多元線性回歸模型預(yù)測(cè)企業(yè)今年的利潤(rùn),如圖7所示。
5 結(jié) 語(yǔ)
本文通過對(duì)生產(chǎn)企業(yè)成本分析系統(tǒng)的研究,利用數(shù)據(jù)倉(cāng)庫(kù)及相關(guān)技術(shù)對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行重新組織和分析,使其成為結(jié)構(gòu)化,可供決策分析的數(shù)據(jù)。利用聯(lián)機(jī)分析OLAP方法,對(duì)這些數(shù)據(jù)進(jìn)行重新展現(xiàn),并且在這個(gè)基礎(chǔ)上利用了回歸分析算法的一元線性回歸模型和多元線性回歸模型進(jìn)行成本利潤(rùn)的預(yù)測(cè),給企業(yè)管理者提供了新的決策信息平臺(tái)。
參考文獻(xiàn)
[1] 趙紅宇.基于DW,OLAP和DM的商業(yè)智能[J].商場(chǎng)現(xiàn)代化,2006(26):52.
[2] 徐羨文,鄭廈君.數(shù)據(jù)挖掘技術(shù)在電子商務(wù)推薦中的應(yīng)用[J].電腦知識(shí)與技術(shù),2011,7(27):6588?6589.
[3] 陳榮鑫,付永鋼,陳維斌.基于Pentaho的商業(yè)智能系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,29(9):2407?2409.
[4] CHEN Y, ZHWNG D F, MILLER P A, et al. Improve data partitioning for building large ROLAP data cubes in parallel [J]. International journal of data warehousing and mining, 2006, 2(1): 1?26.
[5] 王兆紅.企業(yè)商業(yè)智能系統(tǒng)的架構(gòu)及實(shí)施研究[J].中國(guó)管理信息化(綜合版),2010,10(6):15?17.
[6] 滕桂法.商業(yè)智能系統(tǒng)的功能構(gòu)架[J].中國(guó)計(jì)算機(jī)用戶,2003(42):48.
[7] 周海燕,郭建忠,王家耀,等.知識(shí)發(fā)現(xiàn)與數(shù)據(jù)可視化技術(shù)淺析[J].信息工程大學(xué)學(xué)報(bào),2012,3(4):78?80.
[8] 張金力,陳廣伏.最小二乘法在計(jì)量經(jīng)濟(jì)模型中的應(yīng)用[J].沈陽(yáng)航空工業(yè)學(xué)院學(xué)報(bào),2009,16(4):23?26.
[9] 鐘睿.面向WEB的商業(yè)智能中的數(shù)據(jù)挖掘技術(shù)的研究[J].南京農(nóng)專學(xué)報(bào),2011,17(3):25?28.
[10] 陳寧,劉嵐.數(shù)據(jù)倉(cāng)庫(kù)在移動(dòng)通信企業(yè)經(jīng)營(yíng)分析系統(tǒng)中的應(yīng)用[J].現(xiàn)代電子技術(shù),2008,31(14):117?120.