近年来油田信息化建设迅速发展,现有系统形成的“信息孤岛”严重阻碍着油田信息化的发展。数据仓库是面向主题的、集成的、稳定的和随时间变化的数据集合。它以传统数据库技术作为存储数据和管理资源的基本手段,以统计分析技术作为分析数据和提取信息的有效方法,以人工智能作为挖掘知识和发现规律的科学途径,通过对原有数据进行抽取、转换、加载形成真实、全面、统一的数据。因此,构建一个以数据仓库系统为核心的综合数据中心平台能大大提高油田应用信息化水平。
1.数据仓库系统设计
1.1总体描述
构建油田数据中心涉及海量数据信息,既包括历史数据,又包括油田生产实时监测数据。数据仓库的建设应该支持油田生产经营的各个方面,包括地质勘探、油藏分析、油气运输、经营管理等。采用分层结构“自底向上”构建数据中心平台,系统数据流程为从源系统抽取数据,进行数据转换后加载数据仓库中,然后由多维分析工具多层次分类成有效信息,与数据挖掘工具有机结合,最后通过可视化工具将分析结果呈现给用户。
1.2系统功能设计
结合油田生产实际情况,油田数据仓库的体系结构如图1所示。从图中可以看出,整个数据仓库的总体架构共分为源数据层、数据整合层、数据仓库管理层以及数据应用层4部分。
源数据层主要是油田各业务系统数据库;油田业务涉及到多方面的数据源,如勘探数据、地质数据、油气运输数据等。此外还要考虑很多外部数据源,如物料价格等。所有这些数据存储在不同区域、不同部门的异构数据库中。源数据层收集、统计这些异构数据库,并明确各个数据
库数据的具体用途,进行数据来源信息的登记管理。数据整合层进行数据的抽取、净化、转换等操作,并将处理后的数据加载到数据仓库;数据处理是一个存储区,装载维度表和事实表,为输出到数据集市做好准备。由于各个数据源采用的组织形式和操作系统平台的不同,可能造成数据不一致的问题,因此在构建数据仓库时必须用数据迁移工具通过专门的数据接口对数据源进行提取、转换、清洁,然后按照一定规则集中到数据仓库中,从而保证数据的一致性。
图1 基于数据仓库的数据中心体系架构
数据仓库管理层负责数据仓库和数据集市的管理与维护。数据仓库实现对预测主题和信息的存储与综合;预测执行完成后的结果存储在数据仓库中,形成决策信息库。如探井随钻分析,就可以把随钻分析的决策点信息存入到数据仓库中,和其它已存人数据仓库的地质数据信息进行综合分析,得出最优的钻井设计方案,提高生产措施的有效率。引入数据集市是因为通过将数据仓库和数据集市分离的方法,可以使数据仓库集中精力解决数据整合和清理等问题,而数据集市则致力于为特定的决策过程提供服务。
数据仓库在数据源和直接面对决策支持过程的数据集市之间形成了一个缓冲,数据集市可以面向一个优良的数据仓库来建设,数据源的变化可以不直接影响到数据集市。
数据应用层通过数据挖掘工具和联机分析处理工具,完成用户的决策处理任务;并通过问题的分析与综合、查询分析、管理维护等方式实现用户与系统的动态交互。建设数据仓库的最终目的,是让油田业务系统的管理人员能够方便地使用数据仓库这一集成的决策支持环境以获取有价值的信息,从而能对油田实际生产提供对策支持。因此,数据应用层要求提供界面友好、功能强大的交互界面。考虑到油田先进的局域网络,基于数据中心采取B/S方式,通过Web服务器为各客户端提供服务。
2.数据仓库的数据抽取及清洗
2.1数据抽取
数据抽取需要在项目调研阶段做大量的工作,首先要清楚数据是从哪些业务系统中来,各个业务系统的数据库服务器运行什么DBMS,是否存在手工数据及数据量大小,是否存在非结构化的数据等等。当收集完这些信息之后才可以进行数据抽取操作的设计。
数据抽取通常按照以下几种情况进行:
(1)与数据仓库的数据库系统相同的数据源处理,数据库管理系统(SQL Server,Oracle)会提供数据库链接功能,在DW数据库服务器和原业务系统之间建立直接的链接关系就可以写Select语句直接访问。
(2)与数据仓库的数据库系统不同的数据源处理,数据抽取可以通过ODBC的方式建立数据库链接,如SQL Server和Oracle之间。如果不能建立数据库链接,可以有两种方式完成,一种是通过将源数据,通过工具将数据导出成.txt或者是.xls文件,然后再将这些导出文件导入到ODS中;另外一种方法通过程序接口来完成。
(3)增量更新处理,增量更新是比较难处理的,对于数据量大的系统,必须考虑增量抽取。一般情况,业务系统会记录业务发生的时间,我们可以用来作为增量的标志,每次抽取之前首先判断ODS中记录最大的时间,然后根据这个时间去业务系统取大于这个时间所有的记录。一般情况下,业务系统没有或者部分有时间戳。
根据数据应用层的需求,数据抽取操作要进行相应的变更;通常情况下,数据抽取选择在用户的非工作时间进行,以免影响系统的效率。
2.2业务数据清洗
数据仓库作为油田数据中心项目的主要组成部分,是面向主题的、集成的、稳定的且随时间不断变化的数据集合;而实际业务系统中有可能存在着大量的噪声数据,引起的主要原因有:滥用缩写词、惯用语、数据输入错误、重复记录、丢失值、拼写变化等。为了清除噪声数据,必须进行数据清洗。
业务数据清洗是一个反复的过程,不可能在几天内完成;只有不断发现问题,解决问题。对于是否过滤,是否修正一般要求系统客户确认;对于过滤掉的数据,写入Excel文件或者将过滤数据写入数据表,在ETL开发初期可以每天向业务单位发送过滤数据的邮件,促使他们尽快修正错误,同时也可以作为将来验证数据的依据。数据清洗需要对于每个过滤规则认真进行验证,并要求系统用户确认。经过清洗之后的数据,在整个数据中心平台中才是有价值的数据。
3.结束语
油田数据中心平台的建设是一个庞大的系统工程,是一个逐步完善的过程,需要来自不同业务部门人员的共同参与和努力。文中对数据中心建设进行了架构设计,给出了数据仓库ETL的具体实现。基于数据仓库构建油田数据中心平台,能够进一步促进油田信息化建设水平,增强油田各业务部门之间信息共享和数据综合利用能力,为建设“数字油田”提供技术支持,为企业建设数据中心提供参考。