浅析国产数据库在电网中的应用
2016年1月26日 16:09 作者:lunwwcom李少勤 王晓磊 桑凯
(新疆信息产业有限责任公司 新疆乌鲁木齐 830001)
摘要:文章介绍了国产数据库在国产安全电网运行控制系统中的应用情况,列举了国产数据库结合电网调度业务的特点,针对数据库通用访问接口、超多列表支持、超多列表数据快速更新等功能进行的适应性改进,最后总结分析了国产安全电网运行控制系统的规模化应用对国产数据库的未来发展所起到的促进作用。
关键词:数据库;国产关系数据库;应用改进
0 引言
电力系统是关系国计民生和国家安全的重要基础设施,电力行业的特点以及电力系统的运行复杂性使得电力生产高度依赖于电网运行控制技术。随着我国电力工业的快速发展,特大互联电网快速形成,电网形态、运行特点和调度模式发生了重大变化,原有的电网调度自动化系统已经不能适应大电网安全稳定经济运行的需要,迫切需要横向集成、纵向贯通的新一代电网运行控制系统。
追溯国产数据库行业发展史,我们可以看到,国产数据库厂商普遍起步较晚,同国外数据库厂商相比,无论是投入的资金,企业的规模,人才队伍,管理水平,等等都存在一定距离。但是每一个新事物的发展都是由小到大,逐步成长的,国产数据库也不例外。
细数国内数据库厂商,早期的有华中理工大学的达梦、北京大学的CoSQL、航天科工的神舟、人民大学的金仓、东北大学的Openbase等都是目前主要的国产数据库产品,以科技部“十五”863数据库重大专项为契机,国产数据库得到了前所未有的发展。“十一五”期间,随着国家核高基重大专项的开展,国产数据库形成了达梦、金仓、神通三大品牌为主流的格局。在国家的扶持和国产数据库厂商的努力下,国产数据库在政府、军事、教育、公安、金融、电力、商业、交通、制造业等行业都得到了应用。
由于我国数据库技术起步较晚,近年来的发展主要是追赶国外数据库技术的脚步,虽然国产数据库技术在不太长的时间内,在多方共同的努力下,取得了较大的进展,在功能与性能上已经能够与国外同类产品一较高下,但总体来说与国际水平仍有差距,国产数据库必需寻求发展我国数据库技术的合适道路,力争在不太长的时间内,把国产数据库技术推向一个新的水平。在技术方面,与国外数据库相比,国产数据库最大的优势就是拥有自主知识产权,在安全性方面得天独厚。此外,国产数据库在性价比、产品可定制性和售后服务方面更有优势。
国产数据库目前主要有达梦、金仓、神通三家,从技术角度来说,在产品功能和性能上各有千秋。其中,在传统事务型数据处理领域,以及海量数据处理、集群技术、安全技术上达梦具有一定优势;在分析型数据处理上,三家处于同一水平。总体来说,在国产数据库中,达梦的产品成熟度和品牌影响力略优于同类产品。
随着国家“核高基”重大专项课题的相继实施,包括关系数据库、操作系统、服务器和网络设备在内的一大批国产基础软硬件产品近年来得到了全面和深入发展,在功能、性能、可靠性、安全性、易用性等各方面都获得了一系列重大突破。鉴于此,国家电力调度通信中心组织国内业界顶级科研制造单位,基于上述“核高基”成果,研发并实现了具有完全自主知识产权并可控的“国产安全电网运行控制系统”,并在局部试点的基础上开展了规模化应用,提高了国家电力调度中心驾驭特大电网的能力,进一步完善了电力二次系统纵深安全防护体系。该系统的研发对确保电网安全稳定运行、保障国家安全和社会稳定具有重大而深远的意义。
本文介绍了以达梦数据库管理系统为主要代表的国产关系数据库管理系统在国产安全电网运行控制系统中的应用情况,详细介绍了国产关系数据库管理系统结合电网调度业务的特点,针对数据库通用访问接口、超多列表支持、超多列表数据快速更新、双机互备及故障切换、数据同步、ETL异构库表级镜像同步等功能进行的适应性改进工作,最后分析了国产安全电网运行控制系统的规模化应用对国产数据库的未来发展所起到的促进作用。
1 关系数据库的特点
关系数据库是以关系模型为基础的数据库,它由包含数据记录的多个关系数据表组成。关系数据库通过对这些关系数据表的筛选、连接、合并或统计等运算来实现数据的管理。关系数据表是一个二维数据表结构,用于表示关系模型中的一个关系,通过关系表不仅能描述关系模型中的实体本身,还能反映实体之间的联系。
关系数据库的主要特点是建立在严格的数学概念的基础上,概念单一,实体与实体间的联系都用关系表示,其数据结构简单、清晰,数据冗余低、存取路径对用户透明,故有更高的数据独立性和更好的安全保密性。
关系数据库是电网运行控制系统存储电网模型、设备参数、历史数据以及统计数据的载体,既是系统的数据存储中心,也是电网运行控制系统众多分析计算的基础。电网运行控制系统业务逻辑复杂,应用数据种类繁多,数据量大,对关系数据库提出了很高的功能和性能要求,需要关系数据库能够长期稳定而高效的运行。
2 国产数据库在电网中的应用
作为支撑智能电网的核心应用,国产安全电网运行控制系统平台采用先进的软件开发技术,具有标准、开放、可靠、安全和适应性强等特点,系统功能包括:对电网安全运行状态实现监控;对电网运行实现经济调度;对电网运行实现安全分析和事故处理。
在国产安全电网运行控制系统中,国产数据库的地位如图1所示。
图1 国产数据库在电网运行控制系统的地位示意图
一方面,国产关系型数据库因其具有完备的数据管理能力、良好的建模易用性、极高的安全性和数据可靠性,可以作为实时控制类应用、调度计划类应用和调度管理类应用的主数据库,为国产安全电网运行控制系统建设提供数据存储和管理支撑,可以满足国产安全电网运行控制系统因为业务逻辑复杂、需存储多个应用的数据所导致的数据种类繁多、数据量大等需求。另一方面,国产关系型数据库还具有完备的数据备份恢复手段,支持物理备份、逻辑备份、完全备份和增量备份等多种数据备份和恢复方式,支持数据复制功能,可以实现数据镜像、异地灾备等功能。
通过国产安全电网运行控制系统的试点及推广,国产数据库初步实现了在该系统中的规模化应用。在实际使用中,国产数据库厂家充分发挥了自主可控的巨大优势,凭借雄厚的技术实力,能够提供优质的原厂技术服务工作,保证了对问题实现快速的定位及解决。
3 国产数据库在电网应用中的改进
在国产安全电网运行控制系统的建设过程中,国产数据库针对电网调度业务的特点,进行了数据库通用访问接口、超多列表支持、超多列表数据快速更新、双机互备及故障切换、跨区数据同步、ETL异构库表级镜像同步等相关功能的适应性改进。数据库产品在效率、安全性、可靠性等方面得到了很大的提升,有效推动了国产数据库在电力领域的应用。
3.1 数据库通用访问接口DCI
国产安全电网运行控制系统需要支持达梦等多种关系数据库管理系统,通过数据库通用访问接口DCI,可以实现多种数据库对应用软件的统一接口支持,增强国产数据库的兼容性和易用性,加强相互操作的能力。该接口实现了接口统一,可以方便的增加新接口,易于扩展,同时也和其他商用数据库厂家接口高度兼容,代码移植工作方便快捷。
国产数据库实现了对数据库通用访问接口的完全支持,在数据类型、语法格式、访问接口、各类命令行格式等方面初步做到了和国外数据库,以及国产数据库之间的相互兼容。该功能已经在国产安全电网运行控制系统中得到使用,通过使用DCI接口访问数据库,上层应用不需要关心具体的数据库类型,实现了数据库的透明访问。
3.2 超多列表支持
国产安全电网运行控制系统的历史数据服务模块会对电网的量测数据进行一分钟周期的采样并存储。在表结构设计上,每列数据存储一分钟的采样数据,每天共1440分钟,这就要求数据库需支持超过1440列的超多列表。而国产数据库中的数据是以页为单位存储的,表中单行记录长度不能超过页大小的一半。由于上述限制,改进前的国产数据库单张表允许的最大列数为1024列,无法满足电网运行控制系统的设计需求。
国产数据库通过修改内核实现了对超多列表支持的适应性改进。具体措施是对传统单表列数的限制算法进行调整,在表记录长度不超过页大小一半的情况下,动态计算表中列的最大个数,最大支持列数扩展为2048。为防止表中列数增加以后对数据库的性能带来负面的影响,国产数据库在功能模块上进行了优化,使得改动只涉及到语义解析和记录存贮模块。在语义解析中,增加列哈希表,优化如何快速定位出语句中使用的列名对应的信息;在记录存贮模块,需要扩展记录能支撑的最大列数,增加列链表,优化表的元组和物理记录之间的快速相互转换。扩展后的国产数据库系统支持表中允许定义的最大列数,既不会影响和改变现有数据库的使用,也不需要增加额外的配置。
对超多列表的支持功能已经在国产安全电网运行控制系统中的历史数据管理模块中得到应用,实现了历史数据存储的设计效果,可支持的最大量测点数量及采样周期均比之前的电网运行控制系统有了很大的提升。经过近两年的使用和磨合,其稳定性也得到了验证。
3.3 超多列表数据快速更新
国产安全电网运行控制系统的历史数据服务模块会对电网的量测数据进行一分钟周期的采样并存储。需采样的量测数据量很大,采样周期频繁,对数据入库的性能提出了很高的要求,需要满足一分钟之内在1440列的超多列表中保存30万个量测数据的需求,如果一分钟之内数据不能保存完毕,就会影响下一周期的量测数据正常采样。
针对上述需求,需要研发全新的国产数据库超多列表快速更新方法,满足数据保存的性能要求。该方法对应用完全透明,应用层不需做任何改动,数据库服务器收到更新的SQL语句后,会进行语法分析,自动甄别符合快速更新条件的语句,隐式调用快速更新模块进行处理。经过比对测试,在使用快速更新功能时,20万个采样数据可在2秒之内完成入库操作,而不使用快速更新功能则需要16秒。目前该功能已在国产安全电网运行控制系统中实际使用,在目前已投运的各个实际工程环境中,采样数据入库时间最多不超过3秒,实践证明超多列表快速更新功能完全可以满足电网运行控制系统的采样数据入库性能要求。
3.4 双机互备和故障切换
国产安全电网运行控制系统作为电网调度的核心系统,对数据的安全性提出极为严格的要求。为了防止极端灾害的发生对数据的破坏,又不影响运行系统的性能,从容灾的角度出发,国产数据库需要提供双机互备功能,实现数据的实时备份和实时的故障转移。整个过程由程序自动控制,不需要人工干预,应用程序通过服务名的方式访问数据,实现故障切换对应用的透明。
主、备数据库服务器相互探测,一旦探测到另外一台数据库服务器故障,根据本机当前状态,进行相应的模式切换;并在故障数据库服务器恢复工作后,自动同步历史数据和模式切换。采用此方案,需要确保交换机本身的可靠性,一旦交换机出现故障,将导致数据库服务器无法对外提供服务。典型应用场景如图2所示。
图2双机互备和故障切换应用场景示意图
国产数据库的双机互备方案已实际部署到国产安全电网运行控制系统的多个工程中,在实际使用中运行情况良好,通过了实际工程的考验。
3.5 跨安全区的数据同步
国产安全电网运行控制系统网络架构分为I、II、III区。为了保证I、II区数据的安全,I、II区与III区架有网络隔离装置。I、II区与III区单向端到端IP可达,即I、II区IP包可达III区的数据库,但III区只能给I、II返回二种bit流,全0或是全1。如果通过数据库级实现同步则需要针对该隔离装置对数据库的通信方式进行改造。另外,在同步的内容上面,需要实现DDL,DML语句的同步。此外,III区有自己独立的业务系统,对III区数据库的内容进行独立的维护,这样就需要实现可配置的数据库同步对象,且III区的数据库能够对外提供访问功能。
在实施改造之前,数据库系统采用的是国外数据库,无法实现数据库级的同步,只能由上层应用开发实现同步功能,同步效率及容错处理方面效果不理想,无法保证数据一致性。国产数据库厂商综合考虑国产安全电网运行控制系统的应用需求,充分发挥自身原厂技术优势,对产品进行适应性改进,设计增加了数据库异步复制解决方案。该方案如图3所示,可以实现I区和III区异步数据的同步,即在I区上的操作会生成逻辑日志,III区根据该逻辑日志,做与I区同样的操作,保证I区和III区数据的同步。
图3异构复制架构示意图
通过上述方案的实施,国产安全电网运行控制系统实现了数据库层级的数据同步,显著提高了数据同步效率及容错处理能力。经过测试,异步复制功能可在8秒钟内实现10万条更新操作同步,即在I区数据库完成10万条更新操作8秒之内,全部的操作可同步到III区数据库中。目前异步复制功能已在国产安全电网运行控制系统的各工程项目中实际部署使用,经过近两年的使用和磨合,该功能运行情况稳定可靠。
3.6 ETL异构库表级镜像同步
数据同步是在一定的时间范围内,通过特定的技术方式,实现异构数据库之间的数据一致性。数据同步是ETL的一个典型应用领域。ETL提供了多种数据同步方式,包括全量和增量数据同步。为了保证能够平稳的完成从OPEN-3000或CC2000向国产安全电网运行控制系统的升级,提高电网运行控制系统的稳定性,降低用户同时维护两套系统的难度,需要实现两套异构系统的模型数据同步,具体而言就是要实现从原有系统的Oracle数据库到国产数据库的异构数据镜像同步功能。
出于对稳定性和效率的综合考虑,国产数据库异构数据镜像同步功能选择了MD5比对增量同步方式,并使用ETL创新性的实现了表级境像同步方案。表级增量同步区分了最近一个周期内,源数据中发生了变化的表和未变化的表,只对变化表进行增量同步。表级境像增量方式既保证了原有系统的运行稳定,又实现了模型数据同步的高效,大幅提高数据同步的效率。
该方案实现了原有系统模型数据与国产安全电网运行控制系统模型数据的同步,具有跨平台数据同步、自动同步、准实时同步、增量同步、同步规则可灵活配置等功能。经过实际测试,原有系统与国产安全电网运行控制系统完全增量同步一次EMS库耗时8分钟左右,对原有系统中单个表的修改同步到国产安全电网运行控制系统中平均耗时30秒左右。目前ETL异构库表级镜像同步已在华东网调、山东省调、重庆市调、浙江省调、江苏省调、安徽省调、山西省调等国产安全电网运行控制系统试点项目中实际部署,经过近两年的使用和磨合,该功能运行情况稳定可靠。
4 国产数据库在电网中的发展
通过上述改进,国产数据库产品很好满足了国产安全电网运行控制系统的各项技术要求,为该系统成功的完成试点并实现大范围的推广应用提供了基础条件。这些试点和推广应用反过来也极大的促进了国产数据库产品自身的发展,主要表现在以下两个方面。
1)促进国产数据库提升功能性能、提高安全可靠性
国产数据库厂家针对电网调度业务的特点,进行了相关功能的定制开发,使得国产数据库在效率、安全性、可靠性等方面得到了提升。
2) 促进国产数据库增强兼容性、改进易用性、实现数据迁移
实现了国产数据库和国外数据库,以及国产数据库之间的相互兼容;易用性已大幅提高,初步达到了国外主流数据库的水平;实现了与国外数据库以及国产数据库之间的数据相互迁移;提高了国产数据库和国产软硬件之间的适配能力和集成能力。
国家电力调度通信中心在国产安全电网运行控制系统中对国产数据库产品的大力支持和大范围推广应用也进一步表明国产数据库已经具备了支撑国家重要行业领域关键核心业务的能力,激发了国产数据库厂家自主创新的动力和信心,树立了国产数据库的品牌形象,扩大了国产数据库的市场份额,取得了良好的经济和社会效益。并为实现国产数据库的产业化发展,创造了有利的条件。
经过十年多的努力和发展,我国的数据库技术水平有了较大的提高,已经从十年前的学习、理解、试探发展到消化、改造、创新,但在市场竞争中,国产数据库要想实现有效地突破,仍然面临不少问题:
1、用户群数量不足,市场对品牌的认知度还不够——规模化发展
国产数据库主要功能、性能指标已接近或达到国外同类产品的水平,有自己的创新和特色,能满足大多数用户的应用需求。但是和国外厂商相比,国产数据库在品牌影响力方面差距仍然很大。用户群集中在相对小范围内的专业圈内,还没有广泛形成行业或者领域的优势。由于可参照的成功案例不多,相当多的用户还心存疑虑,很多对国产数据库产品技术感兴趣的用户也在实际项目中采取观望态度。
作为基础软件,数据库也有自己的发展规律。只有经过各种应用环境的实际检验,产品才能逐步完善,达到成熟稳定的目标。国产数据库目前发展的瓶颈在于市场上的机会不足,用户群数量增长缓慢。
在新的产业模式下,以大集团为龙头,整合各家企业的资源,建立信息共享的工作机制,这无疑会给包括数据库厂商在内的各个成员单位增加很多新的项目机会。此外,从特定行业入手,在核心业务系统中大规模产业化应用,也是非常务实的策略。在满足特殊领域的刚性需求的同时,也保证了整个产业链运作的投入产出。
2、单一产品VS解决方案——整合并购
从最终用户的角度而言,关注的重点在于整体解决方案是否能够满足其业务需求,而非某个独立的产品。因此在实际项目中,提供整体解决方案的厂商能决定基础软件产品的选型。在很多行业内,国外厂商都能够提供完整的解决方案,这样在一些项目选型过程中,国产数据库经常面临单一产品与整体解决方案的竞争局面,很难取得到最终用户的认可。
通过整合与并购可以有效解决了这个问题。系统内的各个企业通过资源整合,能够发挥1加1大于2的效应,针对特定行业,形成具有竞争力的整体解决方案。各个企业互相支持,避免单打独斗而被各个击破。
3、技术服务体系的建设成为发展的瓶颈——技术服务体系建设
对一个成熟产品而言,技术服务的重要性不言而喻。近年来,随着国产数据库产品成熟和发展,在市场上的应用范围也日益广泛。在发展的过程中,全国范围内市场服务体系的建设相对滞后,这也影响了国产数据库在产品化推进过程中的速度。
国外数据库厂商非常重视技术服务团队的建设,技术服务的精英团队是公司业务扩张的基础。从专业分类而言,行业咨询顾问、培训师、性能调优师等都是这个领域的高端人才,须要较长的成长周期。作为正在起步阶段的产品公司,国产数据库还没有建立全国范围全面内的技术服务体系,很大程度上制约了产品的产业化推进。
在国内市场,国外厂商的短板是缺少核心研发技术团队支持。国内厂商应该依托自主创新,掌握核心技术,为本地用户提供优质服务,从而加大竞争中的技术优势。在新的产业模式下,我们可以探讨这样一种可能性:依托集团北京成熟的网络体系,发挥各个企业的地域优势,在较短的时间内建立起有效的技术服务体系。
4、没有形成统一的产业链,国内企业间的合作关系非常松散——打造产业链
平台性的解决方案涉及到硬件、操作系统、数据库、中间件等各个构件,这是一个庞大的产业链。国产平台目前还是一种松散耦合的结构,不能很好的发挥合力。相关企业间的合作偶然性成分很高,缺乏规划性。而国外企业在这方面已经有了非常成熟的合作模式,个别巨头已经控制了完整的产业链。
在市场压力下,国内企业的合作大多局限在工程项目中。产品间的兼容性做了很多工作,但是深层次的合作和技术挖潜却很少涉及。很多全国产的系统试点其实仅是表象,只是在技术上解决了兼容性问题,把各个构件组合在一起而已。
新的产业模式下建立的公共平台,使得各个国产厂商能够在统一的规划下,制定中长期的工作计划,相互之间有了进行深层次技术合作的机会。
以实际工作中常见的性能优化问题为例,解决问题的最佳方案往往不是单一产品的优化,公共平台的建设正是为此类问题的解决提供了重要的基础。从技术角度而言,国产厂商间可以通过接口开放和定制对整个系统进行优化。即使单一产品和国外厂商还有差距,我们也能提供更加优秀的整体解决方案。
5、国外产品先入为主,形成事实标准——技术壁垒突破与形成
国外数据库厂商在国内数据库市场上已形成了垄断之势。他们利用先手便利,形成了自己的事实标准。国内用户总是习惯于拿国外主流数据库产品的功能、性能指标作为检验国产数据库的技术标准。更有甚者,国外产品的一些功能设计上的限制也被夸大为“使用规范”。在一些行业内,国外厂商的技术策略是引导用户使用产品的特性功能,形成用户对单一产品的技术依赖性。
对于这种情况,国产数据库的应对策略是组织专门的研发团队进行兼容性功能扩展,目的是减少用户学习的代价,降低系统迁移的成本。但是在实际工作中,还是对一些行业内已形成的技术壁垒感到力不从心。
在国家政策大力支持的背景下,针对特定行业核心应用领域内迫切的信息安全需求,提供安全、高效、可靠的整体解决方案。在新的产业模式下,以整体解决方案为基础,推动行业技术标准的建设,使得我们在今后的工作中取得主导权。在业界新的技术发展潮流中,我们也能拥有自己的话语权。
6、国内市场需求驱动
微型数据库是需要大力发展的产品方向,可以有多个企业同时面向不同的领域/行业开发具有差异性的产品。
大型通用数据库复杂、投入大,应该集中力量突破高性能的对象关系数据库产品,其他新的特征可以先通过第三方中间件的方式提供。
不管是那种数据库产品的开发,都需要与行业应用开发捆绑,提供数据库与应用一体化的、有排他性的解决方案,占领相应的行业市场,然后才得以生存发展。