張怡敏, 卜 佳, 李楊梅, 周 清, 侯 星
(1.上海船舶工藝研究所, 上海 200032; 2.上海申博信息系統工程有限公司, 上海 200032)
近年來,隨著人工智能、工業物聯網、大數據等新一代信息技術的發展,我國的船舶行業也逐步開啟智能制造探索之路,船舶制造企業都在積極推進自動化、數字化、精細化、智能化的造船模式。在船舶制造中,各種設計、生產數據呈現多源異構、形式多樣、實時變更、快速增長、數據分散又相互關聯的特點。
現有的數據處理技術中,沒有針對船舶制造海量異構數據的多元性、關聯性、動態性和高度抽象性實現統一處理的解決方法。通常都是對不同的數據源進行單獨解析,這種方式格式單一,且沒有考慮不同數據源之間的關聯性和數據表的數量級,對于數據表內部數據的有效性和時效性也未詳細考慮,導致對數據進行抽取、整合、展示時無法快速響應。因此,針對船舶制造海量異構數據處理,對抽取轉換加載(Extract-Transform-Load, ETL)技術進行研究,以實現船舶制造中產生的生產、工藝、執行數據的快速采集、轉換、整合,為船舶行業向數字化、智能化管理模式升級提供重要技術支撐[1-2]。
數據采集和感知的實際過程中會接收到大量的無用數據,這些數據無法直接供給管控系統使用,因此需要進行數據集成,將不同部門、不同系統、不同表現形式的異構數據進行抽取、轉換、加載到統一標準存儲庫,對各種異構數據提供一個統一的存儲、管理和展示。數據集成能夠屏蔽各種異構數據間的差異、實現數據共享并提高共享的效率、有效提煉數據的價值信息。
ETL技術是源數據經過抽取、轉換、加載至目的端的過程描述。從源數據中抽取所需數據,按照預先設定好的映射規則將抽取的數據進行轉換、清洗、加工得到統一的數據格式,最后將轉換好的數據按照規則增量式或全部導入到目的數據倉庫中,在海量數據處理中是構建數據倉庫的重要一環[3]。
船舶制造包括板材堆場、預處理、下料切割、加工成型、組立裝焊、分段涂裝、總組、管子配套、倉儲配套等,包含大量的靜態管理信息與實時狀態信息[4]。靜態管理信息是指人員、設備、場地、工裝的基本信息、管理信息、技術屬性信息等。實時狀態信息包括生產人員工作狀態信息、物料流轉信息、移運工裝使用信息、產品質量檢驗信息和裝焊設備的使用狀態信息、維護信息、保養信息、檢修信息等。從規模來講,船舶制造數據具有海量特征;從多樣性來講,船舶制造涉及大量結構化、半結構化和非結構化數據,其中,結構化數據包含不同系統關聯設備運行參數、產品加工時間等信息,半結構化數據包數控程序、產品物料清單(Bill of Material, BOM)等信息,非結構化數據包含檢測圖像、三維模型等信息。這些數據都具有鮮明的數據異構特征。但是,這些數據之間存在著一定的內在關聯,若僅通過簡單的淺層數據共享及處理,所展示的信息非常有限,不能充分發揮異構數據之間的潛在價值。存在的主要問題為:數據太多但表達的信息太少,且數據的規范化程度不夠;數據之間難以自由交叉組合分析數據以獲得不同維度的信息[5-6]。因此,應該對船舶制造的各種對象數據進行組合、轉換、融合、分析,建立統一的數據倉庫來管理這些數據,挖掘其潛在的規律,進一步發揮數據的深層次價值。
針對船舶制造的自動化、數字化管理模式升級的需求,構建數據規范、數據融合、快速關聯匹配、大數據存儲與處理、文件影像傳輸、動態數據庫、ETL技術等組成的數據處理架構,研發海量異構數據融合管理系統(Massive Heterogeneous Data Fusion Management System,HDMS)。數據處理對象覆蓋結構化數據和非結構化數據,使傳統的關系型數據庫轉向列存儲數據庫和分布式存儲數據庫,基于多維關聯關系建立統一的數據倉庫,滿足船舶制造海量異構數據一體化存儲和處理,為上層應用服務提供可靠、可復用的數據資源。船舶制造海量異構數據處理架構如圖1所示。
數據分析主要從目標數據規范化、數據源分析和ETL技術執行工具選擇等方面考慮。
4.1.1 目標數據規范化
建立規范化的船舶制造數據模型,從不同的角度和維度出發,對各種對象數據進行梳理、整合,為后續船舶制造海量異構數據的抽取、清洗、轉換和裝載奠定基礎。
4.1.2 數據源分析
為了實現數據源系統與目標數據倉庫系統之間的接口對接,對數據源的表結構、表名、主鍵、外鍵參照等進行分析。主要步驟如下:
(1) 明確目的。確認數據分析原因及目標。
(2) 分門別類。根據目標數據倉庫需求縮小分析范圍,對所需字段進行分類分組。
(3) 去粗取精。選擇關鍵字段,以樣本數據進行觀察。
以造船企業管理(Shipbuilding Enterprise Management, SEM)系統作為數據來源,使用Oracle數據庫;以HDMS作為目標數據管理平臺,使用SQL Server數據庫。根據目標數據需求,重點對PROJECT、BLOCK、PRODUCTIONPLAN和QUALITY 等數據表進行分析,并重點挑選出與目標數據對應的字段,數據來源表和數據目標表如圖2所示。

