多年来,随着石油勘探开发信息化建设的发展,不同的油气公司根据不同的业务需要,建设了无数的业务应用系统,同时也建设了无数的业务数据库。数据库建设的前提是根据业务需要,构建数据的业务模型和物理模型,传统的方法是:①业务分析调研(石油业务人员);②数据库结构设计(软件技术人员);③物理表建立(软件技术人员利用数据库工具);④输出数据字典(输出到office,再业务整理);⑤将字典与业务人员审核修改后又重复一轮所有工作。
在实际建模过程中,业务人员没有数据库思维,软件技术人员无法彻底理解专业性非常强的石油专业数据,造成沟通上的困难,最终做出来的模型也总是打了折扣;因此需要一种业务人员能够建模的石油数据模型的建模方法及工具。
传统的数据库建设一般只是立足于某一块业务,是一个个独立的烟囱,石油的勘探开发生产涉及到的业务面很广,现在的油气公司都在做数据统一平台建设,例如建设数据湖,想利用数据湖技术对历史的数据孤岛进行数据整合。
数据湖解决了一些问题:①解决了统一技术平台的问题;②解决了数据统一管理的问题;③解决了业务系统集成的问题;④解决了业务组件沉淀的问题。但是它本质上只是将应用数据库建得更大更全,建设数据库的方法和传统的方法没有根本区别。
同时,现在这种数据管理应用方式在建模时也有很大的局限性:① 缺少一套适用于所有油公司的统一的数据建模标准,会导致前期/后期,不同服务商建立的模型不一致;② 做数据整合时,需要不停地增加物理表,最终将湖无限扩大,也不可能管理到所有的石油数据,运维的难度大;③数据存储依赖物理模型,缺少业务背景信息及业务关系描述;④很难知道站在石油地质理论角度,到底管理了哪些数据,缺少哪些数据;⑤很难构建真正意义上的知识图谱,无法满足未来应用。
通过对多年的石油信息化工作进行总结,我们发现所有的石油数据都是伴随业务工作产生的,用户在一个业务节点,一定会产生一个业务数据类型。而根据石油地质理论及行业规范,能够按照既定的几大维度,梳理出所有的业务节点,也就是说能够提前建立好一个业务坐标体系。摒弃传统的通过主外键去关联数据的方式,通过业务坐标关系去定位和查询关联数据。
同时,我们结合不同的项目建设,积累对不同油气公司的业务数据内容的定义,然后抽提总结出一套能够适用于不同油气类型,不同业务环节,不同油气公司的通用统一数据字典。业务人员根据业务需求,建立业务节点,选择数据字典里的标准数据字段,即可快速完成一张业务数据表的创建。
在建设业务坐标体系时,我们划分了五大维度:
对象域:每一个业务数据都必须依存于一个业务对象,业务对象是指石油业务中的工作组织单元或者工作对象;业务对象类型即按照一定的标准将业务对象进行分类的集合。
业务域;按照石油勘探开发时间维度,划分到工作阶段,每一个工作阶段有明显的边界,并且每个工作阶段有相对固定的成果,不同的业务域不能有工作交叉,只能有先后顺序。
工作域:以在一个时间节点上,划分为多少种工作性质来划分,例如主要分为作业、研究、管理、经营等。
业务过程:业务过程是指一项具体工作的工作节点划分。这个工作环节可以分为多个层级,一个业务过程基本包含几个要素,一是工作顺序,二是技术方法,三是工作目的。
专业域:不同的技术方法或工种,可以按照油田实际工作岗位来划分。
建模步骤:
第一步:分别定义五大维度(五条坐标轴)的刻度;
其中,每个维度都是树形管理方式,能够自动编码,记录有子父级关系和先后顺序;
第二步:分别定义五大维度的刻度之间的关系,通过枚举的形式,排列组合一一去标记;
第三步:建立有关系的五大维度的不同级别刻度,通过后台自动生成组合为一个个的业务节点,同时管理工具提供修改维护功能;
第四步:将业务积累梳理的对数据字段定义用的枚举附录值(代码)表进行统一管理;
第五步:将业务积累梳理的对数据字段定义用的量纲表进行统一管理;
第六步:将业务积累梳理的对数据字段的属性定义,结合附录量纲表,进行标准化管理;
第七步:业务人员结合业务模型定义的业务几点,选择新建所需的业务数据集;业务数据集即可定位到业务坐标体系中;
第八步:维护业务数据集的具体数据内容,只需挑选标准数据字段即可;
三、如何通过模型,推导出理论应该有哪些数据
根据石油地质理论,所有的数据都是产生于某个石油勘探开发业务过程,石油数据模型是指一个石油数据与其对应的石油勘探开发活动及对象的对应关系。因此,通过该对应关系即可计算出理论数据的多少。其主要步骤如下:
①在石油数据模型的基础上建立模型各维度间的关系,维度两两之间需要建立相关或不相关的关系。(设:对象域刻度为bo、业务域刻度为bd、工作域刻度为bw、作业流程刻度为bp、专业域刻度为ds)。
②假设五维度间,任意两维度间的刻度均相关,从每个维度中取出一个刻度进行排列组合,即可获得最大的理论数据集。业务节点sn={bo , bd , bw , bp , ds}
③按照石油地质理论,并不是所有的刻度间均能建立相关关系,因此,需要将不能建立相关关系的刻度从理论数据集中去掉。假设对象域的〖bo〗^'和业务域的〖bd〗^'不相关,则〖bo〗^'和〖bd〗^'不能同时在业务节点中出现,即:[〖bo〗^' , 〖bd〗^'] ⊄ {bo , bd , bw , bp , ds}。
④遍历理论业务节点集合sn,将不能同时出现的刻度队从理论业务节点集合sn中删除,即可获得实际的业务节点集合〖sn〗^'。
⑤每个业务节点上都有且至少有一个成果数据,即可活动理论上的成果数据集合。
流程图如下:
四、如何通过模型,对数据的虚拟整合及标准化处理提供支持
数据虚拟整合有以下三个步骤;
步骤A:建立节点模型;
步骤B:数据结构映射;
步骤C:数据资源注册;
以上,首先需要依据已存在的业务模型,建立M1节点模型实例,包含字段X、Y、Z,绑定维度1、维度2、维度3、维度4;其次,假设有整合S1系统、S2系统数据的需求,对此分别配置S1表到M1、S2表到M1的字段映射关系;最后,通过数据资源注册,生成M1节点实例数据M1S1(来源为S1系统,数据为:a1、b1、c1、d1、d2、d3、d4)和M1S2(来源为S2系统,数据为:e1、f1、g1、d1、d2、d3、d4),提供标准化数据供第三方使用;
五、如何通过模型,构建知识图谱
石油数据模型是构建石油知识图谱的本体,在其基础上可以构建石油数据模型的整个概念图谱。构建石油数据模型概念图谱的步骤如下:
①获取维度实体。概念图谱的实体包括:五维度的刻度值和业务节点。五维度刻度根据石油业务的实际流程进行建立。
②获取业务节点实体。业务节点根据五个维度和维度关系系统自动产生(具体流程参考【根据石油数据模型推导理论数据的方法】)。
③获取维度刻度的内部关系。维度刻度的内部关系根据石油业务的实际流程建立。系统直接从数据库中获取。
④比较五维度的刻度间关系。主要包括如下过程:a、读取两个业务节点的五维刻度。b、比较对象域刻度关系,从数据库中读取两个刻度的关系,包括:空间包含、空间被包含、空间交叉、非空间关系、对象等。c、比较业务域的关系,从数据库中读取两个刻度的关系,包括:时间关系、父子关系等。d、比较工作域的关系,从数据库中读取两个刻度的关系,包括:并列关系、父子关系等。e、比较作业过程域的关系,从数据库中读取两个刻度的关系,包括:并列关系、父子关系等。f、比较专业域的关系,从数据库中读取两个刻度的关系,包括:替代关系、包含关系等。
⑤根据五个维度的刻度关系,得到业务节点和业务节点间的关系。(业务节点和业务节点间在不同维度会存在多个关系。)
⑥绘制石油数据模型概念图谱关系图。
五、总结
通过侏罗纪公司的业务建模方法进行建模,有以下这些优势:
①可以基于石油地质理论和行业规范,建立一套通用于所有油气公司的石油数据描述模型;
②能够由业务人员(非软件开发人员)直接进行建模,不需要数据库建设相关的专业技能;
③依托建好的数据模型,能够快速生成石油数据知识图谱;
④依托建好的数据模型,能够提供数据标准去做数据的虚拟整合;也可以生成物理库表,快速建设小型的应用系统;
⑤通过维度刻度的关系计算,能够推算出理论上应该有多少石油行业数据;
⑥提供了石油数据的业务坐标体系,能够快速定位,找到关系数据,为未来的应用也提供了无限可能。