一种多数据源测井数据访问方法及系统 技术领域 本发明涉及测井数据的存储和管理领域, 尤其涉及多数据源的数据定位方法及数 据访问系统。
背景技术 石油工业是一种技术密集、 信息密集、 知识密集的行业。 石油勘探和开发的成功与 否依赖于对地下地质信息获取和利用的程度, 依赖于测井数据的全面性和准确性。 因此, 测 井数据是石油工业中至关重要的财富。
但目前对于测井数据的数据管理还没有一个统一的系统。目前, 国内测井数据具 有如下特点 :
1、 数据分布性 : 测井数据在物理上缺少统一、 集中的管理, 更多的还是根据数据的 来源分散在各地的多个数据库或 FTP 文件系统中。这就形成了测井数据的 “数据孤岛” 现 状, 导致测井数据的使用范围有限、 使用效率低下 ; 同时也缺少整体布局、 统一管理, 容易丢 失数据和数据之间的关联 ;
2、 数据异构性 : 测井数据的异构性表现在两个层次。首先是数据存储环境上 的多样性, 如存储在不同的操作系统或不同的数据库 ; 其次是数据格式上的多样性, 如 GDS(Geophysical Data Storage, 地球物理数据存储格式 )、 WIS(Well Information Standard, FORWARD 软 件 上 使 用 的 一 种 数 据 存 储 格 式 )、 CIF(common interchangeable format, )、 LDF(Logging Data Format, 中国石油测井有限公司的 Eilog 仪器的测井数据记 录格式 )、 XTF( 美国斯伦贝谢公司的 ECL IPS 5700 数控测井系统使用的数据存储格式 )、 WITSML(Wellsite Information Transfer Standard Markup Language, 井场信息传输标准 标记语言 )、 WellLogML(WellLogML 是一种为网络用、 对数字测井数据进行编码的规范标准 格式 ) 等。这些多样性为数据的统一管理提出了更高的挑战性。
要将这些测井数据管理起来, 提供对测井数据的管理、 查询、 曲线浏览、 成果图浏 览, 目前国内测井数据管理软件的通用做法是 : 1、 将其他数据源的测井数据导入到测井数 据管理系统中 ; 2、 如果测井数据的格式不是系统支持的格式, 需要将其它的格式的数据转 换为系统支持的数据格式。 而测井数据, 特别是成像测井数据, 其一口井的数据可能达到 GB 级, 以上述方法解决测井数据的分布性和异构性, 会带来数据的冗余存储, 浪费存储空间。 同时, 由于要进行测井数据格式转换, 给测井数据的归档和测井数据的管理、 测井解释软件 的开发带来巨大的工作量。
发明内容
本发明提供一种多数据源的数据访问方法及系统, 支持多数据源的统一数据定位 访问, 支持对不同格式的测井数据进行统一的访问。
本发明的目的之一, 提供一种多数据源测井数据的访问方法, 该方法包括 : 按照预 先设定的树形结构组织各数据源的测井数据 ; 接收用户的数据访问请求并根据树形结构生成数据定位串 ; 解析数据定位串确定待访问数据源的访问接口和数据对象路径 ; 根据数据 源访问接口和数据对象路径获取数据对象的数据描述信息和数据体信息 ; 根据数据对象的 数据描述信息和存储的数据模型的定义信息对数据体信息进行数据解析, 生成访问结果。
本发明的目的之一, 提供一种多数据源测井数据的访问系统, 该系统包括 : 至少一 个数据源, 用于按照预先设定的树形结构组织各数据源的测井数据 ; 测井数据统一访问接 口, 用于接收用户的数据访问请求并根据树形结构生成数据定位串 ; 数据定位模块, 用于解 析数据定位串确定待访问数据源的访问接口和数据对象路径 ; 数据源管理模块, 用于根据 数据源访问接口和数据对象路径获取数据对象的数据描述信息和数据体信息 ; 数据源解析 模块, 用于根据数据对象的数据描述信息和存储的数据模型的定义信息对数据体信息进行 数据解析, 生成访问结果。
为让本发明的上述和其他目的、 特征和优点能更明显易懂, 下文特举较佳实施例, 并配合所附图式, 作详细说明如下。 附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本 发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下, 还可 以根据这些附图获得其他的附图。
图 1 为本发明数据源内部存储结构 ;
图 2 为本发明多数据源测井数据访问方法的流程图 ;
图 3 为本发明多数据源测井数据访问系统的结构示意图 ;
图 4 为本发明实施例的数据源列表 ;
图 5 为本发明实施例中数据解析模块的框图 ;
图 6 为本发明一实施例的系统示意图 ;
图 7 为本发明实施例中 GDS 数据源的结构图 ;
图 8 为本发明实施例中 WIS 数据源的结构图。 具体实施方式
下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完 整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于 本发明中的实施例, 本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例, 都属于本发明保护的范围。下面结合实施例和附图对本发明进行详细描述。
在本发明的中, 各数据源内部测井数据按预先设定的树形结构方式来组织测井数 据, 如图 1 所示, 本发明实施例数据源中的数据按照 “根工区 - 子工区 - 井 - 井次 - 数据 集 - 数据对象” 的树形结构来组织测井数据, 其中工区为井的上层索引结构, 可以进行任意 嵌套, 工区可以对应到目录结构、 盆地、 凹陷、 构造、 油田等, 由数据源内部进行映射, 井即为 一个物理的井眼, 井次为该井下的一次或一套物理测量数据, 数据集为该井次下的所有数 据对象的一个聚类方式, 每个井次下提供一个缺省的数据集, 数据对象分为曲线 ( 常规曲 线、 阵列波形、 点测数据等 )、 表格 ( 解释结论、 地质分层、 成果表等离散数据 )、 流 ( 参数卡、绘图文档、 报告文档、 位图文件等 )。
在本发明实施例中, 数据定位串的定义为 “DS_Type:DS_ID//WorkspaceName/#Wel lName/*LogName.LogType/DataSetName/DaaObjName” , 其 “//” 为数据源与工区名称的分隔 符, “/” 为工区、 井、 井次、 数据集、 数据对象名称的分隔符, “#” 为井名称的前导符号, “*” 为 井次名称的前导符号, DS_Type 表示数据源类型 ( 例如 DataBase- 数据库, Remoting- 远程 文件系统, Localhost- 本机数据源 ), DS_ID- 数据源唯一标识, WorkspaceName- 工区名称 ( 可以嵌套 ), WellName- 井的名称, LogName- 井次的名称, LogType- 井次数据的格式 ( 例如 gds 表示 gds 数据格式、 Wis 表示 Wis 数据格式、 xtf 表示 xtf 数据格式 ), DataSetName- 数 据集名称, DaaObjName- 数据对象名称。
图 2 所示, 为本发明多数据源测井数据访问方法的流程图, 包括 :
步骤 S201, 按照预先设定的树形结构组织数据源的测井数据。
步骤 S202, 接收用户的数据访问请求并根据用户访问请求和树形结构生成数据定 位串。
步骤 S203, 解析数据定位串确定待访问数据源的访问接口和数据对象路径。
步骤 S204, 根据数据源访问接口和数据对象路径获取数据对象的数据描述信息和 数据体信息。 步骤 S205, 根据数据对象的数据描述信息和存储的数据对象定义信息对数据体信 息进行数据解析, 生成访问结果。
在本发明中实现多数据源测井数据的访问, 首先要对待访问的测井数据进行定 位。具体步骤为 :
根据数据源中测井数据的组织方式和接收到的用户访问请求, 生成数据定位串, 按 “数据源 - 根工区 - 子工区 - 井 - 井次 - 数据集 - 数据对象” 进行数据定位。其中, 最小 定位单位为数据对象, 上述定位串即为待访问的数据对象的全局唯一标识。
接收用户的访问请求, 根据用户访问请求中包括的数据源类型、 数据源 ID、 工区名 称、 井名称、 井次名称、 数据集名称、 数据对象名称, 按照数据定位串的定义 “DS_Type:DS_ ID//WorkspaceName/#WellName/*LogName.LogType/DataSetName/DataObjName” , 生成数 据定位串, 解析该数据定位串, 以 “//” 为分割符, 将数据定位串分解为数据源信息串和数据 对象定位串 ;
本发明实施例中, 通过数据源列表存储数据源类型、 数据源标识、 数据源访问接口 模块名称信息。 根据数据源信息串中数据标识和数据源类型, 获得数据源的数据访问接口, 通过数据源列表, 预先存储数据源类型、 数据源标识及数据源访问模块间的对应关系, 通过 查询数据源列表, 获得数据源访问模块, 从而获得数据源访问接口。
解析数据对象定位串, 获得工区路径、 井名称、 井次名称、 井次类型、 数据集名称、 数据对象名称, 确定数据对象路径, 在数据源内查找到对应的井次数据, 调用数据源数据访 问接口, 根据井次类型对应的数据格式信息对数据进行读取。以上详细描述了数据对象的 定位步骤, 对待访问的数据对象进行定位后, 根据数据对象的数据描述信息和存储的数据 对象定义信息对数据体信息进行数据解析, 生成访问结果并返回访问结构, 一次数据访问 过程结束。
本发明提供的数据访问方法, 能够是实现对多数据源的测井数据的全局唯一定
位、 访问, 能够根据定位信息获得数据源的类型、 访问的数据格式、 数据对象, 实现了对多数 据源的透明访问, 对各种数据源和各种数据格式测井数据的访问, 有效的降低了测井应用 的程序的开发的复杂性。
相应的, 本发明还公开了一种多数据源测井数据访问系统, 如图 3 所示, 为本发明 的访问系统的结构示意图。包括数据源访问接口模块 301, 接收外部的访问请求并统一调 度、 管理系统内的各模块, 数据定位模块 302, 对测井数据进行定位, 数据源管理模块 304, 用于对各数据源进行管理, 数据源访问模块 304, 用于访问各测井数据源, 数据缓存模块 305, 用于对数据访问获得的测井数据进行缓存, 数据缓存以数据对象为缓存的最小单位, 每个数据对象的缓存由数据对象描述信息缓存与数据体缓存构成, 所有数据对象以井次为 组织单位 ; 数据解析模块 306, 用于对访问获得的测井数据进行解析生成访问结果。
其中, 数据定位模块包括数据源列表, 用于存储数据源类型、 数据源标识及各数据 源的访问模块, 系统支持的所有数据源均存储在数据源列表中, 同时, 通过数据源管理模块 可以实现对数据源列表中的数据源访问模块的注册、 查询、 调用。如图 4 所示, 为一数据源 列表。
如图 4 所示, 数据解析模块 306 包括, 数据分析单元 3061 和数据模型存储单元 3062。根据数据对象的类型标识从数据模型存储单元 3062 中获得该数据对象的数据定义, 数据分析单元 3061 根据用户的访问请求, 对获得的测井数据进行分析处理, 生成解析结 果。数据模型中存储了数据对象的定义信息。 如图 6 所示为本发明基于多数据源测井数据访问系统的结构示意图, 本实施例中 实现了 GDS 和 WIS 两种数据格式数据源的测井数据的访问。该系统包括如下构成部分 :
数据访问接口模块 301 : 该模块直接与测井应用程序 60 进行交互, 接收用户的访 问请求, 负责调度系统内的数据定位模块 302、 数据源管理模块 303、 数据缓存模块 305 及数 据解析模块 306, 实现测井应用程序的数据访问。
数据源管理模块 303, 用于管理系统的各数据源数据访问模块, 该系统支持的所有 数据源存储在数据源列表中 ( 如图 4 所示 ), 数据源管理模块 303 提供数据源访问模块的注 册、 查询、 调用。
数据源访问接口模块 301, 接收测井应用程序 60 发送的访问请求, 生成数据定位 串, 并将数据访问后获得的访问结果返回给测井应用程序 60。
数据定位模块 302, 提供数据定位字符串解析功能和数据对象的定位功能, 通过解 析数据定位字符串, 获得数据源类型和数据源标识、 数据对象定位串 ;
数据缓存模块 305, 提供基于井次和数据对象的数据缓存服务, 数据缓存模块按照 数据对象 ( 曲线 / 表格 / 流 ) 为基本单位对测井数据缓存进行管理, 数据缓存管理模块维 护一个哈希表, 此哈希表以数据对象的全局定位路径为关键字, 支持数据对象缓存的快速 查询。
数据解析模块 306, 根据数据对象的类型和数据模型对测井数据进行解析, 数据解 析模块根据数据对象的类型标识从数据模型定义库 ( 即相当于数据解析模块 306 的数据模 型存储单元 3062) 中获得其数据的定义, 然后根据用户的访问需求对缓存中的测井数据进 行分析处理, 然后将数据返回。
本机 GDS 数据源访问模块 604, 实现对 GDS 测井数据的访问, GDS 数据源的数据按
照如图 7 所示的目录树结构进行数据的组织。
本机 WIS 数据源访问模块 605, 实现对 WIS 测井数据的访问, WIS 数据源的数据按 照如图 8 所示的目录树结构进行数据的组织。
下面以实际应用中的 GDS 数据源的访问为例详细说明基于多数据源的数据访问 系统。
以访问本机 GDS 数据源下 “鄂尔多斯盆地 \ 伊陕斜坡 \ 白豹油田 \# 白 68 井 \ 白 68a.gds” 井次中的缺省数据集 (.Default) 下的伽玛 (GR) 曲线为例进行说明, 该数据对象 位于本机的 “C:\Workspace\ 鄂尔多斯盆地 \ 伊陕斜坡 \ 白豹油田 \# 白 68 井 \ 白 68a.gds” 文件中, 其中 “C:\Workspace” 为本机数据源的根路径。
在本系统中按如下方式进行数据定位 “Localhost:LocalGDS\\ 鄂尔多斯盆地 \ 伊 陕斜坡 \ 白豹油田 \# 白 68 井 \* 白 68a.gds\.Default\GR” , 此定位串为该伽玛曲线在系统 中的全局唯一标识。基于此数据定位串的数据定位访问方法如下 :
1、 解 析 定 位 串, 获得数据源类型及数据源标识分别为 “Localhost”和 “LocalGDS” , 进一步解析获得伽玛曲线所在的井次相对路径为 “鄂尔多斯盆地 \ 伊陕斜坡 \ 白豹油田 \# 白 68 井 \ 白 68a.gds” , 所在的数据集为 “.Default” , 数据对象名称为 “GR” ; 2、 由数据源标识 “LocalGDS”查询数据源信息列表获得数据源信息, 数据源的 访问模块为 “DataNodeGDS.DLL” , 数据源为本地 GDS 文件数据源, 数据源的数据根路径为 “C:\Workspace” , 根据这些信息合成 gds 数据文件的路径 : C:\Workspace\ 鄂尔多斯盆地 \ 伊陕斜坡 \ 白豹油田 \# 白 68 井 \ 白 68a.gds ;
3、 调用 DataNodeGDS.DLL 数据访问模块访问对应的 GDS 数据文件中 “.Default” 数据集下的 GR 曲线。
在本发明的数据访问系统中数据访问的具体步骤如下 :
用户通过测井应用程序 60, 请求访问 “Localhost:LocalGDS\\ 鄂尔多斯盆地 \ 伊 陕斜坡 \ 白豹油田 \# 白 68 井 \* 白 68a.gds\.Default\GR” 数据对象。
数据定位模块 302, 按上述的数据定位方式对 GR 的定位串进行定位解析。获得数 据对象所在井次的 GDS 数据文件全路径名 (C:\Workspace\ 鄂尔多斯盆地 \ 伊陕斜坡 \ 白 豹油田 \# 白 68 井 \ 白 68a.gds)、 数据集名称 (.Default)、 数据对象名称 (GR) 及数据源访 问模块等信息, 并将这些信息返回给数据源管理模块 ;
数据源管理模块 303, 调用本机 GDS 数据源访问模块进行白 68a.gds 文件中 GR 曲 线的数据访问, 返回 GR 曲线的数据描述信息和数据体 ;
数据缓存模块 305, 首先以 GR 的定位串为关键字查询数据缓冲区, 若为初次访问, 未找到查询结果, 执行后续步骤, 并将此次访问的结果, 以 GR 的定位串为关键字, 将 GR 曲线 的数据描述信息和数据体写入缓存区 ;
数据解析模块 306, 根据 GR 曲线的数据描述信息和数据模型对缓存的该数据对象 的数据体进行数据解析, 获得解析结果 ;
数据访问接口模块 301, 将数据解析结果, 根据测井应用的请求按指定格式返回, 至此一次测井数据的访问过程结束。
本发明提供的多数据源测井数据的数据访问方法及系统, 能够是实现对多数据源 的测井数据的全局唯一定位, 能够根据定位信息获得数据源的类型、 访问的数据格式、 数据
对象。实现对多数据源的透明访问, 应用程序使用统一的数据访问接口实现了对各种数据 源和各种数据格式测井数据的访问, 有效的降低了测井应用的程序的开发的复杂性, 同时, 本发明的基于多数据源的数据访问系统, 具备多数据源, 多数据格式的扩展能力, 对于已经 存在数据源驱动模块的数据源, 通过简单的配置, 将新的数据源添加到系统的数据源列表 中, 并配置正确的数据源类型, 给定一个数据源 ID, 新的数据源即可被应用程序访问 ; 对于 不存在驱动的则需要开发相应的数据源驱动模块。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述, 以上实施例 的说明只是用于帮助理解本发明的方法及其核心思想 ; 同时, 对于本领域的一般技术人员, 依据本发明的思想, 在具体实施方式及应用范围上均会有改变之处, 综上所述, 本说明书内 容不应理解为对本发明的限制。