APP下载

基于Kettle的食品监管数据增量汇集处理机制

2020-01-18郭承湘陈硕峰吴帅陈宁江

电子技术与软件工程 2019年24期
关键词:功能模块增量数据处理

文/郭承湘 陈硕峰 吴帅 陈宁江

1 引言(Introduction)

已有研究和开发工作表明,在开发与食品安全监管数据相关的一系列系统时,基本上都是针对单个业务域进行设计的,而这些系统之间并没有统一的标准,从而导致了各个部门之间的协同办公产生了障碍。在此情况下,只有将这些数据集中起来,建立统一标准创建数据仓库,完成数据共享,这样才能更准确、有效的对过往的数据进行分析,并进行一定时间长度上的预测和预警,为预判以后的事态发展以及做出相应的决策提供依据。

ETL(Extract-Transform-Load)是 对 异构数据进行集成的有效方法,根据国内外众多实践得到的共识,ETL规则的设计和实施所需工作量约占整个项目的60%~80%,如何设计正确的、高效的ETL过程已经成为数据集成构建过程中的重要问题[6]。目前主流的ETL工 具 有IBM DataStage、Informatica Powercenter、开 源 的Kettle等。DataStage能够连接多种类别的数据源,还可以处理文本文件和XML文件,但它并没有真正的recovery机制,并且元数据信息是不公开的。Informatica PowerCenter能够访问并集成几乎任何业务系统和任何格式的数据,并能以任意速度进行数据交付,具有高可扩展性、高可用性、高性能的优点。而且可实现断点续传的功能,支持多用户操作,具有并行运行能力。

Kettle是一款使用Java编写的开源ETL工具,具备丰富的SDK,并且开放源码,可以进行二次开发。其对于千万级以下数据的处理效率高于上述两个ETL工具,更加适合本文的研究。因此本文选择ETL开源产品中应用最广泛的Kettle作为核心,研究分析基于Kettle的食品监管数据汇集处理。

2 模型设计(Model design)

图1:数据处理系统框架

图2:食品餐饮违规问题事实表设计

图3:笛卡尔集算法实现字段编码

本文首先在已经做了全量ETL的基础上,增量数据处理模型用于定期的数据抽取,该部分在抽取时只抽取改变的部分。

2.1 ETL框架

2.1.1 数据处理系统框架

基于kettle的安全数据汇集处理系统,从总体架构上分为三个层次:管理调度层、应用功能层、控制环境。

通过管理调度,管理员可根据数据的更新周期,制定数据的ETL时刻表,然后管理员参照时刻表设置Kettle的作业调度功能,进行ETL作业运行时刻设置;ETL功能模块层次中包含实现图1中应用功能模块每个ETL步骤的程序;ETL功能模块的运行需要由相应的参数进行控制,同时在各模块之间也存在很多控制文件,功能模块在运行过程中也可能产生拒绝文件,针对功能模块的运行状况会有产生一些监控信息等等,这些对于ETL功能模块的运行起到控制与支撑的环境以及相应的维护管理程序构成ETL架构环境。

2.2 增量ETL设计

2.2.1 增量数据处理模型

本文将食品安全抽检系统中的检验结果数据汇集到数据仓库,按照时间维度(月、季度、年)、检验目的、抽检环节、食品类别、检验项目五个维度对检验结果值进行分析,从而了解抽检样品的检验结果值是否超出允许阀。

因为源库中的业务数据中存入的都是用中文,例如抽样地点、检验机构等都没有用编码的方式生产维表,所以在ETL过程中需要对可编码的数据进行编码,建立索引,并配置维表,从而提升数据分析时的计算效率。编码后的分类数据均有分类代码,目标表与维表使用分类代码进行映射,图2为部分目标表设计。

如图3所示利用笛卡尔集表关联的方式对源数据中的检验项目、食品类别、抽样地点、检验机构进行编码,替换原来的中文为对应的维表的代码。并对填充内容为空的数据进行排除,写入ETL清洗过程流失数据表。

2.2.2 增量ETL的KETTLE实现

2.2.2.1 Job文件设计

如图4所示,首先获取本次抽取的起始时间写入缓存,然后设置本次数据增量的起始时间戳并获取上一次抽取数据更新时间最新的日期作为增量抽取的开始时间戳,用当前时间作为本次增量的结束时间戳。然后进行数据清洗,将清洗完成的数据加载到食品安全检验项目事实表中,最后计算表中的记录数。

2.2.2.2 转换文件设计

如5所示,先获取检验项目维表数据和上一步骤的结果集,采用笛卡尔集算法为结果集进行检验项目编码。然后清洗检验项目为的空记录,去除ETL过程临时字段,保留需要的字段。最后将本转换的结果集写入kettle临时储存区,并传输给JOB的下一个节点。

图4:增量数据处理JOB文件设计

图5:增量数据处理转换文件设计

3 测试(Test)

我们对所实现的系统进行了实验和测试。运行环境主要为:ETL服务器主要配置为8核CPU、32GB内容;软件配置为Linux操作系统、Oracle数据库、ETL工具kettle。

图6为部分增量数据,经过测试,该增量数据处理机制完全可以实现在60min内完成每月一次的增量数据汇集处理。

4 结论(Conclusion)

本文通过研究基于kettle的大数据处理机制,完成了对异构的食品监管数据的统一化、自动化汇集处理的模型设计及相应的Kettle实现,后续工作将会利用这套模型处理过的数据来进行分析与预测,为食品监管部门提供更大的帮助。

猜你喜欢

功能模块增量数据处理
提质和增量之间的“辩证”
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
基于均衡增量近邻查询的位置隐私保护方法
输电线路附着物测算系统测算功能模块的研究
M市石油装备公服平台网站主要功能模块设计与实现
基于希尔伯特- 黄变换的去噪法在外测数据处理中的应用
功能模块的设计与应用研究
德州仪器(TI)发布了一对32位增量-累加模数转换器(ADC):ADS1262和ADS126
基于POS AV610与PPP的车辆导航数据处理