圖1 船舶制造海量異構數據處理架構

圖2 SEM系統數據表轉化為HDMS數據表
4.1.3 ETL技術執行工具選擇
根據數據源分析和目標數據分析結果選擇ETL技術執行工具,可從以下幾個方面考慮:
(1) 是否兼容支持目標數據管理平臺。
(2) 對數據源的支持程度。
(3) 數據抽取和裝載的性能,是否影響業務系統原有的性能。
(4) 數據清洗和轉換的功能性。
(5) 是否具有管理和調度功能。
(6) 是否具有良好的集成性和開放性。
選用kettle工具進行數據處理,具有較好的平臺兼容性,可進行可視化圖形界面操作,功能強大,且開源集成性和開放性好。
數據抽取就是將數據從其他船舶設計/管理系統、車間設備數據采集源及其他存儲數據介質中分離,從而導入HDMS的數據庫中。
數據源之間利用ETL技術中開放數據庫連接(Open Database Connectivity, ODBC)的方式建立數據庫連接:當源數據庫與目標數據庫首次連接且數據量不大時采用全量式對所有數據進行抽??;若數據庫之間不能建立連接則通過工具將源數據導出為.xls或.txt文件,再將這些源數據文件導入到操作數據存儲(Operational Data Store, ODS)中。對于數據量大的系統,必須考慮增量抽取。
數據抽取一般分為完全刷新、鏡像增量、事件增量、鏡像比較等4種模式,以HDMS用戶為例加以說明。
(1) 在線數據表:因數據量不大,且涉及人數增加減少等各類操作的數據不需要維護比較,只需當前數據即可完全覆蓋原始數據,故采用完全刷新模式抽取更新數據。
(2) 分段信息表:因船舶建造中船體分段一般以增加和修改為主,數據更新不頻繁且刪除需人工確認,數據附加添加且保留數據歷史記錄,故采用鏡像增量模式抽取更新數據。
(3) 質檢結果:因船舶制造中對于質量檢驗數據呈現實時增加的狀態,如果首次為不合格,再次質檢會呈現一次、二次、三次合格的狀態,對于歷史質檢數據不會進行修改和刪除,即每次添加一個新事件,故采用事件增量模式。
(4) 計劃版本:因船舶制造中根據實際狀態對生產計劃會不斷調整,新建生產計劃需要與歷史計劃版本相比較,找出變更部分,添加變更數據,將歷史數據保存至歷史信息維護表中,故采用鏡像比較模式。
從SEM系統抽取數據前,先分別建立SEM系統和HDMS的數據連接,增加工程、分段、計劃和質檢相關的數據表輸入組件,并通過SQL腳本從SEM系統抽取相應的數據。同時,加載HDMS現有的工程、分段、計劃和質檢等數據,將SEM系統中抽取過來的數據和HDMS加載的現存數據進行排序記錄,加載到內存中待清洗和轉換處理。
數據轉換是將源數據轉換為目標數據的關鍵,對于源數據中不符合要求的數據(不完整數據、錯誤數據、重復數據)來說,只有將HDMS中對數據定義和映射的規則過濾掉,才能進入數據倉庫中用于船舶車間智能管控業務規則的計算和聚合。數據轉換一般通過先清洗后轉換的方式。圖3為SEM系統的數據清洗轉換。
(1) 數據清洗:對于應該有的數據缺失(如工程名稱、分段名稱及主表與明細表不相匹配),將這些缺失內容過濾寫入Excel表中,補齊后重新導入;對于錯誤信息(如數據格式不正確、日期越界即結束日期早于開始日期等),通過SQL語句查詢,統一修正后抽取;對于重復數據(如兩條數據完全相同的信息),以時間戳為準則保留最新數據,反之則對其進行標記。
數據清洗是一個反復的過程,過濾掉的數據寫入Excel文件或者寫入過濾數據表中,作為今后驗證數據的依據。但需要特別注意的是,數據清洗不是將有用的數據過濾掉,對清洗數據定義的每個數據規則和要求都需認真進行驗證,以便于導入目標數據庫后能夠進行有效的數據分析統計和計劃編排。
(2) 數據轉換:對于不一致的數據,例如依據工程內分段零部件的編碼規則,在SEM系統中部件編碼為A/604A/DK1A,而在HDMS中部件編碼為A-604A-DK1A,抽取時應將其轉換為統一格式編碼;對于數據顆粒度,例如有些系統會存儲非常明細的數據,但作統計分析和可視化展示時并不需要,可按照目標數據庫進行顆粒度聚合;對于業務規則,例如計劃排產、工藝設置、數據指標、負荷設置,并不是簡單的四則運算就能完成,需在ETL技術執行工具中將數據指標規則事先設定。
數據裝載就是將外部系統數據文件通過運行SQL語句的方式插入或更新到目標數據表中。數據裝載到數據庫的過程分為全量加載(更新)和增量加載(更新)。
全量加載一般只需在數據加載之前,清空目標表,再全量導入源表數據即可。但是由于數據量、系統資源和數據的實時性要求,在很多情況下都需要使用增量加載機制。
增量加載必須設計正確有效的方法,從數據源中抽取變化的數據和雖然沒有變化但受到變化數據影響的源數據,同時將這些變化的和未變化但受影響的數據在完成相應的邏輯轉換后更新到數據倉庫中。增量抽取機制要求ETL技術執行工具不僅能夠將業務系統中的變化數據按一定的頻率準確地捕獲到,不給業務系統造成太大的壓力,而且能夠滿足數據轉換過程中的邏輯要求和加載后目標表的數據正確性,同時還需考慮到數據加載的性能和作業失敗后可恢復重啟的易維護性。
SEM系統與HDMS的數據裝載如圖4所示。

