• 全国 [切换]
  • 深圳市鼎达信装备有限公司

    扫一扫关注

    当前位置: 首页 » 新闻动态 » 真空技术 » 正文

    基于智能适配器的气象数据入库通用模型

    放大字体  缩小字体 发布日期:2021-11-15 10:03:52    浏览次数:12    评论:0
    导读

    摘 要:针对气象数据入库工作量较大的问题,提出一种基于智能适配器的气象数据入库通用模型。将可扩展标志语言作为元数据表示方法,利用JAXB技术读取和写入元数据。使用脚本语言处理适配器的规则配置问题,提高气象数据的智能性。基于该模型,构建气象数据通用入库系统。运行结果表明,该系统具有高度灵活性和可扩展性。关

    摘 要:针对气象数据入库工作量较大的问题,提出一种基于智能适配器的气象数据入库通用模型。将可扩展标志语言作为元数据表示方法,利用JAXB技术读取和写入元数据。使用脚本语言处理适配器的规则配置问题,提高气象数据的智能性。基于该模型,构建气象数据通用入库系统。运行结果表明,该系统具有高度灵活性和可扩展性。

    关键词:智能适配器;通用模型;数据入库;元数据;可扩展标志语言

    1 概述

    气象数据是开展天气预报、气候预测、科学研究、减灾防灾和公共服务等的基础。能否拥有丰富、全面和权威的气象资料直接关系到各项预报预测的准确率,减灾防灾的成效和服务的质量。

    近年来,随着全国综合观测系统的建设和实施,新增了多种观(探)测项目,使得观测网点更加密集,观测的内容更加丰富。新增的观(探)测项目涉及到常规气象观测、大气特种观测、生态观测等多个领域。另外,随着部门间资料共享和交换的发展,相关部门和领域的资料也通过交换、汇交、专线传输等方式得到收集。

    新增资料由于有不同的格式和处理方法,通常一类新数据从开始收集到提供服务需要经过开发、测试等环节,周期较长。

    因此,如何快速对这些新增资料进行处理和存储管理,使其能尽快得到存储和应用成为技术的难点和各部门关注的焦点,也成为气象资料存储管理系统的首要任务。气象数据,特别是针对新增数据的通用入库模型的建立显得尤为重要。本文从提高开发与运行效率出发,应用智能适配器技术,设计了适用于新增数据处理的入库模型。该模型的应用将为气象数据库系统的发展提供一条建设发展的有效途径。

    2 入库通用模型的建立

    基于对气象数据入库过程的分析,可以将气象数据入库抽象为由数据源、数据目标和数据处理构成的通用数据管理模型,如图1所示。数据源包括文本、二进制、图像等数据。数据目标是数据最终存储位置,包括数据库、文件系统等。数据处理是数据从数据源到数据目标的处理过程,包括对数据校正、运算、分解、合并、转换等。在数据源和数据目标基本确定的情况下,若要建立气象数据通用入库模型,则需要重点研究数据处理。数据处理一般由元数据、智能适配器、数据流程引擎和任务调度等组件组成,其核心部件是以数据流程引擎调度的智能适配器。在入库通用模型中,数据和处理信息需要用一定的数据模型进行描述,经过分析和对比,本文选择元数据作为底层的数据模型,用于描述气象数据的来源、处理和目标;元数据可以描述气象数据的来源、读取规则、处理规则、写入规则以及存储结构。增加一个气象数据产品,只需要增加一组元数据,通用的入库模型即可解释气象数据的入库过程。元数据的通用性和灵活性可以为气象数据提供统一处理的数据模型。数据入库模型的通用性主要体现在它能够处理各种各样的数据源,同时能匹配不同的存储目标,但是在实际过程中没有这么简单,因为数据源和目标可能是异构的甚至完全不同的2个内容。在通用模型中,通过适配器实现各种复杂的处理模式,在整个设计体系中,最复杂最需要演化的就是适配器。除了各种适配器,还需要一个数据流程引擎调用适配器。数据流程引擎不仅能感知适配器的处理过程,同时也给适配器传递数据信息。因此,数据流程引擎是一个中央管控系统,既能够使用适配器,又能 够应付适配器在处理过程中出现的异常。

    图1 气象数据入库通用模型架构

    由于多数气象数据的入库都需要自动完成,因此任务调度是通用模型架构必不可少的组件。任务调度模块从元数据库中读取数据生命周期元数据中的相关配置,调用数据管理系统中的相关接口,通过任务控制模块和任务处理模块完成各项处理工作。任务控制模块进行任务控制:读系统管理信息和配置,并按照配置规则定时产生普通数据任务和数据校验任务,调用多个任务处理进程处理任务。任务处理模块处理任务,调用数据管理平台提供的外部接口,进行采集、析取、入库等操作,这期间读取系统配置决定如何抓取、析取,并把处理进度情况写入系统日志。

    3 关键技术

    3.1 可扩展标志语言

    可扩展标志语言(eXtensible Markup Language, XML)首次出现于1996年,并于1998年成为W3C的推荐标准。它允许用户自定义标记。XML标准出现后,由于其具有可扩展性、自描述性,使XML日益成为数据交换的标准。由于XML具有可扩展性,允许使用者自定义标记,因此成为标准制订者的有力工具,人们利用XML定义各种标准。

    在气象数据入库系统中需要用元数据进行描述的信息包括数据源格式、数据存储结构、适配器信息、适配器的规则配置、调度信息。如果采用数据库或者文本文件进行元数据的定义,则无法适应业务的复杂度,而且会让系统臃肿且可维护性差,无法保证系统的开放性和可扩展性。基于以上考虑,系统选择 XML作为元数据信息的描述格式。此外,和XML技术相匹配的XML Schema验证技术,确保了数据的一致性,从技术上保障了数据标准的执行力度。

    3.2 JAXB技术

    气象数据入库系统中大量使用了 XML文档。目前,在Java中处理XML数据的常规方法有文档对象模型(document Object Model, DOM)、XML简单API(Simple API for XML,SAX)、JAXB(Java Architecture for XML Binding)等。其中,SAX使用起来很麻烦,不能修改XML数据;而DOM处理大文档速度非常慢,易用性和SAX差不多。

    实际上,无论是SAX还是DOM都不是专门为Java准备的,它们都是访问XML文档的统一底层接口,与语言无关。而SUN公司提供的JAXB的特点在于能将用Schema定义好的XML文档直接映射为Java对象,提供简单、快速的数据操作方式[1-4]

    它是一种专门处理 XML和对象映射的中间件,容易将XML数据转换成程序使用的对象,而且将对象处理成XML也很方便。使用 JAXB访问 XML中的元素、属性,只要利用相应对象上的一系列getter和setter方法。通过unmarshal方法将XML文件的数据读入对象,通过marshal方法可将对象的数据写进XML文件,通过validate方法可验证XML文件是否符合Schema的约束。

    使用JAXB的优势主要体现在以下3个方面[5]

    (1)简单易用:JAXB技术中XML绑定的Java框架提供了一种简单而且方便的方法映射 XML模型到 Java类,所以,开发人员不用深入了解XML就可以在Java程序中处理XML数据。

    (2)易于维护:当产品需要更新,或是数据模型需要改变时,只需要重新定义Schema,然后让JAXB重新生成对XML文档进行操纵的类,使应用程序具有很好的维护性。

    (3)性能较好:JAXB在运行时在多数时间都是直接操纵内存中的 Java对象,只有在读取和存储文件时才会与 XML文件进行I/O操作。

    3.3 Velocity模板语言

    Velocity是一个基于Java的模板引擎(template engine)。它允许任何人仅简单地使用模板语言(template language)引用由Java代码定义的对象。Velocity是为了提供一种最简单的、最容易的、最简洁的方法展现Web页面中的动态内容。即使是一个只有很少的编程经验,甚至是没有编程经验的页面开发人员也能够很快掌握Velocity展现页面的动态内容。

    在气象数据入库通用模型设计中,使用模板语言的特性屏蔽各种数据库的差异,使用模板语言写出符合当前数据库的插入、删除等语句,只需要在引用时调用即可,而且可以动态添加用于支持不同的数据库。

    3.4 脚本语言

    脚本语言是一种解释性语言,它不需要编译,在运行程序时才将其翻译成机器语言。脚本引擎负责将运行其上的解释性语言转换为更底层的汇编语言,没有脚本引擎,脚本就无法被运行。

    JSR223定义一个统一的规范,使 Java应用程序可以通过一套固定的接口与各种脚本引擎交互,Java SE 6引入了对JSR(Java Specification Request) 223的支持,从而达到在Java平台上调用各种脚本语言的目的[6-7]。javax.script包定义了这些接口,即 Java脚本编程 API。Java脚本 API的目标与Apache项目BSF(Bean script framework)类似,通过它Java应用程序就能利用虚拟机调用各种脚本,同时脚本语言也能访问应用程序中的 Java对象和方法。Java脚本 API是连通Java平台和脚本语言的桥梁。通过Java脚本API使各种脚本语言能够直接利用现有的各类Java库,节省了开发成本,缩短了开发周期。此外,把一些复杂异变的业务逻辑交给脚本语言处理,提高开发效率[8]

    在气象数据入库系统中,用脚本语言实现对各类数据的处理,利用脚本语言的技术能大幅提高气象数据的智能性。

    4 系统设计与实现

    气象数据通用入库系统核心部件是数据流程引擎调度智能适配器,并以元数据为数据传递转换和配置为基础。技术实现上,选择 XML作为元数据的表示方法。元数据的读取和写入过程采用JAXB技术。对于适配器的规则问题采用脚本语言进行处理,以达到智能化目的。对于写入不同的数据库则采用模板语言的技术。任务调度则使用表的设计模型保存任务的定时信息,利用开源组件Quartz完成时间调度服务。数据流程引擎是利用了Java的反射机制完成的适配器访问管理引擎。

    4.1 元数据

    在通用入库模型中采用元数据对数据进行描述,元数据由数据元数据、流程元数据2个部分组成。数据元数据用于描述数据目标的表结构,例如数据字段、名称、类型以及表名等主要内容。流程元数据用于描述数据流程引擎的行为,在整个数据流程引擎的行为过程中,流程元数据要告诉数据流程引擎当前数据产品的处理流程以及处理方式,譬如说读取哪类文件、是否需要合成字段、是否需要计算和删减等内容。为便于对元数据的格式进行验证,同时考虑到JAXB的技术需要用XML的Schema进行对象和XML之间的关联,本系统采用XML的Schema对元数据的格式进行描述。

    数据元数据最主要的作用是通知适配器各数据源将存储到哪个数据表中。数据类元数据的 Schema包含了属性、字段、主键、外键、索引等信息,其中,唯一索引或主键是帮助流程引擎判断是否需要启动更新处理的操作行为。

    流程元数据是用于描述数据处理流程的行为信息,主要包括“从什么地方读?怎么读文件?怎么写文件?写到什么地方去?”等内容。设计的 Schema分类包括工作(Job)、步骤(Step)、适配器(Tasklet、Reader、Processor、Writer)等。其中,Job用于描述一个入库流程,1个步骤(metastep)包含1个任务节点(metatasklet),1个任务节点包含阅读器(metareader)、处理器(metaprocessor)、写入器(metawriter)3个元素。对于专用适配器采用Tasklet,一旦有了Tasklet的适配器就不再配置Reader、Processor和Writer了。在阅读器中,path属性用于约定读取路径,metaregex元素设定的正则表达式用于文件名的处理,一方面设置文件名的动态读取方式,同时用于提取出文件名中包含的信息,metavalidator进行格式验证,metaruler负责告诉阅读器如何读取内容。处理器主要用于将已读取的数据进行数据处理变换,其主要包含 2个内容,metarule告诉处理适配器如何处理内容,metavalidator主要用于验证处理的内容是否符合要求。写入器通过 path和 name配置,实现写入目录和文件名的智能匹配处理。同时通过metavalidator对写入操作进行验证。

    4.2 智能适配器

    智能适配器由按照数据流的某一方向串联不同的信息组件所组成。在智能适配器中,将数据源抽象为阅读适配器(Reader),将目标(destination)抽象为写入适配器(Writer),将处理抽象为处理适配器(Processor),其逻辑结构如图2所示。其中,阅读适配器可以根据不同的数据来源,分为读取文本文件接口、读取二进制文件的接口、读取数据库的接口等;处理适配器根据业务逻辑,分为数据验证接口、数据运算接口、数据分解接口、数据合并接口、数据转换接口等;写入适配器可以根据不同的数据目标,分为写文本文件接口、写二进制文件的接口、写数据库的接口等。

    图2 智能适配器的逻辑结构

    智能适配器至少由1个阅读器和1个写入器组成。为了简化系统复杂性,将信息输入源与信息输出源限定为一对一的关系,每个组件可以包含零个或多个信息通道,且每一个节点均可以自由组合,大大提高了数据入库的灵活性。适配器组件之间的关系与管理由数据流程引擎控制。

    智能适配器的运行机理是:以数据流程为主线,以配置代替编程,以功能组件代替整体程序方式,使系统紧凑、灵活和易于扩展。

    (1)通用的数据入库包含典型的抽取、转换、入库3个过程,Reader主要负责典型数据抽取,利用不同类型的Reader抽取不同的数据,利用正则表达式读取不同的文件,同时利用Validator验证抽取数据的有效性,利用脚本描述读取文件内容的方式和规则。Processor代表数据转换,利用不同类型的 Processor进行数据转换,利用 Validator验证转换数据的有效性,利用脚本来描述转换内容的方式和规则。Writer主要负责入库这个数据过程,利用Converter将原始数据转换成实际写入的数据类型,利用脚本描述写入文件的方式和规则,利用Validator验证写入数据的格式有效性。

    (2)针对处理流程中每个处理步骤,都会有相应的异常控制,保证一个步骤的异常不会对另一个处理步骤造成影响。

    (3)将一个处理流程封装成一个事务,使用 AOP技术进行事务控制管理。如果某个数据流程出现异常,事务管理器将会对之前的处理进行回滚。

    智能适配器运行机理见图3。

    图3 智能适配器运行机理

    5 结束语

    本文研究了智能适配器技术,并基于该技术,设计开发了一套具有标准化、灵活性、易扩展的气象数据入库通用模型。基于该通用模型,构建了包括阅读适配器、处理适配器和写入适配器的气象数据通用入库系统,减少了开发工作量,提高了运行效率。基于智能适配器的气象数据入库通用模型不仅对气象数据的快速入库具有较强的应用价值,还可应用在数据备份、数据归档等业务中。


     
    (文/小编)
    打赏
    免责声明
    • 
    本文为小编原创作品,作者: 小编。欢迎转载,转载请注明原文出处:https://2024.dingdx.com/news/show.php?itemid=3457 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。
    0相关评论
     

    © Copyright 深圳市鼎达信装备有限公司 版权所有 2015-2022. All Rights Reserved.
    声明:本站内容仅供参考,具体参数请咨询我们工程师!鼎达信作为创新真空产品研发制造商,我们提供海绵吸具,海绵吸盘,真空吸盘,真空发生器,真空泵,真空鼓风机,缓冲支杆,真空配件,真空吊具等等产品

    粤ICP备17119653号