第一章ETL入门

1.1 OLPT和数据仓库对比

普通的事务系统和商业智能系统(BI)有什么区别?
1个独立的普通事务系统也被称为在线事务处理系统(OLTP)
商业智能系统也常被称为决策支持系统(DSS)

OLTP和BI数据库最大的区别在于处理的数据量。
对比
使用中BI系统也经常作为业务系统的一部分,预先处理好一部分数据提供给业务系统调用并展现。

1.2 ETL是什么

ETL是抽取、转换、加载的缩写。含义为从数据源抽取数据加工到数据仓库的一些操作的集合。
抽取:一般需要连接到不同的数据源
转换:任何对数据的处理都是转换
比如以下操作

加载:将数据加载到目标系统的所有操作(不仅包含目标表)。

ETL的演化过程
(1)手动编程时期
(2)ETL工具(基于自动化代码):根据设计好的工作量自动生成代码。最大的问题是仅限于有限的数据库。
(3)ETL工具(基于引擎):

数据仓库和数据集市的区别:
数据仓库是单一的,大量数据的存储仓库,涉及各种主题和各个业务领域。通常一个数据仓库不能准备终端用户直接访问。
数据集市可被终端用户直接访问,并且是以数据分析为目的的。
我们可能基于某几个分析主题的需要,从数据仓库中读取数据建立数据集市。

ETL的基本构成:
ETL就像一个业务流程,具有输入,加工,输出等多个环节和处理步骤。

1.3 ETL,ELT,EII

ETL: 从1/N个数据源抽取数据,经过1/N步架构,物理存储到目标环境中,目标环境通常是数据仓库。
ELT: 抽取、加载、转换的简称,与ETL不同的在于数据整合的方法上略有不同:抽取数据到目标数据库后再转换。
而ETL是抽取,转换后在加载到目标环境。
另外的不同,ELT需要知道使用目标数据库对应的SQL方言。

EII: 虚拟数据整合,无需将数据复制到或移动到数据仓库。不需要额外存储,数据永远都是最新的。
比较如下

1.4 挑战

数据整合的挑战在于 1需要对业务的理解 2技术的要求。

其他部分:Kettle是作者使用java基于敏捷方法迭代开发完成的工具。

1.5 ETL工具的功能

1 连接到数据源(db,文本,xml,excel),支持FTP,ssh方式获取数据
2 能运行在不同平台
3 支持集群,支持将数据根据要求进行分发处理,支持并发(复制:1份数据复制后处理 2分发:1数据分多份给不同处理)
4 扩展性
5 数据转换:ETL很大一部分工作是数据转换。在输入和输出之间可能需要如下的数据转换操作:
效验、合并、转置、克隆、排重、过滤、删除、聚集、条件分割、替换、、缓慢变更纬度等。Kettle甚至还支持树形自关联这样的表的数据的加载转换(oracle的Connect by prior)。
6 测试
7 日志和审计
8 血统和影响分析 (血统的含义:从数据追溯到其对应的元数据)


