PostgreSQL在GeoEast多学科数据管理系统中的应用
2021-07-05师伟林茂春王向辉李军茹程实
师伟 林茂春 王向辉 李军茹 程实
(东方地球物理公司物探技术研究中心 河北省涿州市 072750)
1 引言
近年来,随着“两宽一高”(宽频带的激发震源,宽方位的观测排列,高密度的空间采样)[1]地震勘探一体化技术在人工地震采集领域的发展和应用,使地震数据采集量呈几何级数增长。目前,单一海洋或陆地工区的地震采集数据量已经高达数十TB 级,甚至数百TB 级。同时,随着历年地震数据采集和生产开发过程中的配套成果数据的积累,数据量级跃升至PB 级。海量勘探数据对于企业级数据库的存储管理提出了严苛的考验。
Oracle 数据库作为全球数据库产品最大供应商,占据着国内外许多核心行业的数据库市场。在国内地震勘探行业中Oracle9、Oracle10 等系列数据库产品提供了优质且昂贵的数据服务。但随着外部环境的变化(技术封锁、国外政策限制等)、市场监管的要求、以及开源、自研数据库的兴起等多种因素,地震勘探领域需要一款具有开源许可协议的、技术趋势开放先进的、性能指标接近Oracle的企业级数据库来应对PB 级海量勘探数据的管理。
2 PostgreSQL(PG)数据库
PG 数据库是加州大学伯克利分校开发的对象‐关系型数据库管理系统[2],是目前世界上最先进、应用最广泛的开源关系数据库,在全球互联网、能源、商业等多种应用领域都有成功示例,且展现出良好的应用效果。在国内多个核心行业和多家大企业的数据库产品中,PG 数据库或其衍生产品已经非常常见。其最具有商业应用价值的特点有以下三点:
2.1 开源许可
PG 数据库的许可协议是自由开源的许可(a liberal Open Source license)[3],能够在任何目的下免费使用、复制、修改和分发软件,且无须任何书面协议。在该许可协议下的直接应用或者二次开发产品不受技术封锁、版权或政策限制,对于商业集成有着天然的优势,为深度参与国际竞争的跨国性企业提供了良好的基础技术支持。
2.2 稳定可靠
PG 数据库是唯一能做到数据零丢失的开源数据库,也是最接近工业标准 SQL92 的查询语言,并且在逐步兼容最新的SQL 标准:SQL2003[4]。不仅许多互联网企业广泛地使用了PG 数据库,国内外银行、金融、交易等数据慎重型行业也在开始向PG 数据库转移,例如在商业交易系统中,苏宁基于“PostgreSQL+Citus”的大规模分布式应用。
2.3 社区活跃
PG 作为一款功能强大的开源许可协议数据库系统,由600 多位贡献者组成的团队,提交代码50000+次,截止目前为止PG 最新版本是13.1。在近5年时间内,平均每年升级一个大版本,更新迭代的频次接近于Oracle 数据库。同时,基于PG 的许多第三方开源软件,插件,扩展,中间件等项目层出不穷,极大的丰富了PG的功能,如PostGIS 地理信息扩展功能模块能够提供丰富且高效的GIS 服务,Greenplum、Citus、PostgreSQL‐XL 等项目支持了PG 的大规模分布式业务。活跃的开源社区和丰富的开源产品让PG 的发展空间更具有可持续性。
对于 PG 和Oracle 两款数据库目前石油地质勘探行业中应用特点对比如表1所示。
表1:行业应用特点比较
根据当前数据库技术的发展和国内外行业应用情况,PG 数据库是目前公认的Oracle 数据库的最佳替代方案。
3 GeoEast多学科数据管理系统
GeoEast 多学科数据管理系统作为GeoEast 地震处理解释一体化超大型勘探软件[5]的数据管理平台,是基于PG 构建的数据管理系统,给PB级海量数据提供了企业级的高效管理服务,同时为地震、地质、测井、油藏等领域的应用软件提供盆地级多学科数据共享服务。
GeoEast 多学科数据管理系统整体设计如图1所示。
图1:系统整体设计结构图
GeoEast 多学科数据管理系统实现了从业务数据对象到物理数据库的完整层次结构,根据多学科数据管理系统应有的内容和应具备的功能,将整体分为三层,由存储层、映射层、接口层构成。存储层是整个数据平台系统运行的物理基础,是具体存放GeoEast 系统存储和管理勘探数据的地方,由IO 节点、存储阵列、数据库、文件系统等组成,其中核心数据库采用的是PG。存储层针对地球物理计算的特点,通过配置适合勘探行业海量数据存储和访问的具有大容量存储空间、高网络带宽的IO 节点,为本行业海量数据提供足够的存储空间、高IO 带宽和高网络带宽,以满足勘探应用对海量数据的存储能力和吞吐能力。存储层在整体结构上为海量地震数据的高效处理解释提供了基础的物质条件,其中PG 为存储层提供了强有力的数据管理服务。映射层是整个平台系统的物理存储和数据对象的交换管理中枢。向上为应用软件提供统一的物理数据访问底层,通过屏蔽物理存储介质差异,从而简化应用实现,提高扩展性和部署灵活性,向下将应用软件提出的数据持久化请求进行响应,并将应用对象数据写入物理存储介质。通过开发统一的物理存储、数据交换和数据管理接口,管理整个系统的应用数据,确保其数据访问的灵活性。业务对象层是一个通用的数据对象和接口层,所有应用软件都通过对象层来访问或交换数据。它提供整个GeoEast 系统应用软件运行应用对象和应用接口,为了方便C 程序和Fortran 程序的访问,同时提供以C 语言开发接口。
4 PostgreSQL在系统中的应用
4.1 GeoEast多学科数据管理系统数据中心
数据中心采用的是(C/S)架构,服务端由数据库和文件系统构成,数据中心服务端架设在单独的数据节点上,通过对地震勘探数据的分类、组织、编码、存储、检索和有效维护,能够管理项目数据库也能够管理大规模成果数据库。GeoEast 系统勘探应用通过PG通信协议封装请求来访问数据节点获取数据。
数据中心的整体结构如图2。
图2:数据中心整体结构
数据中心的数据库存储空间是用来存储实体物理模型的,是信息世界的逻辑模型通过建模技术,转换为计算机世界的物理模型,该物理模型一共分为四个部分如图3,分别是用于管理的项目数据模型、用于存储用户数据的用户数据模型、用于规范GeoEast 系统数据取值的标准数据模型和用于确定当前模型版本信息的元数据模型。其中项目数据中管理着地震、地质、测井、油藏等多种领域的数据实体。
图3:数据中心物理模型图
4.2 业务对象封装
在数据中心的物理模型的基础上,结合PG 数据库系统的语法和SQL92 工业级SQL 标准的要求,而建立的一套可以在PG 数据库中建立各种GeoEast 数据类型的PG 数据库对象,如Schema、表、视图、列、主键、唯一键、外键、索引等。通过PG 数据库对象实现对地震、地质、测井、油藏等领域的数据对象进行业务封装,对PG 数据库对象的属性和特性开放出接口,并融合成有机的结构体系,统一的提供给应用开发人员。
4.3 应用接口针对性测试
GeoEast 多学科数据管理系统通常应用于大规模机群环境下,PG 数据库管理着海量地震勘探数据和配套成果数据的存储。在收集了用户使用过程中反馈的性能瓶颈和存在质疑的用户接口,针对上一代最新版本的基于Oracle 的数据接口和基于PG 的数据接口进行应用接口对比测试。基于不同数据库的数据管理系统的应用接口性能测试方案整体上是在华为II 集群进行对比测试,环境硬件配置如表2,软件配置如表3。
表2:集群环境硬件配置表
表3:集群环境软件配置表
4.3.1 数据组织
为了更好的检验PG 在GeoEast 多学科数据管理系统中的负载和性能,结合地球物理勘探数据存储和计算的特征,采用特殊的数据组织方法如图4,结合多学科数据类型、海量数据规模、复杂数据结构、多样化现场数据格式等实际产生模式下的数据特点,模拟出更贴近实际产生模式下的数据规模。
图4:数据组织流程图
对中国西北部某些石油勘探区域的项目数据进行评估,对探区面积、采集方式、地质环境等因素进行筛选,从中选出结构复杂、类型多样的基础数据样本,采取多次复制合并的操作,将不同数据量接规模的数据分别导入到PG 和ORACLE 数据库中,组合成一个规模庞大、各类型数据量级阶梯明显的测试数据中心,其各项数据类型的最大数据规模大于等于盆地级勘探数据规模。
4.3.2 测试设计
整体设计采用控制变量的白盒测试,在相同的软硬件条件下,对不同GeoEast 多学科数据管理平台(PG 新平台和ORACLE 老平台)功能相同的应用中实际使用的数据接口编写测试用例。测试过程中,不同平台数据规模,代码路径,计时范围基本一致。
测试过程中使用具有代表性的、多组阶梯数据量级的实际测试数据,分别在两个不同的平台上运行并记录相应时间。对高密度高精度数据类型采用批量轮询访问的方法,对部分成果数据采用均值来表示实际相应时间,最终分析基于不同数据库应用的多学科数据管理平台性能和效率。测试要求要符合以下5 条内容:
(1)测试结果要真实可靠;
(2)测试中用例选取应能够覆盖接口的全部功能;
(3)测试中用例能够体现性能效率方面的要求;
(4)测试逻辑能达到实际应用需求的标准;
(5)测试中以测试用例正常结束并符合期望输出作为评价标准来确定测试是否完成。
4.3.3 测试结果
测试结果如表4、图5,其中ORACLE 缩写为ORA。
表4:PostgreSQL 和ORACLE 应用接口对比测试结果表
图5:PostgreSQL 和ORACLE 应用接口对比测试结果图
测试结果表明,GeoEast 多学科数据管理平台基于ORACLE 和PG 的应用接口性能各有优势。在层位、断层、井等类型数据的应用接口有较好的表现,大体上能够和ORACLE 数据应用接口持平。但是针对多学科数据类型,海量数据规模,复杂数据结构的地震勘探数据,PG 对数据的组织管理仍然有优化空间。面对数据规模的快速递增,ORACLE 数据较为稳定,对数据规模递增变化较小。面对大规模密集读取请求时,PG 的性能需要根据对应的业务需求调整,以达到最优性能。ORACLE 能够按照业务量推荐出合理的参数。
PG 在GeoEast 多学科数据管理系统的成功应用,实现了应用接口性能提升、接口稳定、功能正确的情况下,使用PG 数据库成功取代了ORACLE 数据库,从而完全抛开了ORACLE 数据库的商业和技术限制。随着GeoEast 多学科数据管理系统持续的升级和优化,性能和效率将会不断提升,给上层应用提供更高效的数据服务。
5 结语
介绍一种开源企业级数据库PostgreSQL,采用一种通过企业级SQL 标准封装了多学科数据业务对象的方案,实现了对地震、地质、测井、油藏等领域数据的组织管理。基于PG 数据库在GeoEast 多学科数据管理系统的成功应用能够给石油勘探行业两点启示:
5.1 验证了PG开源数据库在石油地震勘探领域的应用
数据库作为石油地震勘探领域现代信息化软件的不可缺少的基础性软件,在商业数据库的行业冲击下,存在着商业成本高、销售政策限制、核心技术无法自主可控等问题。开源数据库的应用,完全避开了ORACLE 数据库的限制,给勘探应用软件提供了良好的商业价值。同时,针对石油勘探领域企业级数据库服务,PG 数据库给二次开发提供了完全自主知识产权和很高的商业潜在价值。
5.2 验证了PG数据库在PB级石油勘探数据的管理应用
面对日益发展的石油勘探技术所带来的勘探数据量级的跃升和油田大数据的应用[6],PG 以高可靠性,事务安全,兼容众多SQL标准等优势[7],管理了PB 级石油勘探数据。同时,PG 以活跃的社区和国内外丰富的分布式大规模应用解决方案,能够给规模在 PB级以上的地震勘探数据提供良好的解决方案。