最近在看《Pentaho Kettle 解决方案》,看到 ETL子系统,发现信息量比较大,用简短的语句做一下笔记。

  ETL子系统有34种子系统,被分成4个部分:抽取、清洗和更正、发布、管理。

一、抽取

 子系统1:数据剖析系统

  指从不同源系统中搜集数据的统计信息或其他相关信息的过程,目的是分析不同数据源的结构和内容。

 子系统2:增量数据捕获系统

  目的是捕获系统里的数据的变化。由于数据量大以及网络的延迟,数据完成初始加载后,不应再把数据重新加载一边,为了识别出有变化或更新的数据,增加时间戳或快照的方式。

 子系统3:抽取系统

  从不同数据源抽取数据,并输入到ETL流程里。

二、清洗和更正

  几乎没有什么数据是不存在问题的,因此数据加载到数据仓库之前要增加一些步骤来清洗和更正这些数据。另外,每个系统存储数据得方式不同,比如有些数据源里,性别表示为 0,1;有些数据源里用“男”,“女”表示,存进数据仓库里面应该有统一的规范。

 子系统4:数据清洗和质量处理系统

  这个过程主要是修改和整理进入到 ETL 流程的脏数据,提高数据的质量。

 子系统5:错误事件处理

  错误事件处理的目的是记录下 ETL 过程中的每一个错误。这样便于管理员定期监控和分析错误。

 子系统6:审计纬度

  审计维度表是一类特殊的维度表,数据仓库里的所有事实表都和审计纬度表关联。它包含了事实表变更的元数据,如加载数据的日期和时间等。

 子系统7:排查重复记录系统

  在大多数情况下,排重是指删除重复的数据,或者把不同系统相互冲突的数据统一。

 子系统8:数据一致性

  这个步骤的目的是使来源于多个业务系统的事实数据遵照相同的纬度。例如,A公司有一个客服系统,该系统有自己的客户数据库,为了把客服管理系统和销售系统放在同一个数据仓库里,需要把客服管理系统的客户数据和销售系统的客户数据统一成一个客户维度表,当分别加载来自这两个系统的事实数据时,需要把来自两个系统的事实数据只想同一个客户维度表。解决这个问题最常用方法就是维度表中保留从不同系统带来的自然键。在加载数据时,可以查找维度表中的这些源系统中的自然键。

