×

kettle常用组件

kettle常用组件(kettle的java组件怎么去让一列数据分成几列)

admin admin 发表于2024-07-30 08:56:28 浏览6 评论0

抢沙发发表评论

大家好,关于kettle常用组件很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于kettle的java组件怎么去让一列数据分成几列的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

本文目录

kettle的java组件怎么去让一列数据分成几列

kettle的java组件怎么去让一列数据分成几列在Java应用程序中调用Kettle的Transformationpackage com.ggd543.kettle.transimport org.pentaho.di.core.util.EnvUtilimport org.pentaho.di.core.KettleEnvironmentimport org.pentaho.di.trans.{Trans, TransMeta}

kettle中add sequence组件提供自增功能,但是是对哪个参数自增

附件中是个转换,首先生成记录,定义初识年月日2005-1-1,通过sequence自增,但是这里有个问题,add sequence中的值名称是DaySequence,应该是新定义出来的一个参数吧,最终运行的结果是表中每个日期都会自增1,这里不明白,它是怎么对日期进行自增的?? 我另外写了个简单的文本输出转换,也提供了生成记录组件,里面定义3个参数,分别为string,int,date三种类型,然后用增加序列进行自增,最后文本输出,但是结果是定义的三个参数没有增加,而add sequence的值名称对应的值增加了。

kettle中有类似lookup组件吗

  • 有的,流查询和连接数据集可以做到类似lookup的效果

  • kettle中有类似lookup组件吗维度更新/查询(Dimension lookup/update ):联合更新/查询(Combination lookup/update ):这个步骤允许你在一个 junk-dimesion 表里存储信息。插入/更新(Insert/Update):这个步骤利用查询关键字在表中搜索行。如果行没有找到,就插入行。如果能被找 到,并且要被更新的字段没有任何改变,就什么也不做。如果有不同,行就会被更新。

关于kettle的REST Client组件带cookie(session)的使用

前言 近几天组内交给我一个任务,就是研究kettle的restful接口的调用。可是之前学习和接触的大部分都是数仓、BI以及一部分简单程序、脚本的编写,所以对restful接口不是很了解(但只是用工具调用的话,不需要太深的了解,只需要知道这是一种可以调用的API接口,实现某种功能就行了),所以在网上查找了很多资料,但其实对于调用来说,只需要知道在我们在调用这个接口时,需要哪些参数,应该怎样传入就可以了。感觉上好像很简单,但其实里面有很多坑,接下来我们就开始吧 正文 1、首先,我们要知道我们需要调用的接口的URI,简单理解就是你要调用的资源的地址,就像门派号一样,用到什么命令,传递什么参数。一般而言,需要让你进行调用,都会把这部分内容列出来,比如: 在这个API中,可以看到具体的信息,①是操作行为,②是传递的body,③是请求头,在此就不多说了,该部分内容大家可以自行查阅资料,对这些内容我可能比大家还不清楚。知道我要调用的API之后,就可以通过kettle设计转换流程了。 一、生成记录 因为只是一个测试,所以我直接通过生成记录组件生成了我所需要的内容,ps:这里不仅仅可以配置单条记录,其实多条同样请求的记录同样会分别请求。 url是将要post的资源,post后得到关于token的response,然后再利用token进行其余的请求。 body是post的函数体,post时,有的需要带body才能通过。 url2是真正要进行调用的API,都在生成记录里预生成了。 二、REST Client配置 三、JSON Input 利用JSON Input接收由REST Client获取的结果,只保留token的值。此处JSON路径如何设置不多赘述,请读者自行查阅JSON路径的配置。 对于JSON Input 3中获取Cookie是为了调用真正的API做准备。如果没有带Cookie,后续的调用就无法确定是否进行了登录。在一个网页中,我们先进行登录,然后继续后续操作,后续每次操作都不需要再次登录,是因为我们将服务器传给我们的session存入了客户端/浏览器的cookie中,每次我们做请求,都会带上cookie,就不需要重复登录了。但是此处如果不获取cookie,因为是分离开的,所以后一步就会出现会话无效的错误。如下图所示: 四、记录集连接 因为cookie和token在不同的表中,所以需要将两张表join起来,join的操作大家应该都很熟悉了。如果不清楚,后续可以留言我给大家进行补充。最后留下我们需要的几个参数,URL2、token、cookie 五、调用API 以上就是全部内容,如果有什么疑问或者有什么疏漏,欢迎大家指正。

kettle连接hadoop配置hdfs文件数据导出

1、Win10本地安装JDK1.8环境,运行kettle 6.1。 2、在kettle中设置Active shim,在工具打开“hadoop distribution”,选择hdp。将hadoop配置文件hdfs-site.xml、core-site.xml拷贝至本地.\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp23\下,修改本地core-site文件内fs.defaultFS的值,使用hdfs://192.168.85.129:8020。 ***隐藏网址*** 4、新建转换,用hadoop file input组件访问hdfs,数据文件已传至zhengyuan目录下。在内容页签,设置分隔符为tab,格式选unix,在字段页签,加入读取数据的各列的名称、属性信息,这些列名和后面接数组件的字段配置映射时用到。在文件页签-显示文件内容、字典页签-预览记录,多可以浏览数据文件内容,表明配置ok。 5、kettle加个表输出组件,配置接出数据源、数据表,配置映射,即可执行同步,将hdfs文件数据解析同步存至外部数据源,比如mysql。此处只测了数据可以同步,生产中还需考虑调度及增量同步。

Kettle应用之插入更新组件详解

