Kettle——转换步骤信息统计两种实现

2023-10-28

Kettle-步骤数据处理数量记录获取

      Kettle获取数据处理条数记录日志信息:以前的途径是配置转换的日志信息来保存到数据库中,这种方式不是很灵活。

      有没有一种类似步骤方式来进行获取呢?Kettle在5.0版本中提供了一个步骤:在【统计】-【转换步骤信息统计】。

       【转换步骤信息统计】步骤使用方式也很简单,如下图所示:

      
转换步骤信息统计使用截图
转换步骤信息统计使用截图

       【转换步骤信息统计】点击获取步骤,选择进行步骤信息统计的步骤,若是没有步骤,可以手写指定。右侧图为输出统计信息字段配置(字段名称)

       运行结果:

但是这个步骤无法获取前面步骤的字段,因此进行了修改,使其支持获取前面步骤的相关字段。相关代码参见:https://git.oschina.net/zokapper/Kettle-plugins

另外一种方式:利用【java代码】步骤实现效果,这个和上面的插件原理大致一样。这种方式更灵活(随时改代码),但是缺点也很明显,不如插件方式简单直观,使用起来复杂。如下图所示

自定义Java Class


import org.pentaho.di.trans.*;
import org.pentaho.di.trans.step.*;
import java.util.*;
import org.pentaho.di.i18n.BaseMessages;

private StepInterface previousStep;
private Object[] previousRow;
private Object[] r;
private Date startDate;
private boolean previousStepStatus;