三、数据发布

 子系统9:缓慢变更纬度处理

  当业务系统里的数据有所改变,缓慢变更维度的过程就需要根据不同的规则来变更数据仓库的纬度。一般有三种缓慢变化维。

  缓慢变化类型一:不记录历史数据,新数据覆盖旧数据

  缓慢变化类型二:保存多条记录,直接新添一条记录,同时保留原有记录,并用单独的专用的字段保存区别

  缓慢变化类型三:添加历史列,用不同的字段保存变化痕迹.它只能保存两次变化记录.适用于变化不超过两次的维度

 子系统10:代理键生成系统

  代理键用于标识维度表的一行,在加载维度表和事实表的时候需要查询代理键。代理键的生成一般有:1、使用表里现在代理键的最大值+1;2、使用数据库序列;3、使用一个自增字段。

 子系统11:层次维度构建

  在数据仓库里还要考虑如何构建和维护数据仓库里的层次。层次可以让用户分析查看维度不同级别上的数据。最简单的层次概念就是时间维度的层次,例如“年-季-月-日”这样的层次。

 子系统12:特殊维度生成系统

  除了缓慢变化维度,基于多位模型的数据仓库,至少都包含一个特殊维度:时间维度。当然还有其他特殊维度,这里不列举。

 子系统13:事实表加载

  在往数据仓库加载事实表之前,需要把数据准备好。事实表主要有三种类型:

  1、事实粒度事实表:以每一个事务或者事件为单位,例如一个销售记录;

  2、周期快照事实表:事实表里并不保存全部数据,只保存固定时间间隔的数据,例如每月的消费记录;

  3、累积快照事实表:当有新的数据时,更新事实表里的记录。

 子系统14:代理键管道

  这个子系统负责抽取正确的代理键,用于加载事实表。

 子系统15:多值维度桥接表生成系统

  当有多个维度项和事实表或其他维度表关联时,也要使用桥接表。例如电影票和演员。如果想汇总一个演员有多少电影票收入,需要在电影和电影演员维度之间建立一个桥接表,桥接表还可以设置电影演员的权重因子。

 子系统16:迟到数据处理

  事实表数据和维度表数据都有可能晚到。对于事实表来说不是大问题,课根据维度的有效时间查找业务发生时的维度代理键。如果维度表数据晚到,情况就会稍微麻烦一些,若事实表数据加载完了但维度表的数据不是最新的。当要更新的维度数据过来后,会在维度表里增加一条记录,此时要使用新创建的维度的代理键来更新事实表里有上一个代理键的数据。(说实话这一段没怎么看得懂......)

 子系统17:维度管理系统

  中心控制系统,用来准备额向数据仓库发布正确的维度。

 子系统18:事实表管理系统

  负责任何创建、组织、管理和事实表相关的任务。

 子系统19:聚集构建

  如果数据库是用于分析的,一定会有性能方面的要求。这种对速度的要求产生了几种解决方案,在这些解决方案里,聚集表对性能的提升最大。

 子系统20:OLAP Cube构建系统

  OLAP数据库有特殊的存储结构,当加载的时候可以预先聚集数据。一些OLAP数据库只能写不能更新,所以在做更新之前要把源数据清楚。

 子系统21:数据整合管理系统

  用来从数据仓库获取数据,并把数据发送到其他环境中,通常用于离线数据分析或者其他特殊目的,如给用户发送报表。

四、管理

 子系统22:作业调度

 子系统23:备份系统

 子系统24:恢复和重新启动系统

 子系统25:版本控制系统

 子系统26:从开发环境到测试、生产环境的版本移植系统

 子系统27:工作流监控

 子系统28:排序系统

 子系统29:血统和依赖分析 

 子系统30:问题报告系统

子系统31:并行/管道系统

子系统32:安全系统

子系统33:合规报告系统

子系统34:元数据资源库管理系统

  

