当前位置:
文档之家› 基于元数据驱动的异构数据模型映射算法_袁满
基于元数据驱动的异构数据模型映射算法_袁满
第 39 卷 第 12 期 2011 年 12 月
东 北 林 业 大 学 学 报 JOURNAL 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 = ;
1 ) 黑龙江省教育厅基金项目资助 ( 11541008 ) 。 1965 年 6 月生, 第一作者简介: 袁满, 男, 东北石油大学计算机与 信息技术学院, 教授。 收稿日期: 2011 年 4 月 28 日。 责任编辑: 戴芳天。
加大, 导致新的映射关系不断出现 , 传统方案只能不断增加或 者修改代码来适应这种情况 , 不但增加了维护的难度 , 且可能 用元数据描述映射模式的设计思 导致软件重新开发。然而, 路实现的数据转换系统具有以下优点 : ①具有良好的扩展性, 不同数据模型之间出现一种新的映射模式只需编写单独的转 配置函数接口及参数信息 , 定制对应字段间映射 换规则函数, , , 模式元数据后 即可使用新映射模式 不需要更改程序代码, 降低了工具开发复杂度的同时 , 提高了工具的质量。 ② 通过 构建用于映射模式 元数据形式描述数据库之间的映射模式 , 元数据模型实现数据转换过程 , 使得数据转换行为能够灵活 控制, 更易于维护。
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 体系结构, 数据转换的描述 转换规则信息等, 信息包括对数据源位置与基本属性的描述 、 缺少控制数据转换行为的描述 , 使得整个转换过程要依赖程 序代码控制实现, 导致转换工具的实现复杂度增加 。 随着企 新行业标准的引入, 新旧数据模型差异逐渐 业信息化的深入、
1
1. 1
映ห้องสมุดไป่ตู้模式表示及算法
映射关系分析
[5 ]
存储相关数据的不同 映射关系 是指同一数据领域内, 关 系数据库数据 模 型 之 间 的 对 应 关 系 。 映 射 关 系 分 为3 个 层次: ①实体映射。反映了两个数据库概念模型上的差别 , 由 。 一个或多个属性描述 ②表映射。是实体映射的充分反映 , 为数据模型数据表 之间的对应关系, 在应用中表映射分为一对一映射 、 一对多映 多对一映射等情况, 对于多对多表交叉映射则可通过前 3 射、 种映射描述。 [6 ] ③ 属性映射 。 关系数据库中, 属性映射对应的是数据 。 是数据转换规则 表中的字段映射 它是映射关系的最底层 , 处理的最小单位。 了解进行数据转换的异构数据源的概念模型 , 以及数据 源数据之间的对应关系 , 将这种关系进行分类和细化 , 并且给 最终确定满足从源向目标库进行数据 出明确的定义和解释, 转换的数据映射模式。