ETL技术入门之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可以连接后 点击确定

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

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

ETL技术入门之ETL初认识,布布扣,bubuko.com

时间: 2024-07-28 13:56:12

ETL技术入门之ETL初认识的相关文章

网络爬虫技术入门_Python基础与爬虫技术

Python基础与爬虫技术  课程学习地址:http://www.xuetuwuyou.com/course/195 课程出自学途无忧网:http://www.xuetuwuyou.com 课程简介 本作为一种便捷地收集网上信息并从中抽取出可用信息的方式,网络爬虫技术变得越来越有用.使用Python这样的简单编程语言,你可以使用少量编程技能就可以爬取复杂的网站. <Python 基础与爬虫技术>讲解了从静态页面爬取数据的方法以及使用缓存来管理服务器负载的方法.此外,本课程还介绍了如何使用AJA

《Docker技术入门与实战》pdf

下载地址:网盘下载 内容简介  · · · · · · [编辑推荐] <Docker技术入门与实战>是中国首部docker著作,一线Docker先驱实战经验结晶,来自IBM和新浪等多位技术专家联袂推荐! <Docker技术入门与实战>结合企业生产环境,深入浅出地剖析 Docker 的核心概念.应用技巧.实现原理以及生态环境,为解决各类问题提供了有价值的参考. [内容简介] 在云计算时代,开发者将应用转移到云上已经解决了硬件管理的问题,然而软件配置和管理相关的问题依然存在.Docke

PHP5接口技术入门

在PHP中我们声明类一般都用class来声明. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <?php     class Student{ //用class声明一个Student类         function __construct(){ //实例化类的时候自动加载的构造方法__construct()         }         public function index(){    //成员方法         }         a

JAVA数据库编程(JDBC技术)-入门笔记

本菜鸟才介入Java,我现在不急着去看那些基本的语法或者一些Java里面的版本的特征或者是一些晋级的知识,因为有一点.Net的OOP编程思想,所以对于Java的这些语法以及什么的在用到的时候在去发现学习一下.我现在很迫不及待用JAVA想来实现以下对数据库的增删改查.想实现就来看Java是怎么操作数据库的,回想下.Net里你可能会配置web.Config,或者你去写一些DBhelper类然后调用里面的自己定义的一些增删改查的方法,更或者你去配一些数据控件等等往往发现操作基本都是一体化的简单.现在面

【Zigbee技术入门教程-01】Zigbee无线组网技术入门的学习路线

[Zigbee技术入门教程-01]Zigbee无线组网技术入门的学习路线 广东职业技术学院  欧浩源 一.引言    在物联网技术应用的知识体系中,Zigbee无线组网技术是非常重要的一环,也是大家感觉比较难以掌握的一个部分.Zigbee无线组网技术之所以让你感有学习难度,不是因为它真的复杂,而是它看起来很复杂,让人望而止步.另一方面则是Zigbee技术在应用层面上将硬件和软件完成融为一个体系,要求开发人员既要有扎实的硬件技术,又要有清晰的软件思维.    目前,尽管有不少关于Zigbee无线组

cygwin+ndk+eclipse下JNI技术入门

1.JNI的编写步骤1)编写带有native 声明的java类.2)编译java文件成class类3)使用javah -jni com.ikags.project.XXXX 编译成.h文件4)使用C/C++编写代码5)编写makefile文件,将.h和.c(.cpp)文件编译成.dll(.so)文件6)将.dll(.so)文件提供给项目,用system.loadLibrary方法调用. 2.编写makefile文件make执行时,自动寻找Makefile(makefile)文件,然后执行编译工作

【Zigbee技术入门教程-号外】基于Z-Stack协议栈的抢答系统

[Zigbee技术入门教程-号外]基于Z-Stack协议栈的抢答系统 广东职业技术学院  欧浩源 一.引言    2017年全国职业院校技能大赛"物联网技术应用"赛项中任务三题2的"抢答器开发"是一个非常优秀的题目.本人对题目进行了适当的改造和完善,剔除了和技能大赛中特别设备高度相关的内容,使其成为一个通用的Zigbee无线组网技术应用入门学习的综合实训案例.不管是自我学习,还是专业教学,甚至是在技能大赛训练中,这个题目都适合使用. 二.硬件资源需求    要进行本

赞一个 kindle电子书有最新的计算机图书可买了【Docker技术入门与实战】

最近对docker这个比较感兴趣,找一个比较完整的书籍看看,在z.cn上找到了电子书,jd dangdang看来要加油啊 Docker技术入门与实战 [Kindle电子书] ~ 杨保华 戴王剑 曹亚仑 (作者) http://www.amazon.cn/Docker技术入门与实战-杨保华-戴王剑-曹亚仑/dp/B00SMJ0VFA/ref=sr_1_2?s=digital-text&ie=UTF8&qid=1435217727&sr=1-2&keywords=docker

《SaltStack技术入门与实践》—— 实践案例 &lt;中小型Web架构&gt;3 Memcached配置管理

实践案例 <中小型Web架构>3 Memcached配置管理 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 Memcached介绍 Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态数据库驱动网站的访问速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通