博文目录
- ETL Tools For EDW 主题分享
-
- 一、数据仓库基础概念
- 二、数据仓库实施步骤
- 三、ETL核心基础概念
- 四、ETL开发方式&工具
- 五、Kettle工具介绍 (PDI)
- 六、Kettle解决方案探索
-
- 1、16个相关方案
-
- 1.1、数据整合是什么?数据整合的价值?
- 1.2、Kettle解决方案的基础概念
- 1.3、单机/服务器环境下安装和部署Kettle
- 1.4、构建一个完整的端到端的ETL解决方案
- 1.5、如何使用Kettle实现34种ETL子系统
- 1.6、Kettle如何完成数据抽取、清洗和确认、处理维度表、加载事实表、操作OLAP立方体涉及的概念
- 1.7、Kettle的开发生命周期
- 1.8、如何在Kettle环境里使用Pentaho的敏捷BI工具
- 1.9、如何调度、监控作业和转换
- 1.10、多位开发人员如何协同工作,如何管理不同版本的ETL方案
- 1.11、数据血统分析、影响分析和审计。在Kettle中如何支持这些概念
- 1.12、如何利用分区、并行化、动态集群技术提高Kettle的性能
- 1.13、如何使用复杂文件、Web服务、Web API
- 1.14、如何使用Kettle加载基于Data Vault模型的企业数据仓库
- 1.15、如何在其他应用中集成Kettle,如何通过二次开发拓展Kettle
- 1.16、性能调优
- 2、34种ETL子系统:
- 3、OLAP的价值和挑战:(ROLAP、MOLAP、HOLAP)
- 4、补充拓展
- 七、数据仓库基础架构(Oracle+Hadoop)
ETL Tools For EDW 主题分享
一、数据仓库基础概念
1、定义
数据仓库之父比尔﹒恩门(Bill Inmon)将数据仓库描述为一个面向主题的、集成的、随时间变化的、非易失的数据集合,用于支持管理者的决策过程。(—广为认可的数据仓库定义)
2、关键特性
- 面向主题:传统的操作型系统是围绕组织的功能性应用进行组织的、而数据仓库是面向主题的。主题的概念是抽象的,简单的描述就是与业务相关的数据的类别,每一个主题基本对应一个宏观的分析领域。
- 集成:集成与面向主题是密切相关的。数据仓库必须能够解决诸如产品命名冲突,计量单位不一致等问题。当完成了这些数据整合工作,则数据仓库可称为是集成的。
- 随时间变化:数据仓库中的数据是反应了某一历史时间点的数据快照,既是随时间变化的意思。但是数据仓库中的数据也是有生命周期的,到一定时候,数据会从数据仓库移除,如汇总后删除明细、转储到更大的介质或直接删除。
- 非易失:一旦进入数据仓库中,数据就应该不再有改变。如果数据是修改频繁的,那将是历史轨迹分析变的没有意义。
3、粒度
- 除了上述四个主要特性外,数据仓库还有一个非常重要的概念就是粒度。粒度问题遍布于数据仓库体系的各个部分。粒度是指数据的细节或汇总程度,细节程度越高,则粒度级别越低。
- 数据粒度一直是数据仓库设计需要重点思考的问题。粒度之所以是数据仓库环境的关键设计问题,是因为它极大的影响数据仓库的数据量和可以进行的查询类型。
- 大多数情况下、数据会以很低的粒度进入数据仓库,之后应该对数据进行编辑、过滤和汇总,使其适应数据仓库环境的粒度级别。
4、核心组件
业务系统(提供源数据)、数据整合(ETL过程+)、数据仓库(ODS/RDS、TDS/DW)、用户接口(Ad-Hoc、BI、Mini Data)
5、相关拓展
5.1、数据仓库两大理论流派
- 上述概念基于Inmon企业信息工厂核心概念和架构;(企业中央数据仓库的思想,主张构建数据驱动的、采用实体关系建模的、集成的数据仓库)
- 数据仓库还有一大流派:是以Kimball为代表的互联的数据集市的思想,主张多个互联的、松度耦合的数据集市共同组成数据仓库,是面向业务驱动的、采用多维建模的、分布式的数据仓库。(多维的)
- 这两大理论流派对于数据仓库相关概念的定义和理解存在差异,这些差异性也带来了其建模方法和建模结构的差异性,探讨这两者之间的差异和主张,有助于博采众长,指导项目实施。
5.2、数据仓库的基本需求
数据仓库的基本需求是:
- 安全性、
- 可访问性、
- 自动化,
- 对数据的要求是准确性、
- 日才效性、
- 历史可追溯性。
5.3、关系数据模型规范化
- 关系数据模型的规范化是一种组织数据的技术: 规范化方法对表进行分解,以消除数据元余,避免异常更新,提高数据完整性。
- 维度表规范化:可能导致表数量增加,使的结构更复杂;不可避免多表连接,使的查询复杂;不适合使用位图索引等
5.4、维度模型
- 维度模型通常以一种被称为星型模式的方式构建。所谓星型模式,就是以一个事实表为中心,周围环绕着多个维度表。
- 还有一种模式叫做雪花模式,是对维度做进一步规范化后形成的。
- 星型模式是非规范化的,有简化查询、获得查询性能、简化业务报表逻辑、快速聚合、便于向Cube提供数据等优点;主要缺点是不能保证数据完整性。
5.5、数据集市
- 数据集市是数据仓库的一种简单形式,通常由组织内的业务部门自己建立和控制。一个数据集市面向单一主题域,如销售、财务、市场等。
- 数据集市的数据源可以是操作型系统(独立数据集市),也可以是企业级数据仓库(从属数据集市)。
5.6、DV模型
-
5.6.1、Data Vault 是一种数据仓库建模方法, 用来存储来自多个操作型系统的完整的历史数据。Dat a Vault 方法需要跟踪所有数据的来源,因此其中每个数据行都要包含数据来源和装载时间属性, 用以审计和跟踪数据值所对应的源系统。Data Vault 不区分数据在业务层面的正确与错误,它保留操作型系统的所有时间的所有数据, 装载数据时不做数据验证、清洗等工作,这点明显有别于其他数据仓库建模方法。Data Vault 建模方法显式地将结构信息和属性信息分离, 能够还原业务环境的变化。Data Vault 允许并行数据装载,不需要重新设计就可以实现扩展。
-
5.6.2、Data Vault ( DV )模型用于企业级的数据仓库建模, 是Dan Linstedt 在20 世纪90 年代提出的。在最近几年, Data Vault 模型获得了很多关注。
Dan Linstedt 将Data Vault 模型定义为:Data Vault 是面向细节的,可追踪历史的, 一组有连接关系的规范化的表的集合。这些表可以支持一个或多个业务功能。它是一种综合了第三范式和星型模型优点的建模方法。其设计理念是要满足企业对灵活性、可扩展性、一致性和对需求的适应性要求, 是一种专为企业级数据仓库量身定制的建模方式。 -
5.6.3、Data Vault 模型有中心表( Hub )、链接表( Link )、附属表(Satellite ) 三个主要组成部分。中心表记录业务主键,链接表记录业务关系,附属表记录业务描述。
- 中心表用来保存一个组织内的每个实体的业务主键,业务主键唯一标识某个业务实体。中心表和源系统表是相互独立的。当一个业务主键被用在多个系统时,它在Data Vault 中也只保留一份,其他的组件都链接到这一个业务主键上。这就意味着业务数据都集成到了一起。
- 链接表是中心表之间的链接。一个链接表意味着两个或多个中心表之间有关联。一个链接表通常是一个外键,它代表着一种业务关系。在Data Vault 里,每个关系都以多对多方式关联,这给模型带来了很大的灵活性。无论数据在源系统中是什么关系,都可以保存在Data Vault 模型中。
- 附属表用来保存中心表和链接表的属性, 包括所有的历史变化数据。一个附属表总有一个且唯一一个外键引用到中心表或链接表。
-
5.6.4、一个设计良好的Data Vault 模型应该具有以下特点:
- 所有数据都基于时间来存储,即使数据是低质量的,也不能在ETL 过程中处理掉;
- 依赖越少越好;
- 和源系统越独立越好;
- 设计上适合变化;
- 源系统中数据的变化;
- 在不改变模型的情况下可扩展;
- ETL 作业可以重复执行;
- 数据完全可追踪;
二、数据仓库实施步骤
实施一个数据仓库项目的主要步骤是:定义项目范围、收集并确认业务需求和技术需求、逻辑设计、物理设计、从源系统向数据仓库装载数据、使数据可以被访问以辅助决策、管理和维护数据仓库。
1、定义范围
首要任务是定义项目的范围。项目范围定义了一个数据仓库项目的边界。典型的范围定义是组织、地区、应用、业务功能的联合表示。定义范围时通常需要权