APP下载

基于XML文件的“存储过程模型”在民航气象结构化数据集成存储中的应用

2018-07-31房云龙赵铁成潘江勇

科技视界 2018年11期

房云龙 赵铁成 潘江勇

【摘 要】为高效集成存储航空气象结构化数据,提出一种基于XML文件的“存储任务模型”。根据气象数据的特点,“存储任务”分为“数据收集”、“格式转换”和“集成存储”三个子任务,提取子任务处理过程中所有的参数作为XML文件的元素标签,以一定的方式集中整合。“存储任务”与XML文件一一对应,便于增加、改变、删除不同类型的数据存储。利用基于XML文件的“存储任务模型”,可以方便的设计程序完成不同类型结构化数据的存储,提高了存储程序的可移植性和可扩展性。

【关键词】XML文件;存储过程模型;民航气象;结构化数据;集成存储

中图分类号: TP316 文献标识码: A 文章编号: 2095-2457(2018)11-0104-003

DOI:10.19694/j.cnki.issn2095-2457.2018.11.044

0 引言

民航气象数据是开展航空气候统计评估及进行航空科学研究的基础,是推动航空气象科学发展的原动力。存储民航气象数据对提升航空预报的准确率、开展典型历史个例全面分析、建立数值天气预报产品的统计释用、建立多源气象探测数据融合系统等工作具有十分重要的意义。

民航气象数据具有数据量大、时效性高、种类丰富的特点。目前,部分机场民航气象部门存储数据还处于手动存储阶段,计算机存储数据也多为“单独程序负责单独数据”的状态,扩展性和移植型较差,还没有一套系统、完善、同时便于预报员操作的自动化存储过程。因此,有必要开展民航气象数据存储技术方面的工作,为气象科学研究及业务建设提供数据基础。

民航气象数据可分为结构化数据和非结构化数据[1]。结构化数据也称作行数据,由二维表结构来表达和实现数据逻辑,严格地遵循数据格式与长度规范,可以通过关系型数据库进行存储和管理[2]。很多民航气象数据是标准的结构化数据。本文以青岛机场民航气象数据为例,介绍了一种简易的基于XML文件的“存储过程模型”,以系统集成的存储民航气象结构化数据。

1 青岛机场结构化气象数据

目前青岛机场可以获得的结构化气象数据包括民航数据和中国气象局数据两大类。其中民航数据有机场自动观测系统数据(AWOS)、自动气象站数据(AWS)、航空器气象数据下传(AMDAR)、机场风廓线雷达数据、民航飞行气象情报等。中国气象局数据包括:常规地面、高空探测数据、青岛市自动站数据、青岛市气象局风廓线雷达数据、山东省自动站数据、山东省闪电定位数据等,具体见表1。

2 基于XML文件的“存储过程模型”的建立

XML(EXtensible Markup Language,可扩展标记语言),是一种用于标记电子文件使其具有结构性的标记语言。XML主要用来传输和存储数据,通过XML技术,数据能够存储在独立的XML文件中,以纯文本格式进行存储,提供了一种独立于软件和硬件的数据存储方法,可以在不兼容的系统之间轻松地交换数据[3-4]。

鉴于XML文件的优势和特点,本文以XML文件为基础建立数据“存储任务模型”。存储任务是指在计算机进行存储数据过程中,按照一定的顺序、方式、逻辑、自动完成某种类型数据收集、格式转换、集成存储的过程。每种类型数据的存储都唯一对应一个存储任务,每个存储任务又唯一对应一个XML类型的属性文件。

所有“存储任务”对应的XML文件根元素统一命名为。数据存储是不断重复固定动作的过程,定义存储任务的工作频率,以标示并作为一级标签。数据存储任务包含数据收集、格式转换、集成存储三个子任务,因此XML文件根元素下对应着三个一级标签,分别命名为

2.1 数据收集

数据收集是指按照指定时间间隔、次序和遴选逻辑从原始数据源获取数据的过程。青岛机场原始结构化气象数据为位于不同服务器的文本文件,可采用ftp方式实现数据收集工作。这样在下,建立二级标签,用于描述FTP数据传输需要的参数包括(FTP服务器IP地址、用户名、密码、远程目录、包含或不包含通配符数据原始文件名、删除原始文件),数据收集子任务还需指明原始文件本地存储目录及本地文件名,分别以作为的二级标签标示。数据收集子任务标签结构如表2所示。

