问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ETL kettle从上一步传来的参数怎么使用?

发布网友 发布时间:2022-04-23 00:30

我来回答

2个回答

懂视网 时间:2022-05-06 21:27

kettle中访问前一行数据 在kettle中,当需要访问数据流前一行数据时,很多人都是用javascript步骤的特性;实际上没有必要,不是说javascript步骤不好,主要是性能低,同时也增加了复杂度,因为写代码让javascript步骤难以理解,最好是使用kettle标准步骤实现

kettle中访问前一行数据

在kettle中,当需要访问数据流前一行数据时,很多人都是用javascript步骤的特性;实际上没有必要,不是说javascript步骤不好,主要是性能低,同时也增加了复杂度,因为写代码让javascript步骤难以理解,最好是使用kettle标准步骤实现。我们的原则是代码最小化,过程轻松。

(The Analytic Query Step)分析查询步骤

TheAnalytic Query 步骤可以查找数据流中的前面行或后面行,并且取值到当前行,很多场合是非常有用的,但是我感觉通常被开发者忽略。在“statistics”(统计)分类里有该步骤,下面的章节展示如何使用。

需求场景:计算库存之和

假设需要计算数据流中某字段的累计和,如库存和。原始数据是针对每个货物的交易信息,导致库存增加或减少,交易是按照日期排序。需要计算每次交易后当前库存量的值,并作为一个新字段保存,结果如下图所示:

A、B、C列是输入,列D是通过转换步骤计算出来的。

一种解决方法基于“Analytic Query”和“JavaScript modified Value”步骤

该思路是通过简短的javasript代码去实现,记录当前产品的库存,然后增加交易值,并在新字段中保存结果。如果数据流是按照产品和日期排序,需要针对当前产品增加一个库存计数器,当前产品是新产品(相对前一行),则计数器被置为1,否则为0。通常情况很多人通过javascript代码访问前一行,这种方法并不可取,除了javascript步骤外,还有“Analytic Query”步骤。本例中javascript步骤仅仅根据新字段值判断是否为新的产品,尽量保持javascript步骤简洁,可以减少错误产生。

这里是解决方法,点击下载:

首先读取数据并按照产品和日期排序,然后前一行产品值增加到“prev_product”字段中,接下来的步骤是和当前产品进行比较,并把标志值保存在“is_new_product”字段中,后面javascript步骤使用之前的信息计算就变得非常简单了。

javascript代码如下:

var stock;

if (is_new_product ==1){

stock = 0;

}

stock += delta;

为了使结果更直观,最后两个步骤是去除辅助字段并安装日期和产品排序。我们可以通过右击每个步骤,通过查看输出步骤,确认每个步骤的输出字段情况。

更简单的方法:无脚步解决方案

使用“group by”步骤,根据输入分组计算和,在本场景中,比使用“AnalyticQuery”步骤和javascript步骤更有优势。

无脚步解决方案代码下载。

热心网友 时间:2022-05-06 18:35

要使用从上一步传来的参数,只要在使用SQL进行引用就可以。

ps:对应的拓扑结构:

ETL:

是“Extract、 Transform 、Load”的缩写,也就是代表ETL过程的三个最主要步骤:“抽取、转换、装载”,但我们平时往往简称其为数据抽取。

Kettle:

是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么是Medical Literature Analysis and Retrieval System (NLM)的缩 ... 医学工作者的因特网内容简介 2002年的一篇文章英文摘要被《医学文献联机数据库》(MEDLINE)收录,是否... 医学器具medline啥意思 民国市与县的关系是怎样的,市与县分别又是什么? 历代兵制中国民国兵制 冰箱运行时有水流声怎么回事? ud牛郎眼影真假判断 爆闪/没有平替❌ 牛郎眼影真假鉴别方法 鉴别❗️衰败城市牛郎眼影真假,粉质肉眼差距 什么是“ETL”? 开源ETL工具比较,Kettle和Talend,都有什么优势和劣势? ETL 数据抽取 如何实现增量抽取 ETL工具主流产品有哪些? ETL和ssis ssas ssrs是个什么关系? ETL的原理? ETL的介绍 ETL什么意思 开源的ETL产品有哪些? “etl”是什么? etl的概念,etl和elt数据处理上的区别 堡垒之夜常见问题?该如何解决姐姐 解答 为什么堡垒之夜内存足够却点不了安装按钮 新浪微博热门评论是根据赞的多少排序的吧?可是为什么数字那么乱?例如热评第一条也不一定是点赞数最多的 堡垒之夜加载时偶尔会出现内存不能read,并不是每次都这样。 有人发微博,下面评论很多,怎样找到自己发的?(新浪) 笔记本显存不够怎么办我想玩堡垒之夜 - 信息提示 下载堡垒之夜时弹出来如下窗口,但明明磁盘有空间,求解决方法 我的电脑配置为什老是不能玩吃鸡和堡垒之夜,一玩就提醒什么内存分配不足,渲染啥的 qq怎么绑定安全邮箱? 面包车摆摊卖水果需要什么工具? 卖水果的营销方法有哪些? 我QQ密码保护+安全邮箱都忘记了!如何找回! 忘记了QQ密码保护的安全邮箱怎么办? 我QQ被盗了,我不知道我的安全邮箱了怎么办 QQ密码保护的的安全电子邮件地址!我忘了整么办? 卖水果的术语有哪些? 申请qq时绑定的安全邮箱,是否可以用密保问题与答案或身份证号找回或查看? 卖水果一般用什么秤? 卖水果需要了解水果方面的哪些知识与技巧? QQ绑定的安全邮箱跟绑定的手机(不是密保手机哦)在哪里解除呢 卖水果要不要办卫生许可证? 忘记绑定qq的邮箱怎么解? 卖水果用什么称好点?请看问题补充。 卖水果的用英文怎么拼? 眼镜戴久了有什么坏处? 眼镜戴久会怎么样?对眼睛伤害吗? 眼镜戴久了真的对眼睛不好吗?为什么? 怎样修改应用锁的密码呢