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:是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初认识的更多相关文章
- 基于ETL技术的数字化校园共享数据中心设计
摘要:数据的抽取.转换与加载(ETL)是数据整合的核心过程.在分析高校信息化建设现状基础上,以建立数字化校园.整合数据资源.实现数据共享为目标,提出以ETL为基础建立共享数据中心实现数据整合的方案.介 ...
- ETL技术( Extract-Transform-Load) 数据仓库技术-比如kettle
每次面试,互联网的面试官,经常问我有没有用过ETL,每次我都懵逼,说没用过,觉得是多么高大上的东东,数据仓储 今天查了一下,我晕,自己天天用的Kettle就是最典型的ETL, 可以实现不同数据库之间的 ...
- 赞一个 kindle电子书有最新的计算机图书可买了【Docker技术入门与实战】
最近对docker这个比较感兴趣,找一个比较完整的书籍看看,在z.cn上找到了电子书,jd dangdang看来要加油啊 Docker技术入门与实战 [Kindle电子书] ~ 杨保华 戴王剑 曹亚仑 ...
- 【Zigbee技术入门教程-02】一图读懂ZStack协议栈的基本架构和工作机理
[Zigbee技术入门教程-02]一图读懂ZStack协议栈的基本架构和工作机理 广东职业技术学院 欧浩源 ohy3686@foxmail.com Z-Stack协议栈是一个基于任务轮询方式的操作 ...
- 【Zigbee技术入门教程-号外】基于Z-Stack协议栈的抢答系统
[Zigbee技术入门教程-号外]基于Z-Stack协议栈的抢答系统 广东职业技术学院 欧浩源 一.引言 2017年全国职业院校技能大赛"物联网技术应用"赛项中任务三题2的 ...
- 【Zigbee技术入门教程-01】Zigbee无线组网技术入门的学习路线
[Zigbee技术入门教程-01]Zigbee无线组网技术入门的学习路线 广东职业技术学院 欧浩源 一.引言 在物联网技术应用的知识体系中,Zigbee无线组网技术是非常重要的一环,也是大家感 ...
- Docker技术入门与实战 第二版-学习笔记-10-Docker Machine 项目-2-driver
1>使用的driver 1〉generic 使用带有SSH的现有VM/主机创建机器. 如果你使用的是机器不直接支持的provider,或者希望导入现有主机以允许Docker Machine进行管 ...
- Docker技术入门与实战 第二版-学习笔记-8-网络功能network-3-容器访问控制和自定义网桥
1)容器访问控制 容器的访问控制,主要通过 Linux 上的 iptables防火墙来进行管理和实现. iptables是 Linux 上默认的防火墙软件,在大部分发行版中都自带. 容器访问外部网络 ...
- 【Zigbee技术入门教程-02】一图读懂ZStack协议栈的核心思想与工作机理
[Zigbee技术入门教程-02]一图读懂ZStack协议栈的核心思想与工作机理 广东职业技术学院 欧浩源 Z-Stack协议栈是一个基于任务轮询方式的操作系统,其任务调度和资源分配由操作系统抽 ...
随机推荐
- Docker背后的内核知识:命名空间资源隔离---亲测
参考URL: https://linux.cn/article-5057-1.html 实现代码(网络和用户空间只是看懂了) 实际上,Linux内核实现namespace的主要目的就是为了实现轻量级虚 ...
- HDU 1061.Rightmost Digit-规律题 or 快速幂取模
Rightmost Digit Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- System Center VMM请注意不同语言版本的差异
在私有云的项目中,经常需要判断System Center一些组件的连接是否OK. 我这里有开发,和测试两个环境,开发是英文版的System Center VMM,测试用的是中文版的System Cen ...
- 前端面试题 vue
webpack 作用:webpack是把项目当作一个整体,通过一个给定的的主文件,webpack将从这个文件开始找到你的项目的所有依赖文件,使用loaders处理它们,最后打包成一个或多个浏览器可识别 ...
- sed 概述
sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送 ...
- RPD Volume 168 Issue 4 March 2016 评论1
GEANT4 calculations of neutron dose in radiation protection using a homogeneous phantom and a Chines ...
- Codeforces 788C The Great Mixing(背包问题建模+bitset优化或BFS)
[题目链接] http://codeforces.com/problemset/problem/788/C [题目大意] 给出一些浓度的饮料,要求调出n/1000浓度的饮料,问最少需要多少升饮料 [题 ...
- [Contest20180316]Game
这题有一个结论:如果他是最强的(⑨),那么线段树最优,如果他是最弱的,那么链状树最优 严格证明可能挺困难,感性理解就是公平赛制让强的人容易赢,极度不公平的赛制能让弱的人有机会反杀 所以我们只改他的能力 ...
- 关于SQL优化方面的一些总结
在sql查询中为了提高查询效率,我们常常会采取一些措施对查询语句进行sql优化,下面总结的一些方法,有需要的可以参考参考. 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 ord ...
- [BZOJ5358]/[HDU6287]口算训练
[BZOJ5358]/[HDU6287]口算训练 题目大意: 给定一个长度为\(n(n\le10^5)\)的正整数序列\(a_{1\sim n}\),\(m(m\le10^5)\)次询问.每次询问给出 ...