基于气象数据收集分发系统的RDBMS设计分析
2020-01-12周永吉孟祥龙
周永吉,黄 博,孟祥龙
(1.黑龙江省气象数据中心,黑龙江 哈尔滨 150030;2.呼兰区气象局,黑龙江 哈尔滨 150500)
1 引言
气象数据收集与分发系统简称CTS,是全国气象数据在传输与共享过程中的主体承载系统, 不但承担从基层台站到省级节点再到国家级节点的纵向通信业务,也承担省际之间的数据传输共享业务,这使得其中衍生的气象观测数据及各尺度产品在量级上呈现指数倍增长,对后台数据库的压力与需求巨大,传统的数据存储管理技术力有不逮, 因此建立在RDBMS(关系数据库管理系统)基础上的合理设计显得尤为重要[1]。 在数据库整体设计上,对于收发信息、节目表、处理日志、用户信息、管理信息、统计信息以及各种数据字典等,采用RDBMS 进行存储,RDBMS设计的好坏直接关系到系统执行的效率和系统的稳定性。 在软件开发过程中,数据库设计应遵循必要的数据库范式理论,以确保数据的一致性与完整性,同时也要适当增加冗余,达到以空间换时间的目的,提高数据库的运行效率。
2 RDBMS分布式管理
在数据收集分发系统数据库的总体建设上引入了Oracle 关系数据库技术, 关系型数据可以满足气象数据以及各类日志数据、 信息数据在子数据库的结构层面能够保持清晰的逻辑关系, 同时在面向用户的过程中又能完整呈现。 在前台用户的眼中,Oracle RDBMS 的存储架构是不可见的, 是一个整体,因此对于软件层面的调度完全可以看做是对单一数据库的操作, 而实际上后台的多个子库则在Oracle RDBMS 的合理设计下协调运作,保证子库间相对独立安全的数据环境,从而可以做到逻辑严密、架构清晰、协调统一、安全独立。
3 设计原则与容量评估
针对气象数据收集与分发系统, 考虑到气象数据的特殊性,在RDBMS 设计中需要遵守如下几条原则:
(1)在名称设计上,数据库、表、索引等命名要体现气象要素的规范性, 从整体设计上制定统一规范,并沿用全国, 在面向各级分系统工程师的过程中要有对应的详细说明,以满足部署和运维需求。 表名分为两个部分,中间以下划线分割。 第一个部分分四种类型,分别为 TB(业务表)、TW(监控表)、TD(字典表)、TS(统计表)。 第二个部分对数据表的具体功能描述,功能分割用下划线。索引的命名为IDX_表_字段缩写(字段 1,字段 2……)。
(2)在设计数据的过程中,应当分析选择适用的设计工具。
(3)详细调研分析业务特征,对数据库进行合理分区。 并进行必要的表单拆分,预估出合理的表单调用频率,拆分设计。 同时优化索引算法[2]。
根据数据收集与分发系统的业务特点以及各种信息在数据库中的存取频度、存储生命周期、数据的稳定性等属性, 同时也为了增强数据库结构的可读性, 在设计过程中RDBMS 从逻辑上被分为4 个子库,包括:收发业务子库、配置与系统管理子库、系统监控子库、统计分析子库。
以收发业务子库为例, 其容量估算主要是根据需求阶段对进入数据收集与分发系统的数据量的调研,国家级CTS 每天约有200 万个文件收发。将数据表中每个字段的长度相加,得出每条记录的大小。 通过记录数和记录大小的乘积, 算出每个数据库表每天的存储容量, 收发业务子库每天产生基本数据55 G[3]。
同样的算法加以沿用可以估算出配置与系统管理子库产生基本数据为64 M, 系统监控子库每天产生基本数据9 G, 统计分析子库每天产生基本数据883 M。
根据以上对四个逻辑存储区域的容量估算汇总,平均每天增长的容量约为64 G,为了保证数据管理的性能,每月清除一次数据,这样数据库的存储容量为64G/d*30 d=1.9 T,按30%的冗余量,存储容量约为2.5T[3-5]。
4 结论
综上所述, 针对气象数据尤其是海量的观测数据以及数据产品,Oracle RDBMS 的存储架构可以有效解决逻辑管理和并发访问的业务需求, 在结构设计和容量估算方面加以合理分析, 可以大大提高访问效率, 从而实现数据收集与分发业务系统的高效稳定运转。