ETL子系统的更多相关文章

  1. ETL定义、四大模块及子系统说明

    ETL定义.四大模块及子系统说明 ——<Pentaho Kettle解决方案>读书笔记 罗小川 目前公司正在进行数据仓库的建设的前期需求整理和项目启动阶段,想简单来谈一下自己对目前公司在用 ...

  2. [目录]Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案

    第一部分:开始 1         ETL入门 1.1   OLTP和数据仓库对比 1.2   ETL是什么 1.2.1          ETL解决方案的演化过程 1.2.2          ET ...

  3. DataPipeline CTO陈肃:从ETL到ELT,AI时代数据集成的问题与解决方案

    引言:2018年7月25日,DataPipeline CTO陈肃在第一期公开课上作了题为<从ETL到ELT,AI时代数据集成的问题与解决方案>的分享,本文根据陈肃分享内容整理而成. 大家好 ...

  4. Kettle解决方案: 第五章 ETL相关知识

    早期, ETL知识作为BI系统的一部分来介绍. 后来在The Data Warehouse ETL Tooket一书中, 系统性的整理了ETL的相关内容, 形成了一篇"ETL里的34个子系统 ...

  5. 《数据仓库ETL工具箱》读书笔记

    在本书中,你将学习到以下内容: 规划&设计你的ETL系统 从多种可能的架构中选出最合适的 对实施过程进行管理 管理日常的操作 为ETL过程建立开发/测试/生产环境 理解不同的后台数 ...

  6. 设计和开发ETL系统(一)——ETL过程综述

    在这部分将按照设计和实现ETL系统的流程展开,将上一个部分的那些子系统按照提取数据.清洗和一致化.向呈现服务器提交以及管理ETL环境等四个方面进行了分类.(是不是说对ETL主要就是掌握这四个方面的内容 ...

  7. 抽取、转换和装载介绍(七)管理ETL环境(待续)

    数据仓库的目标之一是能够为增强业务功能提供适时的.一致的和可靠的数据. 为了达到上述目标,ETL必须按照下述三条标准不断地加以完善: 可靠性 可用性 易管理性 子系统22--作业调度器 子系统23-- ...

  8. 抽取、转换和装载介绍(三)ETL系统的34个子系统

    这部分对ETL系统的架构中34个关键子系统进行分类.ETL其实可以分为下面四个步骤: 抽取.在ETL环境中从源系统收集原始数据并且在对任何对数据的重要重构发生之前都将数据写入磁盘.子系统1到子系统3都 ...

  9. Atitit.软件仪表盘(0)--软件的子系统体系说明

    Atitit.软件仪表盘(0)--软件的子系统体系说明 1. 温度检测报警子系统 2. Os子系统 3. Vm子系统 4. Platform,业务系统子系统 5. Db数据库子系统 6. 通讯子系统 ...

随机推荐

  1. ETL的两种架构——ETL架构和ELT架构优劣势对比

    ​ 导读: 作为现代企业和组织机构的重要资源,信息是进行科学管理与决策分析的基础.ETL 则是把数据转换为信息.知识的关键步骤之一.在 AI 应用场景下,数据集成有哪些特点?随着 AI 应用场景越来越 ...

  2. 深入理解.NET Core的基元(三) - 深入理解runtimeconfig.json

    原文:Deep-dive into .NET Core primitives, part 3: runtimeconfig.json in depth 作者:Nate McMaster 译文:深入理解 ...

  3. Java中我常用到的十二个最基本的快捷键

    自己在Java中经常用到的快捷键先记下来方便日后学习之用: 1. Ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了.这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按 ...

  4. Centos 6.x Openssh 升级 7.7p1 版本

    OpenSSH 升级 目前在一家金融公司上班,正好赶上金融公司各种暴雷,本人心里慌慌的. 然后就是金融公司要进行的最低的三级等保评测,各种修改系统安全,密码强度.WAF.防火墙等各种. 评测公司对我司 ...

  5. php 开山篇

    由韩顺平老师讲解的 php课程体系 初级课程只能是静态页面开发,不能动态的使用,只是一个界面 学完之后脑海中 应该有的体系~

  6. c语言l博客作业02

    问题 答案 这个作业属于哪个课程 C语言程序设计l 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/8687 我在这个 ...

  7. 从零开始openGL—— 二、 基本图形绘制

    前言 这是从零开始openGL系列文章的第二篇,在上篇文章中介绍了基本的环境配置,这篇文章将介绍如何绘制基本图形(圆.三角形.立方体.圆柱.圆锥). 基本框架 下面这里我先给出opengl的3D绘图的 ...

  8. Lua的面向对象,封装,继承,多态

    概述 我们总所周知对象是由属性和方法组成的,要用lua要描述一个对象,也必然要有这两个特性,属性和方法.lua的基本结构是table,所以Lua的类,其实都是table,因为它可以存储普通的变量又可以 ...

  9. 转:FileSync plugin for Eclipse 安装注意事项 Eclipse文件同步插件

    习惯了使用MyEclipse,各种插件不用自己安装,觉得开发起来很方便,现在大家都用Eclipse了,还有不用Eclipse用更高级的,IT当然开发大型项目没人用UltraEdit吧,虽然是一个不错的 ...

  10. ajax异步请求的三种常见方式

    首先先介绍下ajax,ajax(ASynchronous JavaScript And XML)为异步的javascript和xml.所谓的异步和同步是指: 同步:客户端必须等待服务器的响应,在等待期 ...