基于ETL技术的台站信息同步应用研究
2022-01-03刘泱
刘泱
(内蒙古自治区气象信息中心,内蒙古 呼和浩特 010010)
目前,全国综合气象信息共享平台[1](以下简称CIMISS)和气象大数据云平台(以下简称天擎)是全国气象部门信息化的核心平台,其存储的台站信息是各业务系统的重要数据支撑。CIMISS数据环境由ORACLE数据库组成,天擎数据库环境由虚谷数据库和GBase数据库组成,当站网信息发生变动时,则需要对所有数据库的站网信息表进行修改,人为修改不仅工作量大,而且存在改错、误删的风险。ETL技术的应用,大幅度地减少了各个数据库同步更新开发工作,技术人员只需在ETL工具的图形界面上定制工作流程,即可流程化地实现各个数据库表之间的站网信息同步,下面将对台站信息同步的具体实现进行介绍。
1 设计思路
站网信息同步更新设计思路如下:①CIMISS和天擎数据环境的站网信息表结构完全一致,首先,设计一张与站网信息表结构完全一致的台站信息表,添加一个是否更新字段,初始化为0,将待更新的台站信息存储至该表;②其次,基于ETL工具编排同步更新作业,当监测到有未更新的台站信息时,即更新字段为0的记录,则促发作业启动,拼接台站信息更新的SQL语句,并发送至各个数据库完成更新;③最后,更新成功后,将更新字段设置为1。
2 关键技术
2.1 ETL同步工具
ETL是Extract-Transform-Load的缩写[2],Extract是数据抽取、Transform是数据转换、Load是数据装载的过程。文章应用的ETL工具是Kettle,可以在Window、Linux、Unix不同的操作系统上运行。Kettle可以对不同数据库的数据进行管理,通过提供图形化页面,技术人员无需编写代码即可实现站网信息同步的业务逻辑。
2.2 虚谷数据库
虚谷数据库是以分布式[3]架构为基础的关系型数据库,实现了传统关系型数据库的所有功能且提供了多种数据库访问接口,如JDBC、ODBC、C-API、Python、GO等,具有数据存储高可用、工作节点高可用、多网络并行、高性能、高扩展、高安全和易用性等优点。
2.3 GBase数据库
GBase是南大通用数据技术有限公司推出的自主品牌数据库产品,是国内第一个列存分析型数据库,具有独特的列存储、透明自适应压缩、智能索引、双向并行、高速数据加载等优点。
3 实现方法
3.1 待更新台站信息元数据制作
创建一张台站信息元数据表,表的字段信息包括站名、站号、经度、纬度、海拔高度、盟市、旗县、行政区域编码、更新状态等带同步的台站基础信息。将待更新的台站信息录入到该表中,更新状态字段为0时,表示需要更新,为1时则表示更新成功。
3.2 台站信息同步任务编排
台站信息同步任务由作业和转换两部分组成[4]。其中作业是步骤流,表示完成同步任务的某一个阶段,每个步骤完成的是独立的一件事情,按照工作的先后顺序执行,从而形成一个工作流;转换是数据流,指从输入控件(Input)到输出控件(Output)之间的数据流动,针对的是在数据流动过程中的每一行记录、每一列数据的处理。台站信息同步任务包含1个作业和2个转换,具体设计如下。
3.2.1 台站信息同步作业设计
台站信息同步作业是将转换1——获取待同步的台站信息列表和转换2——同步台站信息列表这两个转换按照先后顺序连接起来,实现台站信息同步功能,作业流程如图1所示。
3.2.2台站信息同步转换设计
转换1——获取待同步的台站信息列表,主要用到的转换对象是“表输入”和“复制记录到结果”。“表输入”转换对象是通过SQL语句获取待同步的台站信息,“复制记录到结果”转换对象是用来存储表输入抽取台站信息,转换流程如图2所示。
图2 获取待同步的台站信息列表转换流程
转换2——同步台站信息列表,主要用到的转换对象是“表输入”“JavaScript代码”“插入/更新”“写日志”“执行SQL语句”。流程如图3所示。
图3 同步台站信息列表转换流程
处理详情过程如下:①“表输入”转换对象是待同步更新的台站信息列表;②“JavaScript代码”转换对象用来转换台站类型编码的,CIMISS台站类型是**两位字符串,天擎台站类型是00**四位字符;③“插入/更新”转换对象用来同步台站信息,包括CIMISS业务系统的ORACLE数据库一张台站信息表、天擎业务系统虚谷数据库三张台站信息表和GBASE数据库一张台站信息表;④“写日志”转换对象用来记录执行同步指令的异常记录日志,便于排查故障原因;⑤“执行SQL语句”转换对象用来更新同步状态,当所有数据库完成站网信息同步后,则将状态字段置为1。
3.3 调度任务启动
ETL是客户端工具,台站信息同步任务编排后,需要在工具中点击“运行”按钮才能执行,不符合智能运维的思路。为了弥补此缺陷,部署了KETTLE调度管理平台[5],将台站信息同步任务添加到调度平台,按照执行策略,即可自动运行,配置过程如下。
添加执行策略如图4所示。添加作业任务如图5所示。
图4 添加任务执行策略
图5 添加作业任务
4 应用与总结
文章所述的台站信息同步任务已在日常业务工作中开展应用,并在CIMISS业务系统和天擎业务系统并行期间发挥了重要作用,业务人员只需将变更的台站信息添加至待更新台站信息元数据表中,调度任务监测到后,即可自动向各个数据环境的数据库进行同步更新,极大地降低了人工操作的错误率,提高了工作效率,保证了台站信息更新的正确性和完整率。2021年以来,通过该同步任务共更新了2 463条件台站信息。