基于元数据驱动的异构数据模型映射算法_袁满

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 ) 黑龙江省教育厅基金项目资助 ( 11541008 ) 。 1965 年 6 月生, 第一作者简介: 袁满, 男, 东北石油大学计算机与 信息技术学院, 教授。 收稿日期: 2011 年 4 月 28 日。 责任编辑: 戴芳天。
加大, 导致新的映射关系不断出现 , 传统方案只能不断增加或 者修改代码来适应这种情况 , 不但增加了维护的难度 , 且可能 用元数据描述映射模式的设计思 导致软件重新开发。然而, 路实现的数据转换系统具有以下优点 : ①具有良好的扩展性, 不同数据模型之间出现一种新的映射模式只需编写单独的转 配置函数接口及参数信息 , 定制对应字段间映射 换规则函数, , , 模式元数据后 即可使用新映射模式 不需要更改程序代码, 降低了工具开发复杂度的同时 , 提高了工具的质量。 ② 通过 构建用于映射模式 元数据形式描述数据库之间的映射模式 , 元数据模型实现数据转换过程 , 使得数据转换行为能够灵活 控制, 更易于维护。
1
1. 1
映射模式表示及算法
映射关系分析
[5 ]
存储相关数据的不同 映射关系 是指同一数据领域内, 关 系数据库数据 模 型 之 间 的 对 应 关 系 。 映 射 关 系 分 为3 个 层次: ①实体映射。反映了两个数据库概念模型上的差别 , 由 。 一个或多个属性描述 ②表映射。是实体映射的充分反映 , 为数据模型数据表 之间的对应关系, 在应用中表映射分为一对一映射 、 一对多映 多对一映射等情况, 对于多对多表交叉映射则可通过前 3 射、 种映射描述。 [6 ] ③ 属性映射 。 关系数据库中, 属性映射对应的是数据 。 是数据转换规则 表中的字段映射 它是映射关系的最底层 , 处理的最小单位。 了解进行数据转换的异构数据源的概念模型 , 以及数据 源数据之间的对应关系 , 将这种关系进行分类和细化 , 并且给 最终确定满足从源向目标库进行数据 出明确的定义和解释, 转换的数据映射模式。
1)
摘 要 为解决企业异构数据模型间的数据转换问题 , 构建了用于描述和存储映射策略的系列支撑元模型 , 并对各种映射模式进行了详细的定义 , 并实现了相应模式的映射转换算法 。 通过对 ETL 体系结构进行分析, 提出 了一种基于元数据驱动的通用数据转换体系结构 。这些技术已在中国石油大型数据中心数据转换项目中得到应 实现了开发数据库数据向统一的勘探开发数据模型 EPDM 的数据转换, 应用效果良好。 用, 关键词 数据转换; 元数据驱动; ETL; 映射模式 分类号 TP311 Data Mapping Algorithm Between Heterogeneous Data Sources Based on MetadataDriven / Yuan Man,Chen Xingtong( School of Computer and Information Technology,Northeast Petroleum University,Daqing 163318 ,P. R. China) / / 39 ( 12 ) . -128 ~ 131 Journal of Northeast Forestry University. -2011 , A series of supporting metadata models are built to store and describe policies of mapping patterns in order to solve the data conversion problem between heterogeneous data sources of enterprise. Meanwhile,all kinds of mapping patterns and transformation algorithms are define in details. A general architecture for data transformation,which merges technique of metadatadriven,is proposed by analyzing the architecture of extract,transform and load ( ETL) . These techniques have been successfully applied to data transformation for Daqing oil field development database and EPDM database,which solves data transferring. Keywords Data conversion; Metadatadriven; ETL; Mapping schemas 目前, 企业日趋信息化、 标准化的发展方向, 决定当前企 业中的大量生产信息及管理数据的集成与转换成为亟待解决 管理、 科研上地域分散的特点 , 的问题。由于石油领域生产、 使得企业内存在大量采用不同数据库存储的异构数据 , 各个 企业应用之间存在信息壁垒 , 阻碍信息之间的共享。 完整的 [1 ] 数据转换和数据加载 , 当前 数据迁移系统包括数据抽取 、 : PowerBuilder ( Data Pipe的迁移方法包括 ①利用 的数据管道 Line) 技术[2] 、 数 据 窗 口 ( DataWindows ) 和 动 态 SQL 语 句 实 [3 ] 但对于大量且模型结构复杂 现 。数据管道技术虽然简单 , 的数据, 不提供纠错和质量控制机制 ; 采用动态 SQL 语句虽 然适用范围广, 但在进行迁移过程中, 对于数据模型复杂或数 据量庞大的情况, 使迁移任务繁琐且效率低下 , 缺少可视化操 作界面。②采用源数据库自带的导出工具和目标数据库的导 入工具, 中间需要经过必要的转换处理 ; 采用手工迁移和数据 库自带工具进行迁移需要编写大量辅助程序 , 要求迁移人员 增加 对源库与目标库的结构和业务规则有比较透彻的了解 , 了用户的工作量。③ 采用已有的一些数据迁移软件 , 如 SQL Server 的 DTS 工具、 Delphi 中的 DataPump 工具等。 ④ 特殊的 如 PHP 实现 MYSQL 的 数据库提供的一些特别的迁移方法 , [4 ] 。 , 迁移等 ⑤通用数据迁移工具 其中用到基于相似度计算 的映射工具, 但对于具有复杂映射关系的数据仍不能满足 。 这些方法各有利弊。传统的 ETL 体系结构, 数据转换的描述 转换规则信息等, 信息包括对数据源位置与基本属性的描述 、 缺少控制数据转换行为的描述 , 使得整个转换过程要依赖程 序代码控制实现, 导致转换工具的实现复杂度增加 。 随着企 新行业标准的引入, 新旧数据模型差异逐渐 业信息化的深入、
第 12 期 1. 2 映射模式及相关定义
[7 ]

