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:是port号

再以下就是username password了。

填好全部的信息后 能够点击test測试下能不能成功连接。

成功连接就可以点击确定 界面就会回到上面的左图

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

上图左边

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

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

记录数量限制:默觉得0 若设为大于0的不论什么值 则不管sql怎么写的 输入表仅仅有设置的行数那么多。

如今来看表输出:

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

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

数据库连接 :没有须要新建 能够新建几个 新建好的能够编辑

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

目标表:能够自己输入。也能够从浏览里面选择

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

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

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

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

PV数据库连接的编辑后 会弹出上图右图 与表输入的一样 填写数据库的tns信息 及usernamepassword。点击test能够连接后 点击确定

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

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

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

  1. 基于ETL技术的数字化校园共享数据中心设计

    摘要:数据的抽取.转换与加载(ETL)是数据整合的核心过程.在分析高校信息化建设现状基础上,以建立数字化校园.整合数据资源.实现数据共享为目标,提出以ETL为基础建立共享数据中心实现数据整合的方案.介 ...

  2. ETL技术( Extract-Transform-Load) 数据仓库技术-比如kettle

    每次面试,互联网的面试官,经常问我有没有用过ETL,每次我都懵逼,说没用过,觉得是多么高大上的东东,数据仓储 今天查了一下,我晕,自己天天用的Kettle就是最典型的ETL, 可以实现不同数据库之间的 ...

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

    最近对docker这个比较感兴趣,找一个比较完整的书籍看看,在z.cn上找到了电子书,jd dangdang看来要加油啊 Docker技术入门与实战 [Kindle电子书] ~ 杨保华 戴王剑 曹亚仑 ...

  4. 【Zigbee技术入门教程-02】一图读懂ZStack协议栈的基本架构和工作机理

    [Zigbee技术入门教程-02]一图读懂ZStack协议栈的基本架构和工作机理 广东职业技术学院  欧浩源  ohy3686@foxmail.com Z-Stack协议栈是一个基于任务轮询方式的操作 ...

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

    [Zigbee技术入门教程-号外]基于Z-Stack协议栈的抢答系统 广东职业技术学院  欧浩源 一.引言    2017年全国职业院校技能大赛"物联网技术应用"赛项中任务三题2的 ...

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

    [Zigbee技术入门教程-01]Zigbee无线组网技术入门的学习路线 广东职业技术学院  欧浩源 一.引言    在物联网技术应用的知识体系中,Zigbee无线组网技术是非常重要的一环,也是大家感 ...

  7. Docker技术入门与实战 第二版-学习笔记-10-Docker Machine 项目-2-driver

    1>使用的driver 1〉generic 使用带有SSH的现有VM/主机创建机器. 如果你使用的是机器不直接支持的provider,或者希望导入现有主机以允许Docker Machine进行管 ...

  8. Docker技术入门与实战 第二版-学习笔记-8-网络功能network-3-容器访问控制和自定义网桥

    1)容器访问控制 容器的访问控制,主要通过 Linux 上的 iptables防火墙来进行管理和实现. iptables是 Linux 上默认的防火墙软件,在大部分发行版中都自带. 容器访问外部网络 ...

  9. 【Zigbee技术入门教程-02】一图读懂ZStack协议栈的核心思想与工作机理

    [Zigbee技术入门教程-02]一图读懂ZStack协议栈的核心思想与工作机理 广东职业技术学院  欧浩源   Z-Stack协议栈是一个基于任务轮询方式的操作系统,其任务调度和资源分配由操作系统抽 ...

随机推荐

  1. ie 下input光标位置垂直不居中问题

    input输入框用一个背景图模拟,设置height和line-height一样的高度,使里面的输入文字能够居中, 在FF下出现的情况是:点击input时,输入光标其实上跟input的height一样高 ...

  2. KDJ回测

    # -*- coding: utf-8 -*- import os import pandas as pd # ========== 遍历数据文件夹中所有股票文件的文件名,得到股票代码列表stock_ ...

  3. k8s的chart学习(下)

    1.开发自己的chart Kubernetes 给我们提供了大量官方 chart,不过要部署微服务应用,还是需要开发自己的 chart,下面就来实践这个主题. 1.1创建 chart 执行 helm ...

  4. 在阿里云“专有网络”网络类型中配置vsftpd

    原文地址:传送门 环境:云服务器ECS,网络类型为“专有网络”,创建ECS绑定公网IP:系统镜像为Debian 8  现象:FTP客户端可以连接FTP服务端,但“读取目录列表失败”.       原因 ...

  5. selenium 难定位元素,时间插件,下拉框定位,string包含,定位列表中的一个,技巧

    关于frame: 如果网页存在iframe的话,传统的定位有时候找不到元素,需要切换frame: # 切换到leftFrame定位“测井设计” driver.switch_to_frame(" ...

  6. HDU 多校1.11

  7. HDU 2521 反素数(数论,比较)

    #include<iostream> #include<cstring> #include<cmath> #include<cstdio> using ...

  8. python判断一个数是否是2的几次幂

    判断一个数是不是2的几次幂,最简单粗暴的做法就是直接迭代除以2,这里有一个更好的方法,那就是采用位运算. 我们观察下面属于2的几次幂的数的变化规律,用2进制表示. 十进制 二进制 0 0 2 10 4 ...

  9. php调用html添加超链接的方法

    不知道为何老搜不到,使用require_once命令导入的HTML文件没法加载js脚本,于是只能另谋他路,终于实线了,代码为 <?php header("Content-type:te ...

  10. JVM内存溢出及配置

    一.Java JVM内存介绍 JVM管理两种类型的内存,堆和非堆.按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Java 虚拟机启动时创 ...