張怡敏, 卜 佳, 李楊梅, 周 清, 侯 星
(1.上海船舶工藝研究所, 上海 200032; 2.上海申博信息系統(tǒng)工程有限公司, 上海 200032)
近年來,隨著人工智能、工業(yè)物聯(lián)網(wǎng)、大數(shù)據(jù)等新一代信息技術(shù)的發(fā)展,我國的船舶行業(yè)也逐步開啟智能制造探索之路,船舶制造企業(yè)都在積極推進(jìn)自動(dòng)化、數(shù)字化、精細(xì)化、智能化的造船模式。在船舶制造中,各種設(shè)計(jì)、生產(chǎn)數(shù)據(jù)呈現(xiàn)多源異構(gòu)、形式多樣、實(shí)時(shí)變更、快速增長、數(shù)據(jù)分散又相互關(guān)聯(lián)的特點(diǎn)。
現(xiàn)有的數(shù)據(jù)處理技術(shù)中,沒有針對(duì)船舶制造海量異構(gòu)數(shù)據(jù)的多元性、關(guān)聯(lián)性、動(dòng)態(tài)性和高度抽象性實(shí)現(xiàn)統(tǒng)一處理的解決方法。通常都是對(duì)不同的數(shù)據(jù)源進(jìn)行單獨(dú)解析,這種方式格式單一,且沒有考慮不同數(shù)據(jù)源之間的關(guān)聯(lián)性和數(shù)據(jù)表的數(shù)量級(jí),對(duì)于數(shù)據(jù)表內(nèi)部數(shù)據(jù)的有效性和時(shí)效性也未詳細(xì)考慮,導(dǎo)致對(duì)數(shù)據(jù)進(jìn)行抽取、整合、展示時(shí)無法快速響應(yīng)。因此,針對(duì)船舶制造海量異構(gòu)數(shù)據(jù)處理,對(duì)抽取轉(zhuǎn)換加載(Extract-Transform-Load, ETL)技術(shù)進(jìn)行研究,以實(shí)現(xiàn)船舶制造中產(chǎn)生的生產(chǎn)、工藝、執(zhí)行數(shù)據(jù)的快速采集、轉(zhuǎn)換、整合,為船舶行業(yè)向數(shù)字化、智能化管理模式升級(jí)提供重要技術(shù)支撐[1-2]。
數(shù)據(jù)采集和感知的實(shí)際過程中會(huì)接收到大量的無用數(shù)據(jù),這些數(shù)據(jù)無法直接供給管控系統(tǒng)使用,因此需要進(jìn)行數(shù)據(jù)集成,將不同部門、不同系統(tǒng)、不同表現(xiàn)形式的異構(gòu)數(shù)據(jù)進(jìn)行抽取、轉(zhuǎn)換、加載到統(tǒng)一標(biāo)準(zhǔn)存儲(chǔ)庫,對(duì)各種異構(gòu)數(shù)據(jù)提供一個(gè)統(tǒng)一的存儲(chǔ)、管理和展示。數(shù)據(jù)集成能夠屏蔽各種異構(gòu)數(shù)據(jù)間的差異、實(shí)現(xiàn)數(shù)據(jù)共享并提高共享的效率、有效提煉數(shù)據(jù)的價(jià)值信息。
ETL技術(shù)是源數(shù)據(jù)經(jīng)過抽取、轉(zhuǎn)換、加載至目的端的過程描述。從源數(shù)據(jù)中抽取所需數(shù)據(jù),按照預(yù)先設(shè)定好的映射規(guī)則將抽取的數(shù)據(jù)進(jìn)行轉(zhuǎn)換、清洗、加工得到統(tǒng)一的數(shù)據(jù)格式,最后將轉(zhuǎn)換好的數(shù)據(jù)按照規(guī)則增量式或全部導(dǎo)入到目的數(shù)據(jù)倉庫中,在海量數(shù)據(jù)處理中是構(gòu)建數(shù)據(jù)倉庫的重要一環(huán)[3]。
船舶制造包括板材堆場(chǎng)、預(yù)處理、下料切割、加工成型、組立裝焊、分段涂裝、總組、管子配套、倉儲(chǔ)配套等,包含大量的靜態(tài)管理信息與實(shí)時(shí)狀態(tài)信息[4]。靜態(tài)管理信息是指人員、設(shè)備、場(chǎng)地、工裝的基本信息、管理信息、技術(shù)屬性信息等。實(shí)時(shí)狀態(tài)信息包括生產(chǎn)人員工作狀態(tài)信息、物料流轉(zhuǎn)信息、移運(yùn)工裝使用信息、產(chǎn)品質(zhì)量檢驗(yàn)信息和裝焊設(shè)備的使用狀態(tài)信息、維護(hù)信息、保養(yǎng)信息、檢修信息等。從規(guī)模來講,船舶制造數(shù)據(jù)具有海量特征;從多樣性來講,船舶制造涉及大量結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù),其中,結(jié)構(gòu)化數(shù)據(jù)包含不同系統(tǒng)關(guān)聯(lián)設(shè)備運(yùn)行參數(shù)、產(chǎn)品加工時(shí)間等信息,半結(jié)構(gòu)化數(shù)據(jù)包數(shù)控程序、產(chǎn)品物料清單(Bill of Material, BOM)等信息,非結(jié)構(gòu)化數(shù)據(jù)包含檢測(cè)圖像、三維模型等信息。這些數(shù)據(jù)都具有鮮明的數(shù)據(jù)異構(gòu)特征。但是,這些數(shù)據(jù)之間存在著一定的內(nèi)在關(guān)聯(lián),若僅通過簡(jiǎn)單的淺層數(shù)據(jù)共享及處理,所展示的信息非常有限,不能充分發(fā)揮異構(gòu)數(shù)據(jù)之間的潛在價(jià)值。存在的主要問題為:數(shù)據(jù)太多但表達(dá)的信息太少,且數(shù)據(jù)的規(guī)范化程度不夠;數(shù)據(jù)之間難以自由交叉組合分析數(shù)據(jù)以獲得不同維度的信息[5-6]。因此,應(yīng)該對(duì)船舶制造的各種對(duì)象數(shù)據(jù)進(jìn)行組合、轉(zhuǎn)換、融合、分析,建立統(tǒng)一的數(shù)據(jù)倉庫來管理這些數(shù)據(jù),挖掘其潛在的規(guī)律,進(jìn)一步發(fā)揮數(shù)據(jù)的深層次價(jià)值。
針對(duì)船舶制造的自動(dòng)化、數(shù)字化管理模式升級(jí)的需求,構(gòu)建數(shù)據(jù)規(guī)范、數(shù)據(jù)融合、快速關(guān)聯(lián)匹配、大數(shù)據(jù)存儲(chǔ)與處理、文件影像傳輸、動(dòng)態(tài)數(shù)據(jù)庫、ETL技術(shù)等組成的數(shù)據(jù)處理架構(gòu),研發(fā)海量異構(gòu)數(shù)據(jù)融合管理系統(tǒng)(Massive Heterogeneous Data Fusion Management System,HDMS)。數(shù)據(jù)處理對(duì)象覆蓋結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),使傳統(tǒng)的關(guān)系型數(shù)據(jù)庫轉(zhuǎn)向列存儲(chǔ)數(shù)據(jù)庫和分布式存儲(chǔ)數(shù)據(jù)庫,基于多維關(guān)聯(lián)關(guān)系建立統(tǒng)一的數(shù)據(jù)倉庫,滿足船舶制造海量異構(gòu)數(shù)據(jù)一體化存儲(chǔ)和處理,為上層應(yīng)用服務(wù)提供可靠、可復(fù)用的數(shù)據(jù)資源。船舶制造海量異構(gòu)數(shù)據(jù)處理架構(gòu)如圖1所示。
數(shù)據(jù)分析主要從目標(biāo)數(shù)據(jù)規(guī)范化、數(shù)據(jù)源分析和ETL技術(shù)執(zhí)行工具選擇等方面考慮。
4.1.1 目標(biāo)數(shù)據(jù)規(guī)范化
建立規(guī)范化的船舶制造數(shù)據(jù)模型,從不同的角度和維度出發(fā),對(duì)各種對(duì)象數(shù)據(jù)進(jìn)行梳理、整合,為后續(xù)船舶制造海量異構(gòu)數(shù)據(jù)的抽取、清洗、轉(zhuǎn)換和裝載奠定基礎(chǔ)。
4.1.2 數(shù)據(jù)源分析
為了實(shí)現(xiàn)數(shù)據(jù)源系統(tǒng)與目標(biāo)數(shù)據(jù)倉庫系統(tǒng)之間的接口對(duì)接,對(duì)數(shù)據(jù)源的表結(jié)構(gòu)、表名、主鍵、外鍵參照等進(jìn)行分析。主要步驟如下:
(1) 明確目的。確認(rèn)數(shù)據(jù)分析原因及目標(biāo)。
(2) 分門別類。根據(jù)目標(biāo)數(shù)據(jù)倉庫需求縮小分析范圍,對(duì)所需字段進(jìn)行分類分組。
(3) 去粗取精。選擇關(guān)鍵字段,以樣本數(shù)據(jù)進(jìn)行觀察。
以造船企業(yè)管理(Shipbuilding Enterprise Management, SEM)系統(tǒng)作為數(shù)據(jù)來源,使用Oracle數(shù)據(jù)庫;以HDMS作為目標(biāo)數(shù)據(jù)管理平臺(tái),使用SQL Server數(shù)據(jù)庫。根據(jù)目標(biāo)數(shù)據(jù)需求,重點(diǎn)對(duì)PROJECT、BLOCK、PRODUCTIONPLAN和QUALITY 等數(shù)據(jù)表進(jìn)行分析,并重點(diǎn)挑選出與目標(biāo)數(shù)據(jù)對(duì)應(yīng)的字段,數(shù)據(jù)來源表和數(shù)據(jù)目標(biāo)表如圖2所示。
圖1 船舶制造海量異構(gòu)數(shù)據(jù)處理架構(gòu)
圖2 SEM系統(tǒng)數(shù)據(jù)表轉(zhuǎn)化為HDMS數(shù)據(jù)表
4.1.3 ETL技術(shù)執(zhí)行工具選擇
根據(jù)數(shù)據(jù)源分析和目標(biāo)數(shù)據(jù)分析結(jié)果選擇ETL技術(shù)執(zhí)行工具,可從以下幾個(gè)方面考慮:
(1) 是否兼容支持目標(biāo)數(shù)據(jù)管理平臺(tái)。
(2) 對(duì)數(shù)據(jù)源的支持程度。
(3) 數(shù)據(jù)抽取和裝載的性能,是否影響業(yè)務(wù)系統(tǒng)原有的性能。
(4) 數(shù)據(jù)清洗和轉(zhuǎn)換的功能性。
(5) 是否具有管理和調(diào)度功能。
(6) 是否具有良好的集成性和開放性。
選用kettle工具進(jìn)行數(shù)據(jù)處理,具有較好的平臺(tái)兼容性,可進(jìn)行可視化圖形界面操作,功能強(qiáng)大,且開源集成性和開放性好。
數(shù)據(jù)抽取就是將數(shù)據(jù)從其他船舶設(shè)計(jì)/管理系統(tǒng)、車間設(shè)備數(shù)據(jù)采集源及其他存儲(chǔ)數(shù)據(jù)介質(zhì)中分離,從而導(dǎo)入HDMS的數(shù)據(jù)庫中。
數(shù)據(jù)源之間利用ETL技術(shù)中開放數(shù)據(jù)庫連接(Open Database Connectivity, ODBC)的方式建立數(shù)據(jù)庫連接:當(dāng)源數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫首次連接且數(shù)據(jù)量不大時(shí)采用全量式對(duì)所有數(shù)據(jù)進(jìn)行抽??;若數(shù)據(jù)庫之間不能建立連接則通過工具將源數(shù)據(jù)導(dǎo)出為.xls或.txt文件,再將這些源數(shù)據(jù)文件導(dǎo)入到操作數(shù)據(jù)存儲(chǔ)(Operational Data Store, ODS)中。對(duì)于數(shù)據(jù)量大的系統(tǒng),必須考慮增量抽取。
數(shù)據(jù)抽取一般分為完全刷新、鏡像增量、事件增量、鏡像比較等4種模式,以HDMS用戶為例加以說明。
(1) 在線數(shù)據(jù)表:因數(shù)據(jù)量不大,且涉及人數(shù)增加減少等各類操作的數(shù)據(jù)不需要維護(hù)比較,只需當(dāng)前數(shù)據(jù)即可完全覆蓋原始數(shù)據(jù),故采用完全刷新模式抽取更新數(shù)據(jù)。
(2) 分段信息表:因船舶建造中船體分段一般以增加和修改為主,數(shù)據(jù)更新不頻繁且刪除需人工確認(rèn),數(shù)據(jù)附加添加且保留數(shù)據(jù)歷史記錄,故采用鏡像增量模式抽取更新數(shù)據(jù)。
(3) 質(zhì)檢結(jié)果:因船舶制造中對(duì)于質(zhì)量檢驗(yàn)數(shù)據(jù)呈現(xiàn)實(shí)時(shí)增加的狀態(tài),如果首次為不合格,再次質(zhì)檢會(huì)呈現(xiàn)一次、二次、三次合格的狀態(tài),對(duì)于歷史質(zhì)檢數(shù)據(jù)不會(huì)進(jìn)行修改和刪除,即每次添加一個(gè)新事件,故采用事件增量模式。
(4) 計(jì)劃版本:因船舶制造中根據(jù)實(shí)際狀態(tài)對(duì)生產(chǎn)計(jì)劃會(huì)不斷調(diào)整,新建生產(chǎn)計(jì)劃需要與歷史計(jì)劃版本相比較,找出變更部分,添加變更數(shù)據(jù),將歷史數(shù)據(jù)保存至歷史信息維護(hù)表中,故采用鏡像比較模式。
從SEM系統(tǒng)抽取數(shù)據(jù)前,先分別建立SEM系統(tǒng)和HDMS的數(shù)據(jù)連接,增加工程、分段、計(jì)劃和質(zhì)檢相關(guān)的數(shù)據(jù)表輸入組件,并通過SQL腳本從SEM系統(tǒng)抽取相應(yīng)的數(shù)據(jù)。同時(shí),加載HDMS現(xiàn)有的工程、分段、計(jì)劃和質(zhì)檢等數(shù)據(jù),將SEM系統(tǒng)中抽取過來的數(shù)據(jù)和HDMS加載的現(xiàn)存數(shù)據(jù)進(jìn)行排序記錄,加載到內(nèi)存中待清洗和轉(zhuǎn)換處理。
數(shù)據(jù)轉(zhuǎn)換是將源數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)的關(guān)鍵,對(duì)于源數(shù)據(jù)中不符合要求的數(shù)據(jù)(不完整數(shù)據(jù)、錯(cuò)誤數(shù)據(jù)、重復(fù)數(shù)據(jù))來說,只有將HDMS中對(duì)數(shù)據(jù)定義和映射的規(guī)則過濾掉,才能進(jìn)入數(shù)據(jù)倉庫中用于船舶車間智能管控業(yè)務(wù)規(guī)則的計(jì)算和聚合。數(shù)據(jù)轉(zhuǎn)換一般通過先清洗后轉(zhuǎn)換的方式。圖3為SEM系統(tǒng)的數(shù)據(jù)清洗轉(zhuǎn)換。
(1) 數(shù)據(jù)清洗:對(duì)于應(yīng)該有的數(shù)據(jù)缺失(如工程名稱、分段名稱及主表與明細(xì)表不相匹配),將這些缺失內(nèi)容過濾寫入Excel表中,補(bǔ)齊后重新導(dǎo)入;對(duì)于錯(cuò)誤信息(如數(shù)據(jù)格式不正確、日期越界即結(jié)束日期早于開始日期等),通過SQL語句查詢,統(tǒng)一修正后抽?。粚?duì)于重復(fù)數(shù)據(jù)(如兩條數(shù)據(jù)完全相同的信息),以時(shí)間戳為準(zhǔn)則保留最新數(shù)據(jù),反之則對(duì)其進(jìn)行標(biāo)記。
數(shù)據(jù)清洗是一個(gè)反復(fù)的過程,過濾掉的數(shù)據(jù)寫入Excel文件或者寫入過濾數(shù)據(jù)表中,作為今后驗(yàn)證數(shù)據(jù)的依據(jù)。但需要特別注意的是,數(shù)據(jù)清洗不是將有用的數(shù)據(jù)過濾掉,對(duì)清洗數(shù)據(jù)定義的每個(gè)數(shù)據(jù)規(guī)則和要求都需認(rèn)真進(jìn)行驗(yàn)證,以便于導(dǎo)入目標(biāo)數(shù)據(jù)庫后能夠進(jìn)行有效的數(shù)據(jù)分析統(tǒng)計(jì)和計(jì)劃編排。
(2) 數(shù)據(jù)轉(zhuǎn)換:對(duì)于不一致的數(shù)據(jù),例如依據(jù)工程內(nèi)分段零部件的編碼規(guī)則,在SEM系統(tǒng)中部件編碼為A/604A/DK1A,而在HDMS中部件編碼為A-604A-DK1A,抽取時(shí)應(yīng)將其轉(zhuǎn)換為統(tǒng)一格式編碼;對(duì)于數(shù)據(jù)顆粒度,例如有些系統(tǒng)會(huì)存儲(chǔ)非常明細(xì)的數(shù)據(jù),但作統(tǒng)計(jì)分析和可視化展示時(shí)并不需要,可按照目標(biāo)數(shù)據(jù)庫進(jìn)行顆粒度聚合;對(duì)于業(yè)務(wù)規(guī)則,例如計(jì)劃排產(chǎn)、工藝設(shè)置、數(shù)據(jù)指標(biāo)、負(fù)荷設(shè)置,并不是簡(jiǎn)單的四則運(yùn)算就能完成,需在ETL技術(shù)執(zhí)行工具中將數(shù)據(jù)指標(biāo)規(guī)則事先設(shè)定。
數(shù)據(jù)裝載就是將外部系統(tǒng)數(shù)據(jù)文件通過運(yùn)行SQL語句的方式插入或更新到目標(biāo)數(shù)據(jù)表中。數(shù)據(jù)裝載到數(shù)據(jù)庫的過程分為全量加載(更新)和增量加載(更新)。
全量加載一般只需在數(shù)據(jù)加載之前,清空目標(biāo)表,再全量導(dǎo)入源表數(shù)據(jù)即可。但是由于數(shù)據(jù)量、系統(tǒng)資源和數(shù)據(jù)的實(shí)時(shí)性要求,在很多情況下都需要使用增量加載機(jī)制。
增量加載必須設(shè)計(jì)正確有效的方法,從數(shù)據(jù)源中抽取變化的數(shù)據(jù)和雖然沒有變化但受到變化數(shù)據(jù)影響的源數(shù)據(jù),同時(shí)將這些變化的和未變化但受影響的數(shù)據(jù)在完成相應(yīng)的邏輯轉(zhuǎn)換后更新到數(shù)據(jù)倉庫中。增量抽取機(jī)制要求ETL技術(shù)執(zhí)行工具不僅能夠?qū)I(yè)務(wù)系統(tǒng)中的變化數(shù)據(jù)按一定的頻率準(zhǔn)確地捕獲到,不給業(yè)務(wù)系統(tǒng)造成太大的壓力,而且能夠滿足數(shù)據(jù)轉(zhuǎn)換過程中的邏輯要求和加載后目標(biāo)表的數(shù)據(jù)正確性,同時(shí)還需考慮到數(shù)據(jù)加載的性能和作業(yè)失敗后可恢復(fù)重啟的易維護(hù)性。
SEM系統(tǒng)與HDMS的數(shù)據(jù)裝載如圖4所示。
圖3 SEM系統(tǒng)的數(shù)據(jù)清洗轉(zhuǎn)換
圖4 SEM系統(tǒng)與HDMS的數(shù)據(jù)裝載
ETL技術(shù)應(yīng)用到船舶制造海量異構(gòu)數(shù)據(jù)處理的場(chǎng)景中,經(jīng)常會(huì)出現(xiàn)多個(gè)轉(zhuǎn)換,可將這些轉(zhuǎn)換集成到一個(gè)作業(yè)之中,定時(shí)有序執(zhí)行作業(yè)中的所有轉(zhuǎn)換,以降低管理成本。HDMS會(huì)將工程、分段、計(jì)劃和質(zhì)檢等數(shù)據(jù)在每日零點(diǎn)自動(dòng)執(zhí)行所有轉(zhuǎn)換,也可以手動(dòng)進(jìn)行。
以船舶制造中車間切割機(jī)作業(yè)場(chǎng)景為例。車間內(nèi)有小池酸素等離子切割機(jī)、梅塞爾切割機(jī)、數(shù)控等離子切割機(jī)等十幾臺(tái)切割機(jī),每隔10 s對(duì)每臺(tái)切割機(jī)采集電流、電壓、切割米數(shù)、坐標(biāo)信息(MX、MY、MZ、AX、AY、AZ、RX、RY、RZ、SX、SY、SZ)、設(shè)備運(yùn)行狀態(tài)等數(shù)據(jù)信息,平均一周采集到幾十萬條數(shù)據(jù),利用ETL技術(shù)對(duì)這些采集到的數(shù)據(jù)進(jìn)行處理,可有效提高數(shù)據(jù)處理效率。圖5和圖6為切割機(jī)加工數(shù)據(jù)處理效率和展示,圖7為車間數(shù)據(jù)統(tǒng)計(jì)。
圖5 切割機(jī)加工數(shù)據(jù)處理效率
圖6 切割機(jī)加工數(shù)據(jù)展示
圖7 車間數(shù)據(jù)統(tǒng)計(jì)
海量異構(gòu)數(shù)據(jù)處理是較為復(fù)雜的過程,數(shù)據(jù)處理的質(zhì)量會(huì)直接影響上層服務(wù)應(yīng)用和數(shù)據(jù)統(tǒng)計(jì)分析。HDMS解決船舶車間管控對(duì)海量數(shù)據(jù)分析決策的應(yīng)用需求,作為車間管控系統(tǒng)強(qiáng)有力的底層數(shù)據(jù)支撐,為船舶制造管理層的智能分析決策提供有力依據(jù),已成功應(yīng)用在某船廠,為該船廠的制造管理系統(tǒng)提供大量有效的基礎(chǔ)數(shù)據(jù),使得管理決策依據(jù)更加充實(shí)和準(zhǔn)確,車間生產(chǎn)效率大幅提高。