ETL技术入门之ETL初认识,数据仓库

转载 2017年11月08日 17:01:18
ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。

ETL是什么

ETL是Extract Transform Load三个英文单词的缩写 中文意思就是抽取、转换、加载。说到ETL就必须提到数据仓库。


先说下背景知识:

信息是现代企业的重要资源,是企业运用科学管理、决策分析的基础。目前,大多数企业花费大量的资金和时间来构建联机事务处理OLTP的业务系统和办公自动化系统(例如电信行业的各种运营支撑系统、购物网站系统),用来记录事务处理的各种相关数据。据统计,数据量每2~3年时间就会成倍增长,这些数据蕴含着巨大的商业价值,而企业所关注的通常只占在总数据量的2%~4%左右。因此,企业仍然没有最大化地利用已存在的数据资源,以致于浪费了更多的时间和资金,也失去制定关键商业决策的最佳契机。

在这个背景下,能够给企业所有级别的决策制定过程提供支持的所有类型数据的战略集合应运而生,他就是数据仓库。数据仓库的英文简写是Data Warehouse。数据仓库就是把OLTP系统产生的数据 整合到一起 发掘其中的商业价值和提供决策支持用。举个电信行业的例子 电信有系统每天会有客户投诉的信息、宽带群体性障碍、客户号码的停机恢复时间记录等等。这些数据都在各自的生产环境系统里面。他们每个月会把这些数据整合到一起处理加工到数据仓库里面形成报表 其中有一个功能是可以对哪些用户有离网销号的倾向做出大概的判断。这就是数据仓库的价值所在。


那么怎么把数据弄到数据仓库里去呢,其中用到的一个技术就是ETL。


下面给下ETL的详细解释定义:

ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)作为DW的核心和灵魂,能够按照统一的规则集成并提高数据的价值,是负责完成数据从数据源向目标数据仓库转化的过程,是实施数据仓库的重要步骤。如果说数据仓库的模型设计是一座大厦的设计蓝图,数据是砖瓦的话,那么ETL就是建设大厦的过程。在整个项目中最难部分是用户需求分析和模型设计,而ETL规则设计和实施则是工作量最大的,约占整个项目的60%~80%,这是国内外从众多实践中得到的普遍共识。
ETL是数据抽取(Extract)、清洗(Cleaning)、转换(Transform)、装载(Load)的过程。是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。
于是,企业如何通过各种技术手段,并把数据转换为信息、知识,已经成了提高其核心竞争力的主要瓶颈。而ETL则是主要的一个技术手段。

做数据仓库系统,ETL是关键的一环。说大了,ETL是数据整合解决方案,说小了,就是倒数据的工具。

现在来说说ETL技术用到的工具,常用的有Informatica、Datastage、Beeload、Kettle等。目前只用过kettle,所以这里只对kettle做描述。

kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,kettle 3版本需要安装 3以上都是绿色版无需安装。


提醒的是kettle运行 需要机器有JRE环境


Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么。
Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。


现在来看下kettle的transformation文件,一个最简单的E过程例子(windows环境)


上图文件的功能就是就是把oracle数据库一个表的数据抽取到另一表里面。


左边的图标叫表输入 右边的叫表输出 中间绿色的线代表数据流向。 表输入和表输出可由左边的菜单栏里 鼠标拖动出。

双击打开表输入是这样的:


上图左边的是打开表输入的界面 

步骤名称: 即是图标下面显示的名字 可以随便填

获取sql查询语句:点击后 会树状形式展示oracle的表视图 等 选中双击后 点自己会添加到空白的sql框内。

数据库连接: 一开始没有 需要新建 有了就可以编辑了 点击编辑后会弹出上图右边的页面

connection name :连接起个名字 可以使数据ip地址 加实例名

connection type :是选择你要查询的数据库类型 mysql oracle等等

method access:是选择驱动类型 选择那个JDBC就可以了

server host name :是数据库的ip地址 

dbname :是数据库实例名 

Port number:是端口号 

再下面就是用户名 密码了。


填好所有的信息后 可以点击test测试下能不能成功连接。成功连接即可点击确定 界面就会回到上面的左图


sql 下面的空框 是用来写你想要获取数据的sql语句(也可以由那个获取查询sql按钮自动获取) 写好后 可以点击预览 (行数选少点)看下数据可正常。如果能预览数据 说明你的表输入就配好了。

上图左边

ennable lazy conversion 勾上后就表示延迟转换:这样在从数据库读取的数据就能保持原有字符集,不会默认强制使用utf8。

replace variables in :表示如果sql框里的sql有变量的时候 会使用环境变量替代它 像table_201407 这样带日期的固定格式表名 可以使用这个实现自动化

记录数量限制:默认为0 若设为大于0的任何值 则无论sql怎么写的 输入表只有设置的行数那么多。