public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
{
    Object[] row = getRow();
    if (first)
    {
        init();
        if(row!=null){
            startDate = new Date();
            StepStatus stepStatus = new StepStatus(previousStep);
            r = createOutputRow(row, data.outputRowMeta.size());
            int index = getInputRowMeta().size();
            //父step读取数量
            r[index++]=Long.valueOf(stepStatus.getLinesRead());
            //父step输入数量
            r[index++]=Long.valueOf(stepStatus.getLinesWritten());
            //父step入库数量
            r[index++]=Long.valueOf(stepStatus.getLinesOutput());
            //父step更新数量
            r[index++]=Long.valueOf(stepStatus.getLinesUpdated());
            //父step拒绝数量
            r[index++]=Long.valueOf(stepStatus.getLinesRejected());

            //开始时间
            r[index++] = startDate;
            //结束时间
            //r[index++] = startDate;
            putRow(data.outputRowMeta, r);
        }
        first = false;
    }
    if (row==null) {
        if (previousRow != null) {// no more input to be expected.
            StepStatus stepStatus = new StepStatus(previousStep);
            r = createOutputRow(previousRow, data.outputRowMeta.size());
            int index = getInputRowMeta().size();
            //父step读取数量
            r[index++]=Long.valueOf(stepStatus.getLinesRead());
            //父step输入数量
            r[index++]=Long.valueOf(stepStatus.getLinesWritten());
            //父step入库数量
            r[index++]=Long.valueOf(stepStatus.getLinesOutput());
            //父step更新数量
            r[index++]=Long.valueOf(stepStatus.getLinesUpdated());
            //父step拒绝数量
            r[index++]=Long.valueOf(stepStatus.getLinesRejected());
            //开始时间
            r[index++] = startDate;
            //结束时间
            r[index++] = new Date();
            putRow(data.outputRowMeta, r);
    }
        setOutputDone();
        return false;
    }
    previousRow = row;  
    return true;
}
public void init(){
    //监控步骤的名称
    String previousStepName="ANA_OUT_DAILY";
    Trans trans = getTrans();
    for (int j = 0; j 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kettle——转换步骤信息统计两种实现 的相关文章

  • KETTLE使用教程

    1 Kettle的下载与安装 kettle的最新下载地址 xff1a http community pentaho com projects data integration 由于Kettle 是采用java 编写 xff0c 因此需要在本
  • kettle配置资源库

    kettle 数据库资源库配置 在使用kettle过程中可以配置资源库 将建好的作业和转换都保存在资源库中 下次直接登录就可以看到所有保存的作业和转换 本教程使用kettle v8 2 mysql 5 7 24做演示 方法 步骤 前期准备工
  • kettle获取系统时间,设置变量,获取变量

    kettle获取系统时间 设置变量 获取变量 两种方式 正则表达式 Java代码 一 新建转换 新建转换 在输入中选择获取系统信息 正则表达式 在脚本中选择正则表达式脚本 为什么要选择正则表达式脚本呢 简单 好用 2023 07 29 13
  • Kettle——转换步骤信息统计两种实现

    Kettle 步骤数据处理数量记录获取 Kettle获取数据处理条数记录日志信息 以前的途径是配置转换的日志信息来保存到数据库中 这种方式不是很灵活 有没有一种类似步骤方式来进行获取呢 Kettle在5 0版本中提供了一个步骤 在 统计 转
  • Kettle Spoon入门教程

    Kettle是一款国外开源的ETL工具 纯java编写 可以在Window Linux Unix上运行 数据抽取高效稳定 其中 Spoon是Kettle中的一个组件 其他组件有PAN CHEF Encr和KITCHEN等 Spoon通过图形
  • Apache Hive+Kerberos安装配置及 Kettle(Pentaho)访问带 Kerberos 认证的 Hive的集成

    目录 1 连接 2 KDC 安装 2 1 安装 Kerberos 服务 2 2 配置 var kerberos krb5kdc kdc conf 2 3 配置 var kerberos krb5kdc kadm5 acl 2 4 配置 et
  • Kettle_js脚本_示例

    Kettle 版本7 0 一 String function 1 date2str js操作时间 var dValue new Date 把时间变成字符串 var dValue1 date2str dValue 把时间变成当前格式字符串 v
  • Kettle部署集群

    环境 1台Windows主机 2台Linux服务器 软件版本 Kettle7 0 目的 搭建Kettle集群 过程 1 安装Kettle Kettle程序整合了Linux平台和Windows平台 所以直接解压官网文件到磁盘上就OK啦 2 设
  • Linux部署kettle并设置定时任务

    一 安装Kettle linux中使用kettle时首先需要jdk环境 这里就不概述linux中jdk的安装与配置了 1 首先将kettle压缩包放入linux并解压 unzip data integration zip kettle安装路
  • datax-web使用介绍

    datax web 路由策略 当执行器集群部署时 提供丰富的路由策略 包括 FIRST 第一个 固定选择第一个机器 LAST 最后一个 固定选择最后一个机器 ROUND 轮询 RANDOM 随机 随机选择在线的机器 CONSISTENT H
  • SSH通道的Kettle链接MySQL方法

    参考文献 http www ukettle org thread 452 1 1 html 对于采用SSH通道的MySQL服务器 Kettle无法直接连接 需要使用到 使用 SSH 工具 PUTTY
  • kettle问题:The last packet successfully received from the server was 156 milliseconds ago.

    在使用kettle时遇到MySQL数据库连接问题 1 Navicat可以连接到目标MySQL库 说明不是数据库权限的问题 2 用kettle可以连接其他同版本MySQL库 说明也不是jar包的问题 最终 尝试过重启电脑 删除kettle文件
  • 一百、Kettle(9.3.0)连接ClickHouse

    注意 低版本的kettle即使装ClickHouse驱动包后也不一定支持ClickHouse数据库连接 具体kettle从什么版本开始支持ClickHouse没测试过 只有高版本的kettle在安装ClickHouse驱动包后才支持Clic
  • 【Kettle从零开始】第八弹之Kettle变量参数传递介绍

    对于ETL参数传递是一个很重要的环节 因为参数的传递会涉及到业务数据是如何抽取 下面我为大家举例一个简单的需求 需求说明 需要抽取昨天的数据装载到目标表中 1 参数作用域 答 Kettle中参数大致可分为两类 一类是全局参数 一类是局部参数
  • Kettle下载Redisinput插件查询Redis数据

    Kettle下载Redisinput插件查询Redis数据 安装插件 1 下载Redisinput插件 https download csdn net download ispringmw 12909650 2 将完整插件包复制到Kettl
  • kettle开发-Day40-AI分流之case/switch

    前言 前面我们讲到了很多关于数据流的AI方面的介绍 包括自定义组件和算力提升这块的 今天我们来学习一个关于kettle数据分流处理非常重要的组件Switch Case 当我们的数据来源于类似日志 csv文件等半结构化数据时 我们需要在数据流
  • Pentaho 数据集成无法在新的 Mac M1 上启动

    当我尝试在 Mac bigSur M1 上运行 Pentaho Data Integration 时遇到问题 问题代码如下 I m sorry this Mac platform arm64 is not yet supported Ple
  • 如何在 Pentaho BI 服务器 v6 CE 上部署计划的 Kettle 作业

    我有一台运行 Pentaho BI 服务器 v6 社区版的服务器 我们开发了一项 Kettle 作业 用于从一个数据库提取到另一个数据库 并导出为 KJB 文件 我想每 12 个小时左右运行一次这项工作 我注意到BI服务器已经包含了Kett
  • 壶 '?'不工作表输入步骤

    我想从数据库中获取所有表名 然后从表中获取所有行 所以我创建了这样的转换 获取表名称 添加数据库连接并将表名称存储在名为 tablename 的输出字段中 表输入 标记为 替换脚本中的变量 和 对每行执行 添加了 从步骤插入数据 中的第一步
  • 限制号mongodb 输入中的行数

    如何限制数量 在kettle中使用的mongodb输入转换中检索到的行数 我尝试在 mongodb 输入查询中使用以下查询 但它们都不起作用 查询 限制 10 或 limit 10 请让我知道我哪里出错了 谢谢 迪普蒂 有几个查询修改操作符

随机推荐

  • Devops学习实践(二) Jenkins安装、配置、任务构建

    随着工作的要求 devops作为今年工作的一个重点 由此也引发了自己对于devops相关的工具和技术的学习和实践 基于上述背景 这个系列将逐步的介绍SVN的安装和配置 jenkins安装和配置 reviewboard findbugs ch
  • 2021-12-17 nec 红外线 协议

    1 nec协议编码 Tim中断后 下降沿输出 6个 脉冲 分别系 1 引导码 9ms 低电平 4 5ms 高电平 2 5 数据脉冲 分别接收 8位数据 u32 data 数据0 1 按硬件实际协议定义 0 低电平 560us 高电平 560
  • 如何用AI实现视频防抖?台湾大学和谷歌提出NeRViS:无需裁剪的全帧视频稳定算法...

    点击上方 CVer 选择加 星标 置顶 重磅干货 第一时间送达 鱼羊 发自 凹非寺 来源 量子位 QbitAI 右边的画面 是不是比左边的画面看上去稳定许多 这样的效果 大家可能并不陌生 现在 不少手机厂商都为自家手机配备了类似的防抖算法
  • 以神龙出行小程序为例,说一些网站技术

    注册和登录功能 用户注册和登录可以使用手机号验证 第三方登录等方式来实现 这需要与后台服务器进行数据交互 并进行身份验证 数据存储和管理 用户的个人信息和常用地址需要进行存储和管理 这可以通过数据库来实现 如关系型数据库或NoSQL数据库
  • 前端设计模式和设计原则之设计模式

    作为前端开发 在code时 或多或少地都会践行设计模式 但是你清楚自己用到的是何种设计模式吗 为什么前端开发一定要懂设计模式呢 code时不遵从设计模式 又能怎样呢 上面的问题可以留作思考 这里首先介绍一下前端开发经常遇到的一些设计模式和设
  • linux云计算(linux系统)

    什么是linux linux是一种操作系统 曾经被Microsoft视为最大的威胁 而今是互联网领域的幕后老大 Unix Linux发展史 unix系统发展在这里插入代码片 unix诞生 1969年底 Ken Thompson Dennis
  • java抽象类理解

    在java中抽象类不一定要有抽象方法 可以将所有方法都实现一遍 但class类声明为抽象类 这样做和不声明抽象类相比 差别只是抽象类不能实例化 继承的关键字仍然是extends 而且继承过后可以不覆盖方法 只是使用继承而来的方法 1 在js
  • 进入nodejs 利用http模块搭建一个简单的服务器并配合fs模块网客户端传输文件

    node js简单了解 node js是一个软件 它是js的代码运行环境 可以运行js代码然后实现服务器的功能 node js的开发是模块化开发的思想 在下载配置好node js后 我们直接就可编写js文件代码在终端中运行 注意要进入文件所
  • Django练习——基于Mysql的登录注册功能界面(django模型、模板、表单简单应用)

    目录 1 创建 2 配置Mysql 1 连接数据库驱动 2 创建表格 3 创建迁移文件并同步到数据库 3 admin后台 1 创建超级用户 2 注册模型login msg 4 路由与视图 4 1先搭框架 4 2编写视图处理函数 5 运行结果
  • 斯坦福NLP笔记75 —— Introducing Ranked Retrieval

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 基本是一些tdidf的基本概念 先跳过 转载于 https my oschina net silverhammer blog 294134
  • SpringBoot接口 - 如何提供多个版本接口

    在以SpringBoot开发Restful接口时 由于模块 系统等业务的变化 需要对同一接口提供不同版本的参数实现 老的接口还有模块或者系统在用 不能直接改 所以需要不同版本 如何更加优雅的实现多版本接口呢 SpringBoot接口 如何提
  • Error[Li005]: no definition for “assert_failed“ 的解决办法

    开发环境 IAR 单片机型号 stm8 具体报错 Error Li005 no definition for assert failed referenced from lt 工程路径 名称 gt Debug Obj stm810x gpi
  • keil5 调试出现“EVALUATION MODE Running with Code Size Limit:2K“解决办法

    楼主在keil5上安装51芯片包后 使用中出现 EVALUATION MODE Running with Code Size Limit 2K 提示 但不影响正常使用 原因是keil5的51包未正常安装 使用生成ID code解决 最终获得
  • L1-6 整除光棍 (20分)

    这里所谓的 光棍 并不是指单身汪啦 说的是全部由1组成的数字 比如1 11 111 1111等 传说任何一个光棍都能被一个不以5结尾的奇数整除 比如 111111就可以被13整除 现在 你的程序要读入一个整数x 这个整数一定是奇数并且不以5
  • 【云原生之kubernetes】kubernetes集群高级资源对象statefulesets

    云原生之kubernetes kubernetes集群高级资源对象statefulesets 一 statefulesets介绍 1 statefulesets简介 2 statefulesets特点 二 检查本地kubernetes集群状
  • STM32简介

    文章目录 STM32简介 STM32选型 STM32F1片上资源 外设 STM32系列芯片命名规则 STM32系统结构 引脚定义 启动配置 最小系统电路 STM32简介 这一节只用大概混个眼熟 不要深究 STM32选型 STM32可分为Hi
  • 一文读懂XPath基本语法_XPath语法详解_XPath教程

    因为最近在学习与整理有关python爬虫的文章 连带遇到XPath的使用 就顺便一起整理出来 XPath与自动化的关系 XPath是一门在XML文档中查找信息的语言 可用来在XML文档中对元素和属性进行遍历 XPath是用来选择 节点 的一
  • MCAL介绍及Module Plugin开发流程总结

    Mcal 微控制器抽象层位于AUTOSAR分层模型中BSW最底层 包含内部驱动 可以直接访问微控制器和片内外设 MCAL又可以分为微控制器驱动 存储器驱动 通信驱动和I O驱动四个部分 各部分又由具体的与微控制器硬件相对应的驱动模块组成 如
  • MSI cache一致性协议

    按照高速缓存的写策略的不同 有写直达和写回WB两种高速缓存 1 写直达高速缓存 一旦高速缓存中的一个字被修改 则在主存中要立即修改 2 写回高速缓存 并不是立即写回 而是当被修改的字从高速缓存中被替换或清除时 才真正修改主存 在侦听协议的设
  • Kettle——转换步骤信息统计两种实现

    Kettle 步骤数据处理数量记录获取 Kettle获取数据处理条数记录日志信息 以前的途径是配置转换的日志信息来保存到数据库中 这种方式不是很灵活 有没有一种类似步骤方式来进行获取呢 Kettle在5 0版本中提供了一个步骤 在 统计 转