Kettle解决方案: 第一章ETL入门的更多相关文章

  1. MySQL----MySQL数据库入门----第一章 数据库入门

    第一章 数据库入门 1.1 数据库基础知识 1.1.1 数据库概述 数据不仅包括普通意义上的数字,还包括文字.图像.声音等.也就是说,凡是在计算机中用来描述事物的记录都可称作数据. 数据库的基本特点: ...

  2. Java Persistence with MyBatis 3(中文版) 第一章 MyBatis入门

    本章将涵盖以下话题: ž  MyBatis是什么? ž  为什么选择MyBatis? ž  MyBatis安装配置 ž  域模型样例 1.1 MyBatis是什么 MyBatis是一个简化和实现了Ja ...

  3. 第一章 Kubernetes入门

    第一章 Kubernetes入门 kubernetes是基于容器技术的分布式架构领先方案,是一个完备的分布式系统支撑平台. kubernetes带来的好处:1)全面拥抱微服务:2)统可以随时随地整体“ ...

  4. Kettle解决方案: 第二章 Kettle基本概念

    2概述 设计模块最主要的操作分为: 转换和作业 选择转换和作业后就可以选择对应主对象树和核心对象 主对象树大同小异 核心对象是不同的 比如转换需要用到的CSV表输入, 表输入等都在这里可以选择 而作业 ...

  5. Knockout应用开发指南 第一章:入门

    2011-11-21 14:20 by 汤姆大叔, 20165 阅读, 17 评论, 收藏,  编辑 1    Knockout简介 (Introduction) Knockout是一个轻量级的UI类 ...

  6. 第一章 C#入门 (Windows窗体应用程序)(一)

    我的第一个窗体应用程序(一) [案例说明]  在文本框中显示一行文字“Hello C#!”,单击[显示]按钮后在文本框中显示文字:单击[清除]按钮后清除文本框中的内容. [案例实现步骤] 1.新建项目 ...

  7. 《C# to IL》第一章 IL入门

    我们用C#.VB.NET语言编写的代码最终都会被编译成程序集或IL.因此用VB.NET编写的代码可以在C#中修改,随后在COBOL中使用.因此,理解IL是非常有必要的. 一旦熟悉了IL,理解.NET技 ...

  8. 烟大 Contest1024 - 《挑战编程》第一章:入门 Problem G: Check The Check(模拟国际象棋)

    Problem G: Check The Check Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 10  Solved: 3[Submit][Statu ...

  9. 烟大 Contest1024 - 《挑战编程》第一章:入门 Problem D: LC-Display(模拟计算器显示数字)

    Problem D: LC-Display Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 14  Solved: 3[Submit][Status][We ...

随机推荐

  1. Java - Java入门(2-1am)

    第一讲.Java入门 1. 计算机语言是人和计算机进行交互的一种工具,人们通过使用计算机语言编写程序来向计算机施令,计算机则执行程序,并把结果输出给用户. 2. 机器语言:由0.1序列构成的指令码组成 ...

  2. Spring动态获取已注入的对象的方法

    1.根据类获取对象 @Autowired ApplicationContext context; GenericMapper<T,String> dao=(GenericMapper< ...

  3. MySQL在高内存、IO利用率上的几个优化点

    以下优化都是基于CentOS系统下的一些MySQL优化整理,有不全或有争议的地方望继续补充完善. 一.mysql层面优化 1. innodb_flush_log_at_trx_commit 设置为2设 ...

  4. 配置STP、RSTP以及负载均衡

    生成树协议是一种二层管理协议,它通过有选择性地阻塞网络冗余链路来达到消除网络二层环路的目的,同时具备链路的备份功能. 每个VLAN都生成一棵树是一种比较直接,而且最简单的解决方法.它能够保证每一个VL ...

  5. Feign源码解析系列-最佳实践

    前几篇准备写完feign的源码,这篇直接给出Feign的最佳实践,考虑到目前网上还没有一个比较好的实践解释,对于新使用spring cloud的同学会对微服务之间的依赖产生一些迷惑,也会走一些弯路.这 ...

  6. 【EMV L2】CDA复合动态数据认证/应用密文生成

    复合动态数据认证/应用密文生成处理流程:对于复合动态数据认证/应用密文生成,终端执行标准动态数据认证的步骤1到3:1.认证中心公钥的获取终端使用认证中心公钥索引(PKI)以及卡片中的注册的应用提供商标 ...

  7. SQLalchemy 字段类型

    常用的SQLAlchemy列选项 类型名 python中类型 说明 Integer int 普通整数,一般是32位 SmallInteger int 取值范围小的整数,一般是16位 BigIntege ...

  8. webpack基本配置

    module: { rules: [ { test: /\.css$/, use: ['style-loader','css-loader?minimize'] } ] } 一.入门 loader可以 ...

  9. webpack使用中遇到的问题

    http://ife.baidu.com/note/detail/id/534 https://blog.csdn.net/hreticent/article/details/80489851

  10. MATLAB实现Brovey图像融合

    自定义函数: function BF=Brovey_fuse(Hyperspectral_image,High_resolution_image) x0=imread(Hyperspectral_im ...