张怡敏, 卜 佳, 李杨梅, 周 清, 侯 星
(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解决船舶车间管控对海量数据分析决策的应用需求,作为车间管控系统强有力的底层数据支撑,为船舶制造管理层的智能分析决策提供有力依据,已成功应用在某船厂,为该船厂的制造管理系统提供大量有效的基础数据,使得管理决策依据更加充实和准确,车间生产效率大幅提高。