自动站资料在MS SQL SERVER数据库中的CIMISS数据定制
2020-09-02张慧卿陈传振李赛楠
李 莉,张慧卿,陈传振,李赛楠
(山东省济南市气象局,山东 济南 271100)
1 CIMISS数据定制的提出及必要性
山东省CIMISS系统投入业务运行后,观测与网络处要求各业务单位加强CIMISS资料应用,做好C0IMISS本地化开发、应用及特色数据入库工作。无锡区域自动站客户端软件具有界面友好,统计方便的特点,是预报员和人影业务人员进行气象服务的一件利器,并且我单位某些业务系统是从无锡区域站中心站数据库中获取数据,但数据库中获取的是原始数据,未经质控,如果从CIMISS中定制自动站数据到本地MS SQL SERVER数据库中,既解决了无锡所开发的区域自动中心站客户端的CIMISS数据应用,又解决了以MS SQL SERVER数据库为数据源的自建业务系统的CIMISS数据获取,并且实现了大监站和区域站数据在同一个数据库中的统一实时显示,保证了数据应用的准确性和区域站客户端软件使用的持续性。
2 CIMISS数据在MS SQL SERVER数据库中定制的进展情况
杨凤琼等[1]提出采用C#语言开发楚雄州自动气象站采集系统,将楚雄州自动气象站数据从CIMISS 中实时下载到本地MS SQL SERVER数据库,涉及到的数据表为tabHourData,使用CIMISS资料为中国地面逐小时资料。
鲁玲等[2]提出按时间、站号检索地面数据要素,获取北海地面逐小时资料,实现自动气象站观测数据本地入库存储。
仅有小时数据,区域站中心站的客户端某些统计功能无法实现,并且降低了服务时效。由于目前分钟数据在CIMISS库中是通过中国地面分钟降水资料、中国地面分钟压温湿风资料和中国地面分钟其他资料3个文件来分散存储的,因此再进行合并入库时对于开发者尤其是不熟悉区域站中心站数据库表结构的人员具有一定的难度。
江苏省无线电科学研究所有限公司开发的一款软件,有效解决了这一问题,以下是实现方法和测试情况。
3 实现方法及测试情况
通过获取CIMISS系统中的中国地面小时数据和分钟数据到无锡中心站数据库的相关数据表中实现客户端的读取访问。
3.1 测试环境
服务器配置为64 G内存,CPU Intel Xeon E5-2630 2.2 GHz,1T硬盘,操作系统采用了Windows2008 R2 SP1,数据库系统采用了MS SQL SERVER 2008 R2,该服务器同时并行有其他业务,但不占用MS SQL SERVER数据库的默认端口号。
3.2 安装数据获取程序
数据获取程序采用了江苏省无线电科学研究所有限公司开发的SMOS地面气象观测监控管理平台软件来实现,该软件采用JAVA语言开发,它的一大特点是不同种类的任务可以互不干扰的同时运行在一个平台上[3],测试版本smos-task-platform-v4.0.0-Current。
该软件的功能是可以实现从数据库到数据库、数据库到文件、文件到数据库以及文件到文件的数据迁移。数据库同时支持无锡新版中心站数据库和老版(专业版)中心站数据库。
3.3 配置要点及步骤
3.3.1 首先在MS SQL SERVER数据库系统中挂载一个与中心站数据库数据结构相一致的空库,空库可以由无锡厂家提供。
通过运行数据库管理工具Microsoft SQL Server Management Studio,连接到包含默认数据库的服务器实例,在[对象资源管理器]窗格中展开服务器下的[数据库]节点,通过附加或还原数据库命令,挂载一个具有同区域自动站中心站数据结构一致的空数据库,数据库名以AWS为例。
为保证数据结构一致,所建立的数据库的版本必须与区域站中心站的数据库版本相一致,目前无锡中心站的数据库版本为3.5.7。
3.3.2 smos-task-platform-v4.0.0-Current运行及配置[3]数据库建立好以后,运行smos多任务平台软件,该软件直接解压运行即可,无需安装,双击start-task-platform.exe,可启动dos运行窗口,并显示smos 多任务平台的设置和操作界面。
3.3.3 建立数据获取任务
①点击运行界面上的车轮样的菜单按钮,将弹出任务菜单,选择创建任务。
图1 SMOS操作界面
②根据需要选择SMOS数据迁移任务。
图2 SMOS任务种类
3.3.4 设置数据迁移的各项参数
①配置数据写入方信息
在数据写入方信息下的菜单项中选中“数据库类”,然后点击右侧的“设置”项(图3),在弹出的界面中进行写入方数据的详细配置,其中数据库类型在这里应选择无锡所数据库(专业版),然后数据库类型选择“SQLServer”数据库,根据实际情况填写要写入的数据库(即先前挂载在数据库系统中的空库)的地址、端口号、数据库名、数据库安装时的sa用户名及口令等参数(图4)。
图3 SMOS数据迁移任务配置界面
图4 数据写入方配置界面
②配置数据读取方信息
在数据读取方下的菜单项中选中“CIMISS数据源”,然后点击右侧的“设置”项,在弹出的界面中进行读取方数据的详细配置,在这里需要输入CIMISS数据源的地址、API用户名及口令(图5)。
图5 数据读取方配置界面
③配置写入数据类型信息
以上两步配置成功后,写入数据类型信息项会自动显示常规数据,点击右侧的设置项,进行数据库表的选择,如图6,除了Aws_Minut_Rain_Real表在专业版数据库中不再使用不被选择外,其余16张表都应勾选。检查数据唯一性在这里不要勾选。
图6 写入数据类型信息配置界面
④其他设置信息
在其他设置信息中,进行数据读取间隔的设置、数据读取时间的设置和选择台站的设置等(图7),在“选择台站”的弹出界面中,设置所需要调取数据的台站号,台站号也可以从文本文件中导入。如果把时间设置往后延长一段时间,则实现实时读取CIMISS数据库中分钟数据,时间为北京时。
图7 其他设置信息界面
⑤扩展设置
在数据库写入方和读取方配置完成且有效后,写入数据类型信息项会显示常规数据,同时,主界面上将会增加扩展设置选项。
根据需要设置站点的冬季降水是否停用。
3.3.5 应用中需注意的一个问题 利用中心站客户端访问时,会出现客户端数据不显示的情况,原因是挂载的空库里面的站号表是空的,因此需要把原来中心站的台站信息表复制到挂载的空库中,涉及到的站号表有stationpar,collectorpar和collectoralarmpar。
3.3.6 建立数据库登录账户和数据库用户 通过创建数据库登录账户和数据库用户来满足客户端对所建数据库AWS的访问。
①运行Microsoft SQL Server Managerment Studio,展开服务器-安全性-登录名节点,右击选择新建登录名。有两种方式创建登录名,一种是创建Windows登录账户,另一种是创建SQL Server登录账户,可以根据需要来选择创建方式。
②创建登录名后,打开SQL Server Management Studio,展开服务器-数据库-AWS-安全性-用户节点,右击选择新建用户,为数据库创建用户,指定到创建的登录名。
3.3.7 测试及应用情况 运行至今,软件进行数据库读写访问正常,区域站客户端访问CIMISS定制数据库正常,人影系统访问CIMISSS数据库正常。数据读取方面有一个需要注意的地方是当风速为0,风向为静风时,在CIMISS库中是将静风表示为“999017”,而该软件读取“999017”到本地专业版数据库中时,采用了将静风设置为空值的方式。
数据获取具有较好的入库机制。整点数据等待降水资料和逐小时资料两张表中的当前时次数据全部到达CIMISS数据库后获取到本地库,分钟数据等待降水资料、压温湿风资料和其它要素资料3张表中的当前分钟数据全部到达CIMISS数据库中后获取至本地库,数据实现了谁先到达谁先入库,将图7中的延迟执行设置为10 s,能较好的满足数据及时入本地库的需求。
数据获取具有补调机制,整点数据的补调时间是24 h,分钟数据的补调时间是1 h。如果发生某一时次数据在补调时间内未能获取到本地库,在保证CIMISS库中有数据的情况下,可以使用SMOS软件建立任务进行任意时间和时次的数据补调。
①在本地区域站客户端应用CIMISS定制数据库及与读取原始数据库对比情况。在图8的CIMISS定制库中,合并了大监站54828的数据。
图8 CIMISS定制库2019年6月28日05—15时雨量统计情况
图9 原始库2019年6月28日05—15时雨量统计情况
②在莱芜人影作业指挥系统中的应用。M、H、TT显示的数据分别读取自分钟数据表tabminutedata中的R1M(1 min雨量,目前无1 min数据),R1H(1 h雨量累计值)和TT(气温)字段。
图10 2019年6月28日人影系统应用局部站点图
③客户端升级到1.6.5版本后对整点以来分钟数据的应用。客户端升级到1.6.5版本后,通过菜单项数据查询导出—数据导出—多站数据导出,可以查看本地所有站点整点以来的分钟数据。由于目前数据采集间隔为5 min,因此可以5 min为步长修改查询时间,该功能可用于重大天气过程中对雨量数据的实时监控。
图11 台风“利奇马”过境时莱芜2019年8月11日06时01分—06时55分的雨量统计
4 小结
事先建立好MS SQL SERVER的数据库环境,先挂载一个与无锡区域站中心站数据结构相一致的空库,将区域中心站的站点信息复制到这个空的数据库中,通过SMOS多任务平台创建指定站点和时间的数据获取任务,就可以把CIMISS数据库中的小时和分钟数据获取到这个本地的MS SQL SERVER空数据库中,实现无锡区域站中心站的CIMISS数据定制。
5 思考及建议
①采用这种方法建立的数据库,具有可重复性、可指定时间段和站点、灵活高效的特点,但是对于已经建立好的数据库进行操作,应注意数据库操作和应用安全,建议一是考虑建立相对独立的数据环境,由熟悉数据库的技术人员来操作,并规范操作流程;二是为不同的访问用户设置不同的登录名和数据库用户,最小化使用数据库访问权限;三是考虑CIMISS定制库是否可以建立在省级的虚拟资源池上。
②目前CIMISS中没有台站状态信息的数据资料,如果能增加台站状态信息的话,会有利于台站维修人员判断台站状态,提高设备监控的自动化水平。状态信息包括主板温度和电源电压,能否设定设备故障的预警阀值,当高于或低于预警阀值时,可判断为设备故障,存储故障信息。只存储故障信息,一是可以节省存储空间,二是可以提取故障信息及时通知保障人员。