数据映射(data mapping)基本概念

 最近正在做数据迁移相关的项目,感觉数据映射非常重要,但是又比较难,所以在维基上收集了数据映射的基本概念,以及数据映射与其它相关概念之间的关系,整理如下。

    数据映射(Data Mapping) :给定两个数据模型,在模型之间建立起数据元素的对应关系,将这一过程称为数据映射。数据映射是很多数据集成任务的第一步,例如:数据迁移(data migration)、数据清洗(data cleaning)、数据集成、语义网构造、p2p信息系统。

 

    数据映射的方式有两种:手工编码(Hand-coded)和可视化操作(Graphical manual)。手工编码是直接用类似XSLT,JAVA,C++这样的编程语言定义数据对应关系。可视化操作通常支持用户在数据项之间画一条线以定义数据项之间的对应关系。有些支持可视化操作的工具可以自动建立这种对应关系。这种自动建立的对应关系一般要求数据项具有相同的名称。无论采用手工方式操作还是自动建立关系,最终都需要工具自动将图形表示的对应关系转化成XSLT,JAVA,C++这样的可执行程序。

    目前数据映射领域存在两个前沿的研究方向:
    数据驱动的映射:利用统计方法分析源数据库和目标数据库的实际数据,挖掘出数据对应关系。这种方法可以发现数据之间的“substring”,“concatenations”,“arithmetic”,“case statements”等转换逻辑。这种方法还可以用于发现异常情况,也就是不符合已定义转换逻辑的数据。

    那么数据映射和数据迁移是什么关系呢?

    通常,数据迁移包括三个阶段:数据抽取(extract),数据转换(transform),数据加载(load),也就是俗称的ETL。但是如何抽取,如何转换,加载到什么位置这些问题都需要有一个明确的规则指导。因此这主需要数据映射来定义这些规则。这有点像软件开发过程中的设计与开发。数据映射相当于软件设计、ETL的执行代码实现过程相当于软件开发。

    现在我正在调研数据迁移的框架和流程,以及可用的工具,但是始终没有找到比较好用的数据迁移工具。

posted @ 2010-01-22 09:53  俊哥  阅读(27451)  评论(0编辑  收藏  举报