前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小程聊微服务-数据抽取那点事(二)

小程聊微服务-数据抽取那点事(二)

作者头像
小程故事多
发布2018-08-22 10:52:47
5500
发布2018-08-22 10:52:47
举报
文章被收录于专栏:微服务生态微服务生态

一、什么是ETL

ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,这里介绍一个ETL工具Kettle,这个工具很强大,支持图形化的GUI设计界面,然后可以以工作流的形式流转,在做一些简单或复杂的数据抽取、质量检测、数据清洗、数据转换、数据过滤等方面有着比较稳定的表现。

二、Kettle概念

Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。 Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。 Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。 Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

Kettle可以在http://kettle.pentaho.org/网站下载。

三、Kettle的使用

要实现实时的增量更新共有两种方法:

1、通过触发器。 在要抽取的表上建立需要的触发器,一般要建立插入、修改、删除三个触发器,每当源表中的数据发生变化,就被相应的触发器将变化的数据写入一个临时 表,抽取线程从临时表中抽取数据,临时表中抽取过的数据被标记或删除。触发器方式的优点是数据抽取的性能较高,缺点是要求业务表建立触发器,对业务系统有 一定的影响。

2.通过时间戳。 可以在两边数据库的表里插入了一列(用来取数据变动时的时间),然后做个计划任务,设置每隔多少时间跑一次kettle,就行了。要实现“实时”,就只能把时间间隔设小一点。

  • 通过时间戳方式

利用kettle工具,通过时间戳完成某表实时的增量更新。 利用模块完成即可,如下简图:

image.png

准备一个实验环境: 准备基本完成如下效果: select t.*, t.rowid from EMP_ETL t

image.png

编写时间戳ktr转换过程,把原表中最大的hiredate作为变量,如下图:

image.png

下面在“表输入”环节中,使用传递过来的${MAXSJ}作为条件,完成向目标表插入数据,简要流程如下:

image.png

执行转换,完成数据插入,简图如下:

image.png

最后利用kettle形成的整体数据流如下图所示:

image.png

下一篇文章,我将重点介绍基于Oracle的双活方案

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.08.03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 要实现实时的增量更新共有两种方法:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档