满等: 基于元数据驱动的异构数据模型映射算法
129
映射模式 为源数据库数据表字段到目标数据库数据 每一类映射关系为一类映射模式 。 表字段之间的映射关系 , 每一类映射模式的实质是一类数据转换的规则 , 将每一类映 射模式抽象为一个数据转换规则函数 。笔者通过分析关系数 据库数据模型, 确定 15 种映射模式, 包括: 直接映射、 主键映 外关键字映射、 多级映射、 间接外键映射、 自关联外键映 射、 类型转换映射、 单位转换映射、 拼接映射、 计算映射、 截取 射、 映射、 代码表映射、 源代码表映射、 目标代码表映射、 筛选条 可能会增加新的映射模式来满足 件。在这些映射的基础上, 数据转换需求。 定义 1. 映射关系: 源数据库中实体 E S 的某一个属性或 属性集 A( 数据表的某一个或一组字段 ) 到与含义相同的目标 为A到B的 数据库实体 E T 的属性或属性集 B 的对应关系, f B) , A E S , B E T 。 映射关系, 记为 f( A, 或 A → B, f 定义 2. 数据转换规则函数: 基于映射关系 A → B 源数据 库中记录 R S 中对应于属性 A 的数据 a i , 到目标记录 R T 中对 应于属性 B 的数据 b i 的一系列变换、 运算等转换处理过程, f bi ) 或 bi = 为映射关系 A →B 下的转换规则函数 F, 记为 F( ai , F( a i ) , a i ∈R S , b i ∈R T 。这里需要说明, 不同映射关系下的规 则函数参数类型、 个数存在差异。 3. 定义 反向映射: 根据数据转换需求, 需要满足将目标 库向源库的数据迁移, 将 A 属性设定为源到属性 B 的映射关 基于该正向映射关系, 确定以 B 属性 系称为正向映射关系, 为源到以 A 属性为目标属性为反向映射关系 , 则该映射关系 f -1 -1 -1 f 与 f 互为逆映射, 记为 B →A, 对应转换规则函数为 F ( b i , a i ) 或 a i = F -1 ( b i ) 。例: f1 ①井名到井 ID 的映射关系 f1 通用井名 →井 ID。 通用井名 f1 井 ID 。 → S102 1067894553 , ②拼接映射关系 f2( [ 序号, 阶段] 求产序号) 。 序号 阶段 f2 求产序号 。 → 1 S1 S1_1 , ③计算映射关系 f3( [ 射孔顶深 - 射孔底深] 厚度) 。 射孔顶深 射孔底深 f3 厚度 。 → 132 12 120 1 . 3 转换规则函数及算法描述 1 . 3 . 1 转换规则函数 为提高数据映射行为的重用性 , 对油田现有业务数据库 A2 数据库。 将数据处理对象 模型分析, 如勘探开发数据库、 抽象为转换规则函数。 以下是对部分映 及其属性进行抽取, 射模式及其转换规则函数进行详细分析 。 ①直接映射: 无需任何转换处理, 直接将源字段中数据向 目标字段迁移。 T <字段> ) , 转换规则函数: F 直接( S <字段> , 函数参数: S <字段> : 源 表字段; T <字段> : 目标表字段。 ②主键映射, 源表中的主键字段在目标表中仍是主键 , 在 目标表中主关键字段的值发生了变化 。 由于描述内容不同, 需要将源主键值转变为目标主键值 , 同时构建中间代码表保 存源主键值与新目标主键值之间的对应关系 。 T <主键字段> , MID <代码表> ) , 转换规则函数: F 主键 ( S <主键字段> , 函 : S : ; T : 数参 数 <主键字段> 源 主 键 字 段 <主键字段> 目 标 主 键 字 段;
第 39 卷 第 12 期 2011 年 12 月
东 北 林 业 大 学 学 报 JOURNABiblioteka Baidu OF NORTHEAST FORESTRY UNIVERSITY
Vol. 39 No. 12 Dec. 2011
基于元数据驱动的异构数据模型映射算法
袁 满 陈星童
( 东北石油大学, 163318 ) 大庆,
MID <代码表> : 中间代码表。 ③外关键字映射, 源表中某字段所存储的信息 , 在目标表 中用一个外关键字段来代替 。 T <字段> ) 转换规则函数: F 外键( T <参照引用表> . T <参照引用字段> , 外关键字段映射过程, 首先确定目标表中外键字段引用 的表, 即 确 定 T <参照引用表> , 通 过 源 字 段 中 的 数 据, 在引用表 T <参照引用表> 中相应字段 T <参照引用字段> 数据作对照, 获取目标字段 T <字段> 的值。 函数参数: T <参照引用表> : 目标库中的参照引用表 ; T <参照引用字段> : 参照表中的参照字段。 ④常量映射, 目标字段值是常量值, 不需要源表字段参与 数据转换处理。 转换规则函数: F 常量 ( T <字段> , 常量值 ) , 函数参数: T <字段> : 目标字段。 ⑤多级映射, 由于模型复杂的层级结构和繁多的数据量 , 通过单次映射往往不能正确 、 有效获取目标字段值, 导致了数 据冗余或错误数据等问题 。对于一些复杂目标字段的获取需 通过多次中间值的查询和转换处理来解决 。可能通过外关键 字映射、 源表字段值、 目标字段值、 指定常量值等方式获取 。 在处理过程中, 下一次映射的启动依赖于上一次的映射结果 , 形成嵌 套 的 映 射 结 构。 转 换 规 则 函 数: F' 多级 ( F 多级 ( F 外键 ( T <参照引用表> . T <参照引用字段> , T <字段> ) , T <参照字段值> ) , T' <参照字段值> , S <参照字段值> ) 函数参数: T <参照字段值 > : F 多级 多级映射的目标参照 字段 值; T' <参照字段值> : F' 多级 多 级 映 射 的 目 标 参 照 字 段 值 ; S <参照字段值> : F' 多级 多级映射的源参照字段值 。 通过描述这些转换规则函数及参数的元数据 , 实现异构 数据模型字段间映射关系的描述 , 使得该基于映射关系的数 据库之间的数据转换得到灵活实现 。 1 . 3 . 2 映射转换算法 算法 1 : 识别映射模式, 调用对应映射转换规则函数 , 实 现映射识别与转换过程的自动处理算法 。 A2 … A i } ; E T { B1 , B2 , …, Bi } ; 前提需要: E S { A1 , A i { a1 , a2 , …, a i } ; B i { b1 , b2 , …, bi } ; 《D》 一组映射集合 S-T 开始: IF 《D》 ! = null THEN { f ( Ai , B i ) 记作 m i } ; FOR each m i ∈ 《D》DO { 识别 m i 在 《D》 中的映射模式信息 mod i } ; { 调用对应映射转换规则函数 } ; FOR each MOD∈ 《D》 DO IF MOD = = mod i THEN F mod( var1 , var2 , …) ; END IF; END FOR; END FOR; END IF; 算法 2 : 基于外关键字段映射规则的数据转换处理过程 算法。 F 外键( T <参照引用表> . T <参照引用字段> , T <字段> ) { 前提需要: 来自目标表的一组数据集合 P; 开始: P = ;
相关文档
最新文档