張德奔
(銅陵有色金屬集團(tuán)控股有限公司,安徽 銅陵 244000)
2020 年以來,隨著《十四五規(guī)劃和2035 綱要》的出臺(tái),國(guó)家明確地提出了“加快數(shù)字化發(fā)展 建設(shè)數(shù)字中國(guó)”,持續(xù)地給我國(guó)數(shù)字化經(jīng)濟(jì)提供了支持和指導(dǎo),在此基礎(chǔ)上,至2021 年數(shù)字經(jīng)濟(jì)規(guī)模達(dá)到45 萬(wàn)億元,占國(guó)內(nèi)生產(chǎn)總值比重39.8%,相比10 年前分別提升了309%和84.2%,數(shù)字產(chǎn)業(yè)化為產(chǎn)業(yè)數(shù)字化提供道路,同時(shí)后者也為前者提供推力,數(shù)字化轉(zhuǎn)型已經(jīng)成為企業(yè)的必經(jīng)之路,尤其對(duì)于涵蓋多行業(yè)、多組織且有一定信息化基礎(chǔ)的大型企業(yè),傳統(tǒng)的業(yè)務(wù)信息系統(tǒng)已經(jīng)無法滿足企業(yè)對(duì)業(yè)務(wù)數(shù)據(jù)處理、分析、管理決策支持的需求[1],具體表現(xiàn)有:
1.數(shù)據(jù)量大、種類多,但是數(shù)據(jù)質(zhì)量卻不高,難以察覺發(fā)現(xiàn)無效或噪聲數(shù)據(jù),使得管理層難以準(zhǔn)確地把握企業(yè)精確狀態(tài),從而某些管理或決策更依賴直覺或個(gè)人經(jīng)驗(yàn)。
2.各業(yè)務(wù)類型、各分子公司信息系統(tǒng)形成的信息孤島,各系統(tǒng)之間的數(shù)據(jù)、業(yè)務(wù)流轉(zhuǎn)、交互依靠人工手段處理,增加人力成本,且影響數(shù)據(jù)的時(shí)效性。
3.信息化管理體系亟待提升,數(shù)據(jù)管理體系缺乏,各組織、各系統(tǒng)數(shù)據(jù)之間沒有對(duì)應(yīng)的標(biāo)準(zhǔn)化規(guī)范,數(shù)據(jù)格式、含義不兼容;業(yè)務(wù)流程體系的不通暢,流程節(jié)點(diǎn)繁多,分工劃分不合理,都影響著企業(yè)的效率和成本。
以上問題的本質(zhì)是大型企業(yè)在信息化、數(shù)字化發(fā)展中沒有進(jìn)行的統(tǒng)一的數(shù)據(jù)管理,沒有規(guī)劃、組織企業(yè)的大數(shù)據(jù),針對(duì)此問題,提煉企業(yè)的數(shù)據(jù)資產(chǎn),涵蓋各業(yè)務(wù)模塊、各公司組織數(shù)據(jù)信息,打通信息系統(tǒng)之間的壁壘,并提供切合需求的、高性能數(shù)據(jù)分析與存儲(chǔ),配合數(shù)據(jù)挖掘提煉數(shù)據(jù)價(jià)值,輔助管理層的企業(yè)決策,達(dá)到降本增效,而數(shù)據(jù)倉(cāng)庫(kù)就是實(shí)現(xiàn)這一目標(biāo)的利器,它是一個(gè)面向主題的、集成的、穩(wěn)定的、包含歷史數(shù)據(jù)的數(shù)據(jù)集合,它用以支持經(jīng)營(yíng)管理中的決策制定過程。從它的定義就可以看出它與數(shù)據(jù)庫(kù)的區(qū)別,數(shù)據(jù)倉(cāng)庫(kù)是以描述、分析事務(wù)為主,例如可以反映隨時(shí)間某事物的變化趨勢(shì),而數(shù)據(jù)庫(kù)一般是以處理、記錄事務(wù)為主。所以數(shù)據(jù)倉(cāng)庫(kù)的設(shè)計(jì)和數(shù)據(jù)獲取有其獨(dú)特特征。[2]
設(shè)計(jì)過程可以分為兩個(gè)階段:第一步是調(diào)研分析階段,需要對(duì)實(shí)際業(yè)務(wù)開展流程和源業(yè)務(wù)信息化系統(tǒng)運(yùn)行方式進(jìn)行探索研究,獲取相關(guān)業(yè)務(wù)流程及源系統(tǒng)處理方式、數(shù)據(jù)規(guī)模等信息,并在此基礎(chǔ)上,當(dāng)前業(yè)務(wù)實(shí)際情況與用戶需求轉(zhuǎn)化為邏輯模型。第二步是物理建模設(shè)計(jì)和實(shí)現(xiàn),包括業(yè)務(wù)流程的選擇,即確認(rèn)可以產(chǎn)生數(shù)據(jù)分析目標(biāo)的業(yè)務(wù)流程,這是建模設(shè)計(jì)的基礎(chǔ)和先決條件,例如采購(gòu)業(yè)務(wù)、生產(chǎn)流程關(guān)系著公司生產(chǎn)經(jīng)營(yíng)的原料成本,庫(kù)存的進(jìn)出涉及公司的存貨金額等,在完成業(yè)務(wù)流程選擇后就要進(jìn)行事實(shí)和維度的建模設(shè)計(jì),這是數(shù)據(jù)倉(cāng)庫(kù)建模的主要也是核心步驟。
這個(gè)過程需要對(duì)實(shí)際業(yè)務(wù)和源業(yè)務(wù)系統(tǒng)的調(diào)研探訪,獲取相關(guān)業(yè)務(wù)流程及源系統(tǒng)處理方式、數(shù)據(jù)規(guī)模等信息,在此基礎(chǔ)上,需要業(yè)務(wù)人員和技術(shù)人員深度研討,規(guī)劃出不同數(shù)據(jù)分析主題域。本文以有色金屬銷售業(yè)務(wù)為例進(jìn)行討論,銷售業(yè)務(wù)的由發(fā)起至收貨付款結(jié)束共涉及的部分系統(tǒng)及數(shù)據(jù)內(nèi)容如下:ERP 系統(tǒng)(訂單信息、產(chǎn)品庫(kù)存信息、發(fā)運(yùn)狀態(tài)等)、財(cái)務(wù)共享(收款明細(xì)、客戶信息、審批狀態(tài)等)、質(zhì)量計(jì)量系統(tǒng)(有色金屬質(zhì)量、品味、計(jì)量方式等)。
深度挖掘業(yè)務(wù)需求之后,最終規(guī)劃設(shè)計(jì)各主題區(qū)域分析。銷售主題區(qū)域包括:客戶余額分析、產(chǎn)品銷售分析、退貨分析、收入成本分析等。
業(yè)務(wù)流程的選擇的意義在于確認(rèn)業(yè)務(wù)活動(dòng)中的產(chǎn)生的有價(jià)值信息如何保存分析及處理這些信息時(shí)所需要遵守的業(yè)務(wù)規(guī)則,事實(shí)和維度的建模是確認(rèn)業(yè)務(wù)下的事實(shí)表數(shù)據(jù)顆粒度的粗細(xì),例如某類產(chǎn)品硫酸的生成過程、成本原料、銷售,也可以是98 硫酸或925 硫酸的生產(chǎn)銷售數(shù)據(jù),這兩個(gè)就維度粒度粗細(xì)不同,越是明細(xì)、具體的數(shù)據(jù)需要的運(yùn)算量更高和空間更大,這就需要在成本和需求之間找到一個(gè)合適的平衡點(diǎn)。
1.2.1 事實(shí)表設(shè)計(jì)模型
在數(shù)據(jù)倉(cāng)庫(kù)中,我們把事務(wù)的某一指標(biāo)數(shù)值稱為度量值,如收入、成本等;而指標(biāo)的屬性稱為維度,如年份、公司部門等,同一類型的維度可能存在不同的粗細(xì)大小稱為粒度,如時(shí)間維度可以分為年份、月份不同粒度,不同粒度的劃分由最終分析的需求而定。這樣我們把一個(gè)帶有維度的某個(gè)指標(biāo)的度量值表叫做事實(shí)表(fact),把某一屬性不同粒度的維度集合為維度表。根據(jù)需求不同,數(shù)據(jù)倉(cāng)庫(kù)中的事實(shí)表可分為事務(wù)事實(shí)表(transaction)和快照(snapshot),前者用來描述原子級(jí)的事務(wù)活動(dòng),后者用來描述事務(wù)按周期的總結(jié)或是持續(xù)累計(jì)變化,在事務(wù)事實(shí)表中,描述源系統(tǒng)發(fā)生的每一單獨(dú)事務(wù),以某銅板帶銷售業(yè)務(wù)中客戶訂購(gòu)單數(shù)據(jù)為例,包括訂購(gòu)日期、訂購(gòu)產(chǎn)品、編碼、數(shù)量、庫(kù)存數(shù)量、訂單行狀態(tài)等。
事務(wù)表包含多個(gè)維度外鍵的表,多個(gè)維度表示此事務(wù)發(fā)生的時(shí)間、地點(diǎn)等信息,同時(shí)事務(wù)表內(nèi)部也可能有一些退化的維度列。一般來說這種事實(shí)表是不會(huì)更新刪除的,它會(huì)隨著OLTP 系統(tǒng)里業(yè)務(wù)的增加不斷產(chǎn)生新的記錄。而在快照表一般可以分為周期型快照和累計(jì)型快照,前者用以描述一個(gè)特定周期內(nèi)(一天、一個(gè)月、半年或一年)某一類業(yè)務(wù)數(shù)據(jù)的其他各維度的匯總,例如企業(yè)的每個(gè)月的資產(chǎn)負(fù)債表、利潤(rùn)表、主營(yíng)業(yè)務(wù)收支表(圖)等,它們的共同點(diǎn)是有規(guī)律周期下的統(tǒng)計(jì)意義和需求,每個(gè)周期都會(huì)產(chǎn)生快照,即使沒有任何事務(wù)發(fā)生也同樣會(huì)產(chǎn)生,而后者一般用來描述單個(gè)獨(dú)特業(yè)務(wù)從開始到結(jié)束的全過程,這種業(yè)務(wù)可能沒有固定的節(jié)點(diǎn)和規(guī)律,例如一名員工從入職到離職的工作信息,員工入職便會(huì)在事實(shí)表里插入信息,包含員工的職位、職級(jí)、崗位、組織的各種信息和該狀態(tài)下的起始日期,在該員工崗位調(diào)動(dòng)后可能職位、組織都會(huì)發(fā)生變化,則會(huì)修改上一條信息的結(jié)束日期,并重新生成一條信息的工作信息及起始時(shí)間,直至該員工離職在系統(tǒng)中完成出庫(kù),這個(gè)事實(shí)表就是上面所說的累計(jì)快照,它在節(jié)點(diǎn)流程事件發(fā)生時(shí)是會(huì)有更新操作的,整個(gè)表的稀疏都不像周期快照那么規(guī)律的稠密,而是取決于業(yè)務(wù)事件的發(fā)生頻率。[3]
1.2.2 維度設(shè)計(jì)建模
數(shù)據(jù)倉(cāng)庫(kù)的事實(shí)表-維度一般是星形結(jié)構(gòu)和雪花型結(jié)構(gòu)。其中星型結(jié)構(gòu)簡(jiǎn)單說就是一張事實(shí)表里包含多個(gè)維度表的外鍵,從而共同決定了各維度下的事實(shí)度量值。
二者的區(qū)別在于雪花結(jié)構(gòu)是星型結(jié)構(gòu)的拓展,即某一維度也是一個(gè)星形結(jié)構(gòu),簡(jiǎn)單來說星形結(jié)構(gòu)會(huì)更多產(chǎn)生冗余數(shù)據(jù),查詢時(shí)更少的表連接也會(huì)提高性能,而雪花結(jié)構(gòu)的數(shù)據(jù)空間更少,并且對(duì)層次邏輯分析有較高需求的場(chǎng)景更為適合。
在數(shù)據(jù)倉(cāng)庫(kù)中,維度表的更新策略比事實(shí)表更為重要,也更加復(fù)雜,對(duì)不同業(yè)務(wù)含義背景下會(huì)有不同的維度更新策略:
1.覆蓋:即新的維度信息數(shù)據(jù)直接覆蓋舊的,這種策略簡(jiǎn)單高效,但是無法重現(xiàn)歷史業(yè)務(wù)信息,對(duì)需要?dú)v史分析的業(yè)務(wù)是災(zāi)難性的,一般對(duì)歷史維度追溯需求很小或沒有時(shí)采用。
2.增加新行:在維度值有修改發(fā)生時(shí)新增維度行,某維度列變更,新增后生成有效期的時(shí)間戳或有效性flag,形成歷史拉鏈表,這里需要注意可能形成拉鏈交叉或斷鏈。這種策略功能強(qiáng)大,但可能會(huì)影響系統(tǒng)性能。
3.增加新列:維度某列變化后增加列記錄歷史列數(shù)據(jù),可能會(huì)使維表變得很寬、很稀疏,但是某些特定場(chǎng)景需要展現(xiàn)前后維度值對(duì)比時(shí)性能比第二種方法好。
4.增加微型維:對(duì)方法2 的改進(jìn),把頻繁變化的維值合并到一個(gè)范圍,如公司部門人員統(tǒng)計(jì)信息,在分析管理需求滿足條件下可以新建微型維,把員工年齡合并到20-30 歲,30-40 歲類似區(qū)間內(nèi),統(tǒng)計(jì)分析公司員工可以展現(xiàn)為各部門、各職務(wù)級(jí)別等年齡區(qū)間人數(shù)而不是統(tǒng)計(jì)具體年齡的人數(shù),這樣可減少維度發(fā)生變化的數(shù)量以提升性能,缺點(diǎn)是區(qū)間范圍有變化需求時(shí)則會(huì)有較高的處理成本。
數(shù)倉(cāng)中數(shù)據(jù)的獲取,這個(gè)過程稱為ETL(Extract-Transform-Load),作用主要是整合數(shù)據(jù)來源的維度、清除與分析需求無關(guān)的無用數(shù)據(jù)、按照統(tǒng)一的維度轉(zhuǎn)換事實(shí)數(shù)據(jù)、根據(jù)分析和性能的需求對(duì)數(shù)據(jù)進(jìn)行計(jì)算聚合。數(shù)據(jù)倉(cāng)庫(kù)中數(shù)據(jù)來源一般為企業(yè)內(nèi)部各個(gè)業(yè)務(wù)系統(tǒng)數(shù)據(jù)或輔以部分企業(yè)外部數(shù)據(jù),這個(gè)流程一般按先后劃分為四個(gè)數(shù)據(jù)層:STAGE(初始緩沖層),ODS(數(shù)據(jù)操作層),DW(數(shù)據(jù)倉(cāng)庫(kù)層),ADS(表示應(yīng)用層)。具體來說,STAGE 層通常用來獲取節(jié)點(diǎn)業(yè)務(wù)系統(tǒng)的實(shí)際靜態(tài)數(shù)據(jù),一般來說生命周期可以只限于ETL 當(dāng)次處理過程;ODS 層用來存放上一層處理后的數(shù)據(jù),在這里,數(shù)據(jù)類型與業(yè)務(wù)系統(tǒng)高度類似,但是其定義、維度、質(zhì)量是經(jīng)過整理轉(zhuǎn)換統(tǒng)一的,數(shù)據(jù)的含義是明確且唯一的,是整個(gè)數(shù)據(jù)倉(cāng)庫(kù)的原子基礎(chǔ)數(shù)據(jù),一般情況下會(huì)長(zhǎng)期保存;DW 層可以明細(xì)分為DWM(數(shù)倉(cāng)中間層)和DWS(數(shù)倉(cāng)服務(wù)層),前者是對(duì)ODS 層的數(shù)據(jù)進(jìn)行少量的聚合統(tǒng)計(jì)操作,組織成新的結(jié)果表和中間表,后者是以面向主題為目的,對(duì)ODS 和DWM 數(shù)據(jù)進(jìn)行高度聚合加工,形成關(guān)于各業(yè)務(wù)的獨(dú)立完整信息和知識(shí),實(shí)際應(yīng)用中,DWS 提供用戶需要的80%數(shù)據(jù),剩余的20%絕大部分可以由DWM提供,這也提高了用戶層面的性能感觀。ADS 層則是為最終面向各個(gè)不同類型的用戶(數(shù)據(jù)分析師、業(yè)務(wù)部門、企業(yè)決策者)提供定制化服務(wù),滿足對(duì)數(shù)據(jù)內(nèi)容和格式等的不同需求。
大型綜合性企業(yè)由于涉及的行業(yè)多種多樣,各公司業(yè)務(wù)差異可能非常大,因此在數(shù)據(jù)倉(cāng)庫(kù)的設(shè)計(jì)部署時(shí)有非常大的差異,如:
1.制造行業(yè)的公司供應(yīng)鏈、財(cái)務(wù)數(shù)據(jù)均以物料的事務(wù)為原子級(jí)別,而房地產(chǎn)、信息服務(wù)行業(yè)的公司則是以工程項(xiàng)目核算。
2.例如合并報(bào)表等財(cái)務(wù)系統(tǒng)是以報(bào)表實(shí)體來劃分公司組織,會(huì)出現(xiàn)與ERP 等業(yè)務(wù)系統(tǒng)的劃分方式不一致的情況,難以進(jìn)行數(shù)據(jù)對(duì)接統(tǒng)一。
3.類似產(chǎn)成品在不同公司的生產(chǎn)工藝可能存在很大差異,成本、績(jī)效的分析模型無法兼顧所有公司。
對(duì)以上困難問題的深度分析后,也制定出不同的應(yīng)對(duì)策略,對(duì)于不同行業(yè)數(shù)據(jù)的融合問題采用抽象化,建立虛擬維度,工程項(xiàng)目型業(yè)務(wù)也可以進(jìn)行虛擬化產(chǎn)品采購(gòu)/銷售/入庫(kù)等流程,對(duì)不同公司管理生產(chǎn)方法、不同問題采用參數(shù)化模型和ETL 過程,根據(jù)不同實(shí)際業(yè)務(wù)情景采取不同的定制化預(yù)處理,再進(jìn)行數(shù)據(jù)的融合,而作為用戶或前端應(yīng)用則不會(huì)感受到任何區(qū)別。
數(shù)據(jù)倉(cāng)庫(kù)由于其數(shù)據(jù)模型結(jié)構(gòu)有著面向主題、保存歷史快照等特點(diǎn),更具有分析預(yù)測(cè)優(yōu)勢(shì)。以有色加金屬行業(yè)的銅產(chǎn)品為例,一般來說春秋季節(jié)為消費(fèi)市場(chǎng)高峰,這兩季的銅銷售額對(duì)全年銷售額有較大影響,在系統(tǒng)建立預(yù)測(cè)模型,根據(jù)旺季和淡季的銷售額、成本費(fèi)用等指標(biāo)的對(duì)比,再綜合考慮同比數(shù)據(jù)等因素可以對(duì)當(dāng)年銷售收入預(yù)算完成情況做出判斷和預(yù)警,以供相關(guān)業(yè)務(wù)主管部門參考。
在企業(yè)業(yè)務(wù)數(shù)據(jù)量達(dá)到一定量級(jí)后,在分析型數(shù)據(jù)檢索方面數(shù)據(jù)倉(cāng)庫(kù)有非常大的優(yōu)勢(shì),如某一供應(yīng)商的兩年內(nèi)的單一原料供應(yīng)價(jià)格波動(dòng),如果在業(yè)務(wù)系統(tǒng)檢索,需要從采購(gòu)單據(jù)逐個(gè)原料采購(gòu)再關(guān)聯(lián)總賬付款信息,而數(shù)據(jù)倉(cāng)庫(kù)可以在采購(gòu)主題的供應(yīng)商分析里建立采購(gòu)金額、采購(gòu)量等指標(biāo),在ETL 過程完成大部分的預(yù)計(jì)算,前端只需進(jìn)行簡(jiǎn)單的聚合分類即可得到結(jié)果。
數(shù)據(jù)倉(cāng)庫(kù)作為大數(shù)據(jù)分析的基礎(chǔ),其架構(gòu)的ADS層可以輕松提供數(shù)據(jù)挖掘和可視化工具的結(jié)構(gòu),進(jìn)一步提升企業(yè)數(shù)據(jù)的價(jià)值和應(yīng)用效果,更好地輔助企業(yè)管理層完成戰(zhàn)略決策。
本文介紹了大型企業(yè)在信息系統(tǒng)多、數(shù)據(jù)量大的背景下建立數(shù)據(jù)倉(cāng)庫(kù)的必要性,詳細(xì)討論了數(shù)據(jù)倉(cāng)庫(kù)建模設(shè)計(jì)和架構(gòu)設(shè)計(jì)的相關(guān)技術(shù),提出大型企業(yè)背景下異構(gòu)數(shù)據(jù)融合的部分困難和解決方法,最后結(jié)合相關(guān)實(shí)踐分析,闡述了建立數(shù)據(jù)倉(cāng)庫(kù)給企業(yè)帶來的收益。