现在来看表输出:

上图左边为双击打开表输出的 界面。

步骤名称:表输出图标下面显示的名字 可用数据库ip 用户名 表名

数据库连接 :没有需要新建 可以新建几个 新建好的可以编辑

target schema :目标表或者视图的用户

目标表:可以自己输入,也可以从浏览里面选择

提交记录数量:批量一次提交的数据量或者非批量插入数据量的限制值

裁剪表:插入之前 有 truncate 操作。

忽略插入错误 :这是非批量插入的功能,非批量插入时 若有一天数据插入报错 后面的数据还可以正常插入。

使用批量插入:点上即是批量 否则为非批量。

点击数据库连接的编辑后 会弹出上图右图 与表输入的一样 填写数据库的tns信息 及用户名密码。点击test可以连接后 点击确定


回到上图左边界面 再点击确定 即配好了一个转换 点击运行后:

ETL技术入门之ETL初认识,数据仓库


可以从日志看 该转换有没有finished、 每个步骤的耗时、速度 、平均每秒多少行、 总共插入了多少记录数等

etl数据仓库技术

ETL的考虑        做数据仓库系统,ETL是关键的一环。说大了,ETL是数据整合解决方案,说小了,就是倒数据的工具。回忆一下工作这么些年来,处理数据迁移、转换的工作倒还真的不少...
  • qq_26562641
  • qq_26562641
  • 2017年02月09日 08:56
  • 1066

ETL技术入门之ETL初认识

ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)作为BI/DW(Business Intelligence)的核心和灵魂,能够按照统一的规则集成并提高数据的价...
  • xiaohai798
  • xiaohai798
  • 2014年07月10日 23:11
  • 57139

ETL与数据仓库的区别(二)

ETL常与数据仓库相关. 那么就需要知道数据仓库是什么 数据仓库 具体概念可以参考百度百科/英文原文.此处不做理解 我所理解的数据仓库 字面拆分:数据                   ...
  • xinlangtianxia
  • xinlangtianxia
  • 2016年05月30日 12:06
  • 711

ETL----从源数据到数据仓库的逻辑数据映射

逻辑数据映射的组成  逻辑数据映射(见下图 )通常用一个表或者电子表格格式来表示,它包括以下特定的组成部分:    目标表名称:数据仓库中出现的物理表名称;目标列名称:数据仓库表中的列名称;   ...
  • liguoming05
  • liguoming05
  • 2013年10月07日 15:00
  • 1596

数据仓库项目应该如何选择ETL工具:ETL or E-LT

根据以往数据仓库项目的经验,在一个数据仓库项目中,ETL设计和实施的工作量一般要占总项目工作量的40%-60%,而且数据仓库项目一般会存在二次需求的问题,客户在项目的实施过程中或者使用过程中会提出新的...
  • zerohero_xij
  • zerohero_xij
  • 2015年08月24日 10:37
  • 1488

基于Hadoop生态圈的数据仓库实践 —— ETL(二)

二、使用Hive转换、装载数据1. Hive简介(1)Hive是什么        Hive是一个数据仓库软件,使用SQL读、写、管理分布式存储上的大数据集。它建立在Hadoop之上,具有以下功能和特...
  • wzy0623
  • wzy0623
  • 2016年07月06日 11:46
  • 10060

设计并实现数据仓库ETL过程(IBM讲座)

本文是关于计划、设计和实现基本数据仓库解决方案的系列文章的第 3 部分,将设计和实现仓库 ETL 过程,并了解仓库的性能和安全问题。 请多多支持作者作品RKWeb1.1 asp.net开发模板! ...
  • pianzif
  • pianzif
  • 2014年07月14日 12:56
  • 2120

数据仓库数据挖掘——数据仓库中的ETL和元数据

ETL 概念: zu
  • Sun7_She
  • Sun7_She
  • 2014年10月25日 19:48
  • 1301

基于Hadoop生态圈的数据仓库实践 —— ETL(一)

一、使用Sqoop抽取数据 1. Sqoop简介         Sqoop是一个在Hadoop与结构化数据存储(如关系数据库)之间高效传输大批量数据的工具。它在2012年3月被成功孵化,现在已是Ap...
  • wzy0623
  • wzy0623
  • 2016年07月01日 22:54
  • 13147

数据仓库应用(二):数据抽取、转换、加载(ETL)

某电子商务网站主要销售电子类产品,产品又分为几个大类别,包括:电脑类、手机类、键盘类等,每个类别内又细分为几个小类别,各类别下又有诸多的商品,每一个商品都有一个唯一的商品编号。用户可以通过注册成为会员...
  • lxf_44944
  • lxf_44944
  • 2015年02月14日 23:11
  • 3472
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ETL技术入门之ETL初认识,数据仓库
举报原因:
原因补充:

(最多只允许输入30个字)