2.2 格式轉换

结构化资料的原始数据是大量结构固定的文本文件,不同类数据具有不同的文件格式和更新频率。原始文件缺测数据各不相同,转换后统一定义为-99999;不同行数据之间统一以“回车换行符”分隔。为便于集中处理,定义基于csv格式的dbcsv格式文件。csv是一种通用的文本文件格式,通过逗号分隔存储表格数据,但csv不是单一的、定义明确的格式[4-5]。为方便处理, dbcsv的统一格式为:所有文件均为ASCII文本文件,后缀名为dbcsv;文件内容第一行为数据列名,对应将来数据入库的表的字段名,第二行之后为数据;所有列和数据之间以tab分隔。dbcsv本质也是csv文件,但规范更加严格,是集成存储方案中重要的临时数据格式。经格式转换后的dbcsv文件严格地遵循数据格式与长度规范,便于解析文件内容并将数据存储到关系型数据库保存。

在格式转换过程中,一级标签包含“原文件缺测值”,“新文件缺测值”,“行分隔符”,“字段名”等二级标签,分别以标示。其中< fieldName>是标签集合,对应着本类数据具体的字段名,同时也是后续数据入库保存时的表的字段名。

2.3 集成存储

集成存储子任务主要进行数据入库管理。青岛机场气象台以MySQL作为存储数据库,因此集成存储子任务中各参数设计以符合MySQL规则为依据,具体标签结构见表3。

数据库地址、库名、表名等即为入库存储的数据库对应的信息,“新建表频率< createTableFrq>”提供两种选择,即按月建表或按年建表。如果气象数据每年的记录数在500万以下,选择按年建表,否则选择按月建表。例如amdar数据每年的记录数超过2000万,为保证查询效率,选择按月建表。“增加表主键”表示是否为表增加一个具有MySQL数据库“not null”和“auto_increment”属性的列作为主键。“表字段”是表字段属性集合,包含的三级标签涵盖了MySQL数据库表的常用属性,例如字段名、字段数据类型、是否可空、是否建立索引等。

3 存储任务模型的应用

基于XML文件的“存储任务”模型是一个XML类型的单独文件,其内容包含了数据收集、格式转换及集成存储全过程的所有信息。XML文件是w3c(万维网联盟)推荐的存储和传输数据的标准格式,与程序及数据库无关,主流的编程语言如Java、C、VS、python等都支持XML机制,可以方便的加载XML内部信息。由于“存储任务”和XML一一对应,且XML是单独的文件,因此可以通过增加、改变或删除XML文件实现增加、改变或删除数据的存储,提高了数据存储程序的可移植性和可扩展性。

需要指出的是,本文介绍的“存储任务模型”,是数据存储的创建模型,并非物理实现数据存储。用户可以根据实际需求,按照模型的流程进行编程实现数据存储,也可以整合既有的数据存储工具,实现任务的集约化。

4 结束语

本文介绍了一种简单方便的基于XML文件的“存储任务模型”,用于集中存储民航气象领域中大量的结构化数据。根据气象数据的特点,“存储任务”分为“数据收集”、“格式转换”和“集成存储”三个子任务。三个子任务在模型中分别对应着实现其功能的各项参数,以XML标签方式体现。利用基于XML文件的“存储任务”模型,可以方便的设计程序完成不同类型结构化数据的存储,提高了存储程序的可移植性和可扩展性。

【参考文献】

[1]王若曈,黄向东,张博.罗兵海量气象数据实时解析与存储系统的设计与实现[J].计算机工程与科学.2015,37(11):245-2054.

[2]潘顺,金遠平,欧阳晔.结构化数据到XML数据的语义映射[J].东南大学学报(自然科学版).2002,32(3):331-334.

[3]孙永丽,刘成新.XML技术及其应用[J].中国电化教育,2002,19(3):115-117.

[4]赵艳妮,郭华磊.基于XML异构数据库迁移技术研究[J].计算机与数字工程.2018(1):129-133.

[5]李金,利用CSV格式将新生数据录入ILASII的快捷方法[J].图书情报导刊.2015(12):148-149.

[6]吴庆晨,周伟,孙江艳.基于条件选择的CSV文件数据挖掘算法研究[J].电脑编程技巧与维护.2017(11):54-56.