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