一、分析 1.什么是逻辑数据映射?它对 ETL 项目组的作用是什么? What is a logical data mapping and what does it mean to the ETL team? 答: 逻辑数据映射(Logical Data Map)用来描述源系统的数据定义、目标数据仓库的模型以及将源系统的数据转换到数据仓库中需要做操作和处理方式的说明文档,通常以表格或 Excel的格式保存如下的信息: 目标表名: 目标列名: 目标表类型:注明是事实表、维度表或支架维度表。 SCD 类型:对于维度表而言。三种 SCD(Slowly Changing Dimension)技术 SCD1 直接修改原维表信息,不保存任何维历史信息。 SCD2 创建新的记录而不删除或修改原有维信息。可通过为每条记录设定过期时间、生效时间两个字段来区分各历史记录和当前记录(历史记录的过期时间均早于当前记录的生效时间)。 SCD3 在维表中定义历史信息字段,只保存有限的历史信息(此技术很少应用) 源数据库名:源数据库的实例名,或者连接字符串。 源表名: 源列名: 转换方法:需要对源数据做的操作,如 Sum(amount)等。 逻辑数据映射应该贯穿数据迁移项目的始终,在其中说明了数据迁移中的 ETL 策略。在进行物理数据映射前进行逻辑数据映射对 ETL 项目组是重要的,它起着元数据的作用。项目中最好选择能生成逻辑数据映射的数据迁移工具。 -----------------------------补充: 逻辑数据映射分为两种: 1: 模型映射: 从源模型到 DW 目标模型之间的映射类型有: 一对一:一个源模型的数据实体只对应一个目标模型的数据实体。如果源类型与目标类型一致,则直接映射。如果两者间类型不一样,则必须经过转换映射。 一对多:一个源模型的数据实体只对应多个目标模型的数据实体。在同一个数据存储空间,常常出现会一个源实体拆分为多个目标实体的情况下。在不同的存储空间中,结果会对应到不同的存储空间的实体。 一对零:一个源模型的数据实体没有与目标模型的数据实体有对应,它不在我们处理的计划范围之内。 零对一:一个目标模型的数据实体没有与任何一个源数据实体对应起来。例如只是根据设计考虑,时间维表等。 多对一:多个源模型的数据实体只对应一个目标模型的数据实体。 多对多:多个源模型的数据实体对应多个目标模型的数据实体。 2: 属性映射 一对一:源实体的一个数据属性列只对应目标实体的一个数据属性列。如果源类型与目标类型一致,则直接映射。如果两者间类型不一样,则...