Page 129 - 《橡塑技术与装备》2022年12期
P. 129

工业自动化                                                      朴龙吉 等·面向 MES 系统的数据采集与整合


                通过配置与 DB2、MySQL、MS Server 等关系型数据                  重大的目标分解成若干个逻辑上分离的 Job,如果这
                库,Hadoop 大数据数据库,MongoDB 等非关系型数                    些 Job 全部成功,也就表示这个任务执行成功。
                据库的连接信息以及获取半结构化、非结构化的文本                           3.3 ETL 关键技术
                文件、电子表格等文件的路径实现对数据源的访问                     [7] 。      ETL 以任务(Job 和 Transform)的方式定义数
                3.2 概念模型                                          据抽取、转换和加载的过程,通过执行任务实现对数
                    KETTLE 实现数据集成主要由 Job  和 Transform             据的集成。从三个方面介绍 ETL 的关键技术。
                两大部分组成。ETL 活动是一个四元组 A = (ID, I, O,                3.3.1 多数据源抽取
                S),   ID 是活动标识符,I 是输入模式的集合,O 是输                      (1)关系型数据库
                出模式的集合,S 是一个或多个扩展的关系代数表达                              关系型数据库存储的结构化数据类型能够很简单
                式,表示每个输出模式的语义             [7] 。KETTLE  ETL 的基     地转 化为 KETTLE 数 据流。KETTLE 通 过 JDBC 标
                本概念模式在图 8 中给出。                                    准解决不同数据库系统之间数据类型上的差异性,通
                                                                  过 JDBC-ODBC 桥接支持开放式数据库连接 (ODBC)
                                                                  接口。
                                                                     (2)普通文件
                                                                      Excel、CSV、等文本文件数据也可以用 ETL 抽
                                                                  取数据,而对于其中包含目录等信息数据的半结构化
                                                                  数据,在处理中,通过 KETTLE 将目录数据转换为结
                                                                  构化的数据表示,所转化的信息包括名称、目录的路
                                图 8 概念模型                          径、大小、目录类型和列信息。转换后数据与操作关

                                                                  系型数据库类似。
                   (1)Transform ( 转换 ) :一种对数据作业的容器,
                                                                  3.3.2 数据库增量同步数据
                其作业内容是将数据任务由导入到产出的整个流程,
                                                                     (1)时间戳方式
                可表现为比 Job 粒度要小一级的工作容器,首先将任
                                                                      在源表中添加 timestamp 类型字段,在系统中的
                务细分为 Job,然后根据需要再把 Job 分割成一个或
                                                                  每次增删 ( 逻辑删除 ) 或改查时,必须同步更新字段
                多 个 的 Transform, 但 每 次 Transform 都 只 能 完 成 一
                                                                  内容。在数据抽取时,获取 timestamp 字段与数据源
                个任务。
                                                                  timestamp 进行比较来决定抽取那些数据,如图 9。
                   (2)Step(步骤):是转换的构建模块,也就是一
                个文件导入或是输出一个数据就是一个步骤。在 PDI
                中包括官方提供的一百四十多种步骤。包括输入、输
                出、转换、应用、流程、连接、检验、加密、统计、
                脚本等。可以通过不同的排列及配置一系列步骤完成
                我们需要的数据集采工作。
                   (3)Hops(节点连接):是信息的通路,用来衔
                接二个步骤 Step,使元数据由某个环节传送至另一环
                节。在如上图所示的转换中,它像似按次序进行中的,
                而实际并非如此。节点连接确定了贯通于流程内部的
                数据流,进程内部的先后顺序是非转化完成的先后顺
                序。在进行一次转化后,各个进程都有独立的线程启
                                                                                   图 9 数据比较
                动,并不断的接收和传递数据。
                                                                     (2)触发器方式
                   (4)Jobs(工作):是指基于工作流模式的,协
                                                                      数据库中增加触发器,每当原表中数据发生变化
                调数据源、执行工作流程以及相互依赖性的 ETL 活动。
                                                                  时,写入临时表,抽取任务从临时表中抽取,临时表
                组织各种转换一起完成一个工作,一般我们会将一项
                                                                  中抽取过的数据被标记或者删除              [8] 。


                2022     第   48 卷                                                                      ·73·
                      年
   124   125   126   127   128   129   130   131   132   133   134