最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

kettle中访问前一行数据

来源:懂视网 责编:小采 时间:2020-11-09 14:51:41
文档

kettle中访问前一行数据

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

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步骤更有优势。

\

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

文档

kettle中访问前一行数据

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

最新推荐

猜你喜欢

热门推荐

专题
Top