林志燦
(閩南理工學(xué)院 實(shí)踐教學(xué)中心,福建 石獅 362700)
泉州太平洋集裝箱碼頭有限公司所經(jīng)營(yíng)的石湖港區(qū)為國(guó)家一類(lèi)口岸,主營(yíng)集裝箱業(yè)務(wù),兼營(yíng)以荒料石為主的散雜貨業(yè)務(wù)(含保稅倉(cāng)儲(chǔ)業(yè)務(wù)).截至當(dāng)前,國(guó)內(nèi)外諸多知名集裝箱公司已在石湖港區(qū)開(kāi)辟了20多條集裝箱航線(xiàn),航線(xiàn)輻射國(guó)內(nèi)各主要港口.石湖港區(qū)已然發(fā)展成泉州港內(nèi)貿(mào)集裝箱樞紐港和東南亞地區(qū)最大的石材交易市場(chǎng).[1]
目前,該公司的數(shù)據(jù)分析利用獨(dú)立的業(yè)務(wù)數(shù)據(jù)進(jìn)行提取分析,無(wú)法靈活的實(shí)現(xiàn)綜合性數(shù)據(jù)關(guān)聯(lián)分析.若需對(duì)作業(yè)成本、收入情況、作業(yè)量及效率進(jìn)行分析,就要建立一個(gè)適合綜合分析、便于擴(kuò)展、符合該公司業(yè)務(wù)情況的統(tǒng)一數(shù)據(jù)模型.
基于以上因素,提出泉州太平洋集裝箱碼頭數(shù)據(jù)倉(cāng)庫(kù)項(xiàng)目[2],本文主要研究在數(shù)據(jù)倉(cāng)庫(kù)建設(shè)的初期,設(shè)計(jì)生產(chǎn)操作數(shù)據(jù)的數(shù)據(jù)倉(cāng)庫(kù).
首先,分析泉州太平洋集裝箱碼頭業(yè)務(wù)需求,碼頭生產(chǎn)操作系統(tǒng)(TOS)中數(shù)據(jù)的邏輯關(guān)系、吞吐量相關(guān)的數(shù)據(jù)來(lái)源,選擇數(shù)據(jù)建模工具建立吞吐量的邏輯模型.
其次,根據(jù)泉州太平洋集裝箱碼頭業(yè)務(wù)系統(tǒng)的特點(diǎn),嘗試以MS SQLSERVER2008作為目標(biāo)數(shù)據(jù)庫(kù)存儲(chǔ)平臺(tái)完成物理設(shè)計(jì).
船舶公司與碼頭是關(guān)系最為密切的對(duì)象之一.降低運(yùn)行成本、提高效率是公司亟待解決的問(wèn)題,操作部將投入大量精力進(jìn)行降低成本與提高效率的研發(fā),期望通過(guò)數(shù)據(jù)倉(cāng)庫(kù)的建立為后期的生產(chǎn)研發(fā)做準(zhǔn)備.
在公司內(nèi)部生產(chǎn)研發(fā)、對(duì)外部單位提供數(shù)據(jù),報(bào)表是最直觀(guān)和便捷的展示.所以各部門(mén)提出了各自的報(bào)表需求,抽取部分如表1.
表1 報(bào)表分類(lèi)舉例
優(yōu)秀的架構(gòu)可以更好的實(shí)現(xiàn)業(yè)務(wù)需求,能提供更優(yōu)越的服務(wù)性能,架構(gòu)也決定了項(xiàng)目的靈活性與開(kāi)發(fā)成本.[3]數(shù)據(jù)倉(cāng)庫(kù)的主要工作是從不同的數(shù)據(jù)源中抽取數(shù)據(jù),通過(guò)清洗、校對(duì),再導(dǎo)入到數(shù)據(jù)倉(cāng)庫(kù),最終以不同形式展示給用戶(hù).
微軟公司的Microsoft SQL Server 2008為數(shù)據(jù)倉(cāng)庫(kù)的建立提供了一個(gè)快捷、完整的解決方案,其中為用戶(hù)提供了可構(gòu)建典型與創(chuàng)新的分析應(yīng)用程序所需的各種工具、功能和特性.
SQL Server 2008的RDBMS一般為中小企業(yè)數(shù)據(jù)倉(cāng)庫(kù)的首選存儲(chǔ)平臺(tái),它可以以鏈接數(shù)據(jù)庫(kù)的方式訪(fǎng)問(wèn)其他數(shù)據(jù)源.
SQL Server 2008 Reporting Service(SSRS)包含的報(bào)表設(shè)計(jì)器提供了一個(gè)可視SSAS(SQL Server 2008 Analysis Services)多維數(shù)據(jù)集查詢(xún)?cè)O(shè)計(jì)器[4],減少了手動(dòng)編寫(xiě)多維數(shù)據(jù)查詢(xún)的需求,便于快速創(chuàng)建報(bào)表.
SSAS除了提供存儲(chǔ)和查詢(xún)OLAP多維數(shù)據(jù)集數(shù)據(jù)的機(jī)制,它還提供了OLAP多維數(shù)據(jù)集供開(kāi)發(fā)人員進(jìn)行開(kāi)發(fā)和管理.
當(dāng)源數(shù)據(jù)經(jīng)過(guò)抽取、轉(zhuǎn)換并裝載到數(shù)據(jù)倉(cāng)庫(kù)后,就可以通過(guò)多種方式來(lái)呈現(xiàn)數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù).SSAS可以為數(shù)據(jù)倉(cāng)庫(kù)建立一系列的多維數(shù)據(jù)集(CUBE),多維數(shù)據(jù)集包含一組通常由數(shù)據(jù)倉(cāng)庫(kù)的子集構(gòu)成的、并組織和匯總到由一組維度和度量值定義的多維結(jié)構(gòu)中的數(shù)據(jù).微軟公司的商務(wù)智能解決方案符合該公司項(xiàng)目的需求,數(shù)據(jù)倉(cāng)庫(kù)項(xiàng)目架構(gòu)如圖1所示.
圖1 數(shù)據(jù)倉(cāng)庫(kù)項(xiàng)目架構(gòu)圖
統(tǒng)一數(shù)據(jù)即對(duì)元數(shù)據(jù)進(jìn)行管理,元數(shù)據(jù)數(shù)據(jù)庫(kù)應(yīng)用和信息處理中用于定義、關(guān)聯(lián)和管理數(shù)據(jù).元數(shù)據(jù)在數(shù)據(jù)倉(cāng)庫(kù)的設(shè)計(jì)、開(kāi)發(fā)和運(yùn)作階段至關(guān)重要,尤其在數(shù)據(jù)獲取、轉(zhuǎn)換和存取方面[5].
只有統(tǒng)一了對(duì)數(shù)據(jù)的定義,才能對(duì)企業(yè)內(nèi)的不同應(yīng)用系統(tǒng)進(jìn)行集成.建立中央數(shù)據(jù)庫(kù)存儲(chǔ)元數(shù)據(jù),若業(yè)務(wù)發(fā)生變更,只需修改元數(shù)據(jù),公司內(nèi)部各應(yīng)用系統(tǒng)間的交互便可通過(guò)中央數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一轉(zhuǎn)換.然而,此方案需投入大量的精力和人員,與前述所提的減少成本相悖而馳.當(dāng)前期望是,統(tǒng)一各系統(tǒng)間的數(shù)據(jù)定義,形成電子文檔進(jìn)行存檔,供公司內(nèi)部進(jìn)行查閱.
本項(xiàng)目其中一個(gè)目標(biāo)是對(duì)碼頭生產(chǎn)操作系統(tǒng)(TOS)主要數(shù)據(jù)表結(jié)構(gòu)進(jìn)行整理,形成電子文檔,供內(nèi)部IT人員參考,在業(yè)務(wù)崗位或相關(guān)單位有臨時(shí)數(shù)據(jù)要提取時(shí),能快速準(zhǔn)確的提供.鑒于公司IT部有員工對(duì)數(shù)據(jù)庫(kù)的主要結(jié)構(gòu)比較了解,對(duì)TOS系統(tǒng)也比較熟悉,在他們的幫助下,形成了比較完整的生產(chǎn)系統(tǒng)主要表結(jié)構(gòu)信息.具體的表結(jié)在此不再詳細(xì)描述,形成的文檔格式如圖2所示.
圖2 表結(jié)構(gòu)范例
其中有16張表與吞吐量有關(guān),此處僅給出表名以供數(shù)據(jù)倉(cāng)庫(kù)存儲(chǔ)時(shí)對(duì)應(yīng),具體如表2所示.
表2 源系統(tǒng)吞吐量相關(guān)表結(jié)構(gòu)
通過(guò)將表結(jié)構(gòu)信息整理出來(lái),從源數(shù)據(jù)中抽取哪些數(shù)據(jù)就一目了然,應(yīng)經(jīng)過(guò)何種轉(zhuǎn)換存儲(chǔ)到數(shù)據(jù)倉(cāng)庫(kù)中.
不同部門(mén)間統(tǒng)計(jì)數(shù)據(jù)的方式存在迥異,例如吞吐量,可按自然日(24∶00截止)統(tǒng)計(jì),也可按18點(diǎn)截止統(tǒng)計(jì)(操作部);吞吐量既可包含輔助作業(yè)量也可不包含輔助作業(yè)量.所以,很有必要進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化工作,這也是數(shù)據(jù)倉(cāng)庫(kù)建立的前期工作之一.
在吞吐量數(shù)據(jù)建立之前,首先要明確以下基礎(chǔ)數(shù)據(jù)的定義.
自然箱量:?jiǎn)挝籙NIT,1條作業(yè)指令即對(duì)應(yīng)1個(gè)集裝箱裝船操作,也即為1UNIT.
標(biāo)準(zhǔn)箱量:?jiǎn)挝籘EU,根據(jù)作業(yè)指令對(duì)應(yīng)的集裝箱尺寸折算為標(biāo)準(zhǔn)TEU,折算規(guī)則為:1個(gè)20英尺的集裝箱統(tǒng)計(jì)為1TEU,1個(gè)40英尺的集裝箱統(tǒng)計(jì)為2TEU,1個(gè)45英尺的集裝箱統(tǒng)計(jì)為2.25TEU.
吞吐量統(tǒng)計(jì)時(shí)間截點(diǎn):按照船舶的實(shí)際離泊時(shí)間來(lái)統(tǒng)計(jì),時(shí)間點(diǎn)是18∶00,月度數(shù)據(jù)的統(tǒng)計(jì)時(shí)間是上月最后一天的18∶00(不含18∶00)到當(dāng)月最后一天的18∶00(含18∶00);
貨物皮重:在統(tǒng)計(jì)時(shí)間范圍內(nèi)的船期的裝船作業(yè)箱皮重+卸船作業(yè)箱皮重.
貨物凈重:在統(tǒng)計(jì)時(shí)間范圍內(nèi)的裝船作業(yè)貨重+卸船作業(yè)貨重.
倒箱:在裝船作業(yè)指令中,箱子的進(jìn)港類(lèi)型為倒箱(R)的指令,即為了裝某個(gè)箱子到船上或從船上卸某個(gè)箱子時(shí),需要移動(dòng)其他集裝箱而進(jìn)行的操作.
裝銷(xiāo)子箱:是指在裝船作業(yè)時(shí),橋吊作業(yè)的裝銷(xiāo)子箱數(shù)量.裝銷(xiāo)子箱作業(yè)1次對(duì)應(yīng)橋吊吊具操作1次,裝1個(gè)銷(xiāo)子箱一次即計(jì)為1UNIT.折算標(biāo)準(zhǔn)將銷(xiāo)子箱作業(yè)自然量折算為標(biāo)準(zhǔn)箱量的規(guī)則為1UNIT銷(xiāo)子箱折算為1UNIT20英尺普通集裝箱,即折算為1TEU;折算重量為2 300 kg.
卸銷(xiāo)子箱:是指在卸船作業(yè)時(shí),橋吊作業(yè)的卸銷(xiāo)子箱數(shù)量.卸銷(xiāo)子箱作業(yè)1次對(duì)應(yīng)橋吊吊具操作1次,卸1個(gè)銷(xiāo)子箱一次即計(jì)為1UNIT.折算標(biāo)準(zhǔn)將銷(xiāo)子箱作業(yè)自然量折算為標(biāo)準(zhǔn)箱量的規(guī)則為1UNIT銷(xiāo)子箱折算為1UNIT20英尺普通集裝箱,即折算為1TEU;折算重量為2 300 kg.
開(kāi)艙蓋板:指在裝卸船作業(yè)時(shí),橋吊作業(yè)的開(kāi)艙蓋板數(shù)量;1塊艙蓋板開(kāi)1次即計(jì)為1UNIT;折算標(biāo)準(zhǔn)將艙蓋板作業(yè)自然量折算為標(biāo)準(zhǔn)箱規(guī)則為:1UNIT艙蓋板折算為1UNIT 40英尺普通集裝箱,即折算為2 TEU;折算重量為4 000 kg.
關(guān)艙蓋板:指在裝卸船作業(yè)時(shí),橋吊作業(yè)的關(guān)艙蓋板數(shù)量;1塊艙蓋板關(guān)1次即計(jì)為1 UNIT;折算標(biāo)準(zhǔn)將艙蓋板作業(yè)自然量折算為標(biāo)準(zhǔn)箱規(guī)則為1 UNIT艙蓋板折算為1 UNIT 40英尺普通集裝箱,即折算為2 TEU;折算重量為4 000 kg.
集裝箱吞吐量:在統(tǒng)計(jì)時(shí)間范圍內(nèi)船期的裝船集裝箱作業(yè)量+卸船集裝箱作業(yè)量.
輔助作業(yè)吞吐量:在統(tǒng)計(jì)時(shí)間范圍內(nèi)的船期,進(jìn)行倒箱+裝銷(xiāo)子箱+卸銷(xiāo)子箱+開(kāi)艙蓋板+關(guān)艙蓋板的作業(yè)量.
明確有關(guān)吞吐量的各種基礎(chǔ)數(shù)據(jù)的定義后,就能對(duì)各業(yè)務(wù)部門(mén)提供一致的度量值以供分析,不必再為不同部門(mén)專(zhuān)門(mén)定制不同的統(tǒng)計(jì)規(guī)則或單位,有利于各部門(mén)溝通.
數(shù)據(jù)倉(cāng)庫(kù)建立的目標(biāo)之一是從原系統(tǒng)中抓取數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)倉(cāng)庫(kù)中.項(xiàng)目采用SQL Server 2008作為數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)的存儲(chǔ)平臺(tái),在數(shù)據(jù)倉(cāng)庫(kù)中建立了對(duì)應(yīng)源數(shù)據(jù)中的16張表結(jié)構(gòu).
3.4.1 數(shù)據(jù)倉(cāng)庫(kù)表結(jié)構(gòu)
16張表的數(shù)據(jù)經(jīng)過(guò)了加工和整理,除了對(duì)歷史數(shù)據(jù)進(jìn)行修正,更重要的是,在新的表結(jié)構(gòu)中增加了冗余字段,為的是更方便的從數(shù)據(jù)倉(cāng)庫(kù)中提取所需數(shù)據(jù).新的表結(jié)構(gòu)如圖2,顯然,16張表之間沒(méi)有外鍵關(guān)聯(lián),但多于100行記錄的表都有主鍵.鑒于數(shù)據(jù)裝載的速度,我們?nèi)∠送怄I,數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)來(lái)源于事務(wù)型的TOS系統(tǒng),存儲(chǔ)到數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)只提供查詢(xún)和分析,并不會(huì)存在事務(wù)型數(shù)據(jù)庫(kù)中的數(shù)據(jù)不完整.
3.4.2 目標(biāo)數(shù)據(jù)與源數(shù)據(jù)的對(duì)應(yīng)關(guān)系
在圖3中的16張表對(duì)應(yīng)源數(shù)據(jù)中的16張數(shù)據(jù)表,但是在數(shù)據(jù)倉(cāng)庫(kù)中存儲(chǔ)的表結(jié)構(gòu)中包含了更多的冗余信息,方便后期對(duì)數(shù)據(jù)的查詢(xún),減少表關(guān)聯(lián),同時(shí)也剔除了一些無(wú)用的字段,為數(shù)據(jù)表“瘦身”.
圖3 數(shù)據(jù)倉(cāng)庫(kù)表結(jié)構(gòu)
本文通過(guò)對(duì)泉州太平洋集裝箱碼頭業(yè)務(wù)的整理和分析,按照業(yè)務(wù)實(shí)際需求建立起數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)結(jié)構(gòu),為項(xiàng)目的實(shí)施打下堅(jiān)實(shí)的基礎(chǔ),并規(guī)范的把這些整理出來(lái)的元數(shù)據(jù)信息歸檔保存.數(shù)據(jù)倉(cāng)庫(kù)的建立是一個(gè)漫長(zhǎng)的過(guò)程,本文僅僅涉及到吞吐量數(shù)據(jù)庫(kù)的設(shè)計(jì),期望以該設(shè)計(jì)為后期費(fèi)收、成本、效率等主題的建立提供方法依據(jù).論文中還有一些未介紹的工作,如ETL過(guò)程、多維數(shù)據(jù)集設(shè)計(jì)等,這些都是數(shù)據(jù)倉(cāng)庫(kù)建立過(guò)程中的重要步驟,也是后期需要深入研究的工作.
[參 考 文 獻(xiàn)]
[1] 泉州太平洋集裝箱碼頭主頁(yè)http:∥www.shport.com/company.html.,2017-06-12
[2] PAULRAJ P.數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)[M].段云峰,李劍威,韓潔,等譯.北京.電子工業(yè)出版社,2004:43-56.
[3] 張曙明.論數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)架構(gòu)設(shè)計(jì)[J].信息通信技術(shù),2009(6):11-15.
[4] LYNN L,KEVIN S,DAVIDE M,et al.SQL SERVER2008商業(yè)智能完美解決方案[M].張猛,楊岳,朗亞妹,等譯.北京:人民郵電出版社,2010:10-28.
[5] RALPH K.數(shù)據(jù)倉(cāng)庫(kù)生命周期工具箱[M].2版.唐富年,孫媛媛譯.北京:清華大學(xué)出版社,2009:94-99.
[6] 池太崴.數(shù)據(jù)倉(cāng)庫(kù)結(jié)構(gòu)設(shè)計(jì)與實(shí)施-建造信息系統(tǒng)的金字塔[M].2版.北京:電子工業(yè)出版社,2009:34-43.