Kettle插入/更新的组件在日常的抽取任务中使用频率相当的高,自己对这部分的了解也仅限于输出中的“插入/更新”。最近公司正在开展BI数据仓库建设,Kettle中输出部分的“ 插入/更新 ”和数据仓库菜单中的“ 维度查询/更新 ”存在使用上的差异,因此下面主要介绍这两组件应用的情况。 如下图,把该组件划分为三个部分,第一部分为组件属性定义,第二部分为Keys,第三部分为Fields。 1、目标模式:即Schema,对应表的所属拥有对象 2、不执行任何更新:如果勾选,则只根据查询匹配结果进行插入操作;未勾选,则执行更新和插入操作; 该部分为查询匹配条件,需根据具体业务场景进行设置定义。其中,表字段即属性定义中的目标表;流里的字段X即整个Transactions数据流中最后输出的字段; 只有当Keys部分中的所有匹配结果为True时,才算是匹配成功;如果其中一个或多个匹配条件为False时,则为匹配失败。 该部分为包含两个作用:1、匹配表字段与流字段;2、判断是更新表字段还是插入表字段;如果“不行执行更新”勾选了,则均执行插入操作,Keys域无意义。当未勾选时,包含以下情况: 此时不管Fields域中“更新”字段是Y or N,都执行插入操作。 (1)当Fields域中所有字段匹配相同时,则不做更新、插入 (2)当Fields域中存在字段匹配不一致时,则会对字段继续进行更新。如果字段“更新”属性为Y则更新,为N则不更新。 综上,该组件基本可以应对所有数据的“插入/更新”操作。 该组件主要涉及数据仓库中的缓慢变化维的概念。缓慢变化维,是由于维度在实际业务场景中并不是静态的,只是会随着时间发生缓慢的变化,相比于事实表或者业务表,主要区别在于维度表变化慢,频率低,特定场景下需要记录数据变化的过程。具体的说明及应用场景,可通过各类搜索引擎查找,资料较为丰富。 如下图,维度查询/更新组件可分为四个部分,第一部分为组件属性定义,第二部分为keys和Fields,第三部分同为数据记录的属性定义。 1、更新维度:如果勾选,则进行插入/更新操作;如果未勾选,则该组件仅作查询用途,查询条件:a、keys域中的对比字段;b、第三部分记录域中时间流查询条件,开始日期《=stream日期字段《=截止日期字段 2、使用缓存:使用缓存目的为了提升插入或更新的效率,该选项和“缓存行数”同步使用 此部分尽讨论组件属性“更新维度”勾选的情况,未勾选的情况已上面阐述。 在第二部分,Keys域为查询条件,Fields域为更新插入区域。 此时无论Fields中更新属性的值如何,都执行插入操作;  (a)Fields字段中存在不同项,且更新属性为插入选项,则插入一条新数据行记录  (b)Fields字段中存在不同项,且更新属性为‘punch through’,则所有version版本的数据记录都会发生更新  (c)Fields字段中存在不同项,且更新属性为’update’,则最后一个version记录的属性发生更新  (d)Fields字段中所有都相同,则不发生变化。 1、代理关键字段:由于会记录数据变化的历史过程信息,因此需在表设计初期定义代理键 2、version字段:每次keys相同的记录发生新增时,version字段自动+1,最大的verison为最新的记录 3、stream日期字段:记录数据流的日期范围,通常为设置为开始日期字段值即可。 4、开始日期字段:数据流导入的开始日期 5、结束日期字段:数据流导入结束日期 综上,如使用“维度查询/更新”组件最好的应用场景是维度表需要记录历史变化数据时,并非所有维度表都需要使用该组件。同时,在决定使用“维度查询/更新”组件时,至少需定义四个字段:KEYS_SEQ_ID(代理键)、VERSION_NO(版本号)、BEGIN_DATE(开始日期)、END_DATE(结束日期)。正常非特殊需求时,使用“插入/更新”组件即可。 但是在以上的介绍过程中可以发现,在该组件中并没有 时间戳的利用 ,即Keys域在做比较时,是 把Transaction流中的数据和维度表中的所有数据进行核对 ,需考虑在对比核对中可能存在的性能问题。 以上,如有说明错误或不明白之处,烦请指出。

基于spring-boot的kettle调度

大家好,我是帅气小伙,由于最近公司项目辗转大数据,需要做数据抽取的工作,kettle是目前比较成熟的ETL工具,而传统的kettle客户端在任务调度这方面没有实现,于是在网上寻找开源的kettle调度项目。

kettle-manager 专门为kettle这款优秀的ETL工具开发的web端管理工具。貌似源码跑起来比较费劲,各种缺包,于是我为大家专门整理了一下这个项目。全maven管理的***隐藏网址*** 如果想学习kettle的可以用我的github项目运行,毕竟我在群里天天发现都有人因为无法运行项目而提问。

kettle的集成

由于kettle-manager是一个完整的web项目,功能也比较多,但是实际应用中,只需用到几个关键的点,就能够实现kettle的web调度。因此我们需要把kettle的调度从项目中分离出来,这样才能够更好地集成到自己的项目中去。于是我觉得将它抽出来,基于spring-boot,具体的业务也分离出来,kettle作为一个组件。

renren-kettle

项目说明

项目实现功能

项目结构

实时websocket的接入例子

部署指南

如需加入项目,请邮件 823894716@qq.com

以上就是我们为大家找到的有关“kettle常用组件(kettle的java组件怎么去让一列数据分成几列)”的所有内容了,希望可以帮助到你。如果对我们网站的其他内容感兴趣请持续关注本站。