kettle实战
kettle技巧与实际场景分享
onemy
这个作者很懒,什么都没留下…
展开
-
Kettle实战-目录(在此导航)
前言第1章 kettle概览 1.1 ETL介绍 1.2 适用场景-数据处理 1.3 适用场景-业务处理 1.4 怎样学好KETTLE第2章 kettle基本知识 2.1 转换 2.2 作业 2.3 kettle各个工具 2.4 变量 2.5数据库连接 2.6虚拟文件系统 2.7技巧与原则第3章 kettle数据处理 3.1 数据输入 3.1.1 SAP输...原创 2019-04-24 15:01:56 · 2617 阅读 · 1 评论 -
kettle实战-5kettle+OMI实战场景-5.1大数据场景POC
本场景是为某大数据项目做的一个产品POC,现在分享给大家。此项目主要从几个业务系统中同步数据进行加工处理分析,最后生成API供前端展示。POC分两大场景,一个非实时场景及准实时场景。 非实时场景流程如上图,OMI(onemysoft.com开发的一个以kettle为引擎的数据处理平台)通过调度定时从若干业务系统中抽取数据,按照相应逻辑生成文本文件,传至FTP或阿里云的OSS分布式文...原创 2019-07-01 16:47:53 · 3561 阅读 · 0 评论 -
kettle实战-4 OMI介绍-4.6 服务应用
为己发布服务设计交互界面,如:参数条件,显示字段等,满足简单应用需求。原创 2019-07-05 09:51:09 · 1238 阅读 · 0 评论 -
kettle实战-4 OMI介绍-4.5 MQ监听
多种MQ队列监听设置,支持阿里ons,JMS,rabbitMQ,kafka。监听器需要配置一个监听处理的服务组件,即发布服务中创建的服务。原创 2019-07-05 09:44:55 · 2523 阅读 · 0 评论 -
kettle实战-4 OMI介绍-4.4 服务网关
将发布出的服务进行管理控制,权限、流量、访问频度、跨域等配置。原创 2019-07-05 09:37:13 · 907 阅读 · 0 评论 -
kettle实战-4 OMI介绍-4.3 调度任务
创建定时任务,进行调度相关服务组件(“发布服务”中创建的相关服务),或其它远程接口hession,http,RMI。也可以上传JAR包,调用实现指定接口的java方法。 调度支持集群环境,同一时点任务只会在某一台服务器中运行,不会重复执行。...原创 2019-07-05 09:29:53 · 1350 阅读 · 0 评论 -
kettle实战-4 OMI介绍-4.2 服务开发
创建服务(SOAP、REST)并将服务与数据处理相关联,也可以理解为将数据处理发布成服务,供外部调用。通过向导配置服务相关信息,基本、访问控制、入参(如果有)、选择数据处理组件(数据开发中配置的“数据处理”)、出参(如果有)。菜单“发布数据”->“创建服务”。 创建的服务可能被外部调用,从而驱动数据处理组件运行,即kettle的转换或任务。运行结果日志可供查看。...原创 2019-07-05 09:29:11 · 1386 阅读 · 0 评论 -
kettle实战-4 OMI介绍-4.1 数据开发
数据开发使用kettle的spoon 工具做线下开发数据处理流程,然后将转换或任务上传至OMI平台。菜单“数据开发”->“资源上传”。 创建数据处理,选择上传资源,配置相关运行参数,在线执行kettle组件,转换或任务,并找看相关运行日志。菜单“数据开发”->“数据处理”。...原创 2019-07-05 09:27:29 · 3338 阅读 · 0 评论 -
kettle实战-3Kettle数据处理-3.2数据转换-3.2.1 万能的javascript脚本节点
JavaScript脚本节点非常的灵活,可以代替多个步骤,比如,定义常量,获取变量,类型转换,合并,拆分等常用功能。但对于新上手的同学在不熟练此节点的情况下还是尽量少写代码,减少出错。什么时候用它呢,系统资源有限、现有步骤不能满足要求且你能写JavaScript脚本,这时你可以选择此节点,本人就非常愿意使用这个节点,承担了大部分转换工作,比如:需求要查找前一天的数据,这时用SQL,或其它节点都...原创 2019-07-08 20:35:06 · 1266 阅读 · 1 评论 -
kettle实战-3Kettle数据处理-3.1数据输入-3.1.1SAP输入
一些大型企业内的系统集成中,经常遇到需要与SAP ERP系统进行集成,有些企业购买了SAP的PI集成中间件产品,那对于接入SAP系统就会轻松一些,PI作为一款ESB产品,对于服务的支持是非常好的,但对于一些企业没有上PI,或者传输数据比较大时,走WEB服务显然就不适合了,通常我们会想到直接走数据库底层,但SAP这类大型ERP系统都是不开放底层数据库表的,就算给你看,你也很难能看懂,己经完全被编...原创 2019-07-08 11:43:55 · 4158 阅读 · 7 评论 -
kettle实战-4 OMI介绍
我们使用Kettle在实际项目应用中,会遇到一些kettle不方便处理的问题,比如想要定时调度执行某个任务时,kettle自带的定时功能肯定是不能满足要求了,它需要界面一直处在打开状态,会占用大量的资源,并且界面有崩溃的风险。当然也有替代方案,就是使用操作系统的计划任务,不管是windows还是linux系统都提供了这样稳定的调度系统。如果你是专业人员和运维,当然是没有问题,写一个bat或sh...原创 2019-06-24 18:02:21 · 6019 阅读 · 1 评论 -
kettle实战-2基本知识-2.7技巧与原则
开发kettle流程时由于kettle本身的灵活性,致使完成一件事情可能每人都有不同的设计,这些不同的设计虽然都能完成工作,但效率或可维护性都变得不同了。下面谈谈我开发kettle的一些技巧与原则: 1、 多写注释,步骤尽量改成有意义的名称(后期好维护) 2、 步骤尽可能的少,能二步解决的,决不三步(耗费线程) 3、 充分发挥数据库能力,一些数据间关联尽量在SQL...原创 2019-06-24 17:59:53 · 687 阅读 · 0 评论 -
kettle实战-2基本知识-2.6虚拟文件系统
Kettle使用apache VFS实现统一的文件访问,这样做是非常方便的,举个例子,正常操作一个文件,这是/xxx/xxx/xxx.doc磁盘上的文件,如果想要操作一个FTP上的文件,有了虚拟文件系统就可以直接使用ftp://xxx/xxx/xxx.doc访问了。如果有密码使用ftp://user:pwd@xxx/xxx/xxx.doc访问。也可以是HTTP,ZIP等一些协议。...原创 2019-04-23 11:44:50 · 522 阅读 · 0 评论 -
kettle实战-2基本知识-2.5数据库连接
数据库连接这个大家应该都常用,这里说几个注意的点吧,有时在数据库表变更,如增加或减少字段时,转换里可能不会立刻出现或消失变更的字段,这时需要右键数据库连接,点击清除缓存就可以了。想要让一个转换内的数据库操作在一个事务中时,要设置转换属性中,杂项中的“使用唯一连接”。不是必须尽量别用,性能下降严重。需要复用的连接可以设置成共享,每次在转换中不用重新建立,出现更新时可以更改一次即可。 数据库...原创 2019-04-22 11:30:02 · 855 阅读 · 0 评论 -
kettle实战-2基本知识-2.4变量
作业和转换中都可以使用变量,变量分全局和运行时两种,全局定义在kettle.properties文件中,在spoon中就可以改,运行时变量可以作为参数传入,也可以在运行定义赋值,变量的作用域分JVM,和作业级,转换内的变量相当于常量,值是不能动态改的。因为转换是各步骤并行,不是按顺序执行,机制决定了如此,想要达到这效果要作业+转换组合实现。 变量可以在任意带有<$>这样图标的...原创 2019-04-19 09:06:14 · 771 阅读 · 0 评论 -
kettle实战-2基本知识-2.3kettle各个工具
Kettle有几个工具介绍一下,matt这个哥们挺有意思的,所有kettle相关的这些名字都跟厨房有关系,据说kettle这个名字就是想让各种数据汇聚在这个水壶中,再统一口径的输出。其它都介绍一下: Spoon:主要是转换和作业的设计工具,kettle是一种图形化的程序开发。 Kitchen:命令行方式执行运行作业,用于编写SHELL脚本,设置操作系统调度。 Pan:命令行方...原创 2019-04-18 14:37:23 · 911 阅读 · 0 评论 -
kettle实战-2基本知识-2.2作业
作业是Kettle的另一个组件,作业也包括步骤和连线,主要作用是将转换有顺序的连接起来,还可以定时执行。转换中不容易控制各步骤的顺序,结合作业就可以更精确的控制处理流程。作业是串行执行的(当然也可以选择并行),现行版本的kettle中,转换中可以调用作业,作业中又包含转换,这些组合可以设计出很复杂的处理流程。 作业的串行执行路径和转换是不同的,按作者的解释是用回溯算法执行所有的作业步骤,...原创 2019-04-18 11:48:13 · 969 阅读 · 1 评论 -
kettle实战-2基本知识-2.1转换
转换是kettle最主要也是最常用的部分,它由步骤和连线组成,划重点了:1、每一个步骤是一个独立线程,转换初始化时,每一个步骤都要初始化(不管有没有数据经过),比如连接数据库之类的工作,转换各步骤并行多线程执行。2、转换从“输入”(kettle输入下面的步骤)开始(有几个特殊的),不是什么步骤都能放在第一步的,可以同时有多个输入步骤,多个数据流程。如图:3、转换步骤间传递的数据,是...原创 2019-04-17 15:36:46 · 1057 阅读 · 0 评论 -
kettle实战-1概览-1.4怎样学好KETTLE
Kettle虽然非常容易上手,但要运用好也需要费点心思,一般经常遇到的问题是步骤不会用,虽然kettle有帮助说明,但并不直观。这里我推荐kettle自带的例子,可能有人也知道,位置就在\data-integration\samples\这个路径文夹下有转换,任务的很多例子,一些常见的例子都有,大家可以运行查看,基本就可以掌握。 如果例子里找不到,需求也比较复杂,与例子对应不上,那就得求...原创 2019-04-16 11:49:49 · 959 阅读 · 1 评论 -
kettle实战-1概览-1.3适用场景-业务处理
再说一些项目中与业务相关的处理操作,像我们会在每晚定时执行一些业务处理,可能是统计、汇总、备份、计算等等,在银行业务中管这种操作叫跑批,不管叫什么,我们的项目中或多或少都会有些这样的定时作业。这种场景如果不用其它工具,基本都是使用存储过程、程序或两者组合来完成。而我们现在是基于kettle来处理的,又涉及比较了,这里再强调一下,这种比较是一种综合考量,不是绝对的哪个好哪个坏,只要你喜欢,你可以...原创 2019-04-16 10:27:52 · 2491 阅读 · 0 评论 -
kettle实战-1概览-1.2适用场景-数据处理2
最后想说另一个项目中常见的场景,就是文件的导入导出。我们经常在项目中会遇到用户要求增加上传excel数据,并读取写入到数据库中的功能,这样的功能几乎废掉了我们的界面写入功能,开发人员会因为精心设计的界面被弃之不用,而非常恼火。可恼火也没用,用户是上帝,每次的抵抗最后都是妥协,上网搜索excel读取,出现了一大堆被折磨的好心前人写下的解决方案,多半还附送上了代码,于是开始一通拷贝、粘贴、调试。至...原创 2019-04-15 11:33:29 · 639 阅读 · 0 评论 -
kettle实战-1概览-1.2适用场景-数据处理1
上一节讲了ETL,ETL就是在数据处理,强调的是批量、高效的处理数据。这节要讲一下数据处理的场景,让人更直观的了解kettle的作用,什么地方可以用它,比其它方式有什么优势。 数据处理在我们日常项目中,主要包括数据初始化、迁移、同步、清洗、导入导出等。首先数据初始化一般在项目上线前,会有一些基础类主数据要预先导入系统中,这时的数据源可能有多种,可能是文本类文件,如excel或txt文件。...原创 2019-04-15 11:33:01 · 1292 阅读 · 0 评论 -
kettle实战-1概览-1.1ETL介绍
都说kettle是一个ETL工具,那就必须先介绍一下ETL是个啥,ETL是三个英文的首字母,分别代表抽取、转换、加载,这个词很久之前就有了,想知道细节的可以自行查找,我们这里讲一些其它教程未做重点突出的部分。ETL表述的是一个过程,我们用一个图和换一个描述来表示一下。 从图上可以看出,其实就是一个输入数据,相应处理,再输出的过程,这个过程对一个程序开发人员来说,可以说再平常不过。我们...原创 2019-04-14 18:48:31 · 937 阅读 · 0 评论 -
Kettle实战-前言
使用kettle工作很多年了,受益于它的开源,不但让我免费得到一个强大的工具,还在学习和运用kettle过程中学到了很多设计、编程等知识。我发现突然到了要大肆夸讲它时,才发现对于使用它像喝水一样平常的事情时,那些溢美之词都显得很无力了。多年的“耳鬓厮磨”使kettle对于我产生了深厚的感情,一直想对kettle的推广做点什么,可是害怕自己经验不够,理解不深误人子弟,其实最主要的是懒惰让这件事只...原创 2019-04-12 18:01:06 · 797 阅读 · 0 评论