圖3 SEM系統的數據清洗轉換

圖4 SEM系統與HDMS的數據裝載
ETL技術應用到船舶制造海量異構數據處理的場景中,經常會出現多個轉換,可將這些轉換集成到一個作業之中,定時有序執行作業中的所有轉換,以降低管理成本。HDMS會將工程、分段、計劃和質檢等數據在每日零點自動執行所有轉換,也可以手動進行。
以船舶制造中車間切割機作業場景為例。車間內有小池酸素等離子切割機、梅塞爾切割機、數控等離子切割機等十幾臺切割機,每隔10 s對每臺切割機采集電流、電壓、切割米數、坐標信息(MX、MY、MZ、AX、AY、AZ、RX、RY、RZ、SX、SY、SZ)、設備運行狀態等數據信息,平均一周采集到幾十萬條數據,利用ETL技術對這些采集到的數據進行處理,可有效提高數據處理效率。圖5和圖6為切割機加工數據處理效率和展示,圖7為車間數據統計。

圖5 切割機加工數據處理效率

圖6 切割機加工數據展示

圖7 車間數據統計
海量異構數據處理是較為復雜的過程,數據處理的質量會直接影響上層服務應用和數據統計分析。HDMS解決船舶車間管控對海量數據分析決策的應用需求,作為車間管控系統強有力的底層數據支撐,為船舶制造管理層的智能分析決策提供有力依據,已成功應用在某船廠,為該船廠的制造管理系統提供大量有效的基礎數據,使得管理決策依據更加充實和準確,車間生產效率大幅提高。