kettle

kettle的输入组件

南楼画角 提交于 2020-02-12 13:30:42
1、kettle里面的输入,就是用来抽取数据或生成数据,是ETL操作的E。 2、CSV文件是一种带有固定格式的文本文件。注意:获取字段的时候可以调整自己的字段类型,格式,满足自己的需求哦。 3、文本文件输入,提取日志信息的数据是开发常见的操作,日志信息基本都是文本类型。 首先要获取到要抽取的文本文件哦。 可以选择自己的分隔符哦! 获取字段,如下所示: 4、微软的Excel目前有两种后缀名的文件分别为:xls和xlsx。注意:xls:2007年之前,xlsx:2007年之后。 可以选择自己的Sheet页。 获取到Excel输入的字段,可以手动调整字段类型。 5、多文件合并,数据往往也是以多个文件的形式出现,有的数据还会分散在多个子文件夹。所以合并数据也是开发中非常常见的操作。 6、XML 指可扩展标记语言(EXtensible Markup Language), XML 被设计用来传输和存储数据。   XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。   XPath-语法,选取节点 XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。下面列出了最有用的路径表达式:    XPath,路径表达式,示例,如下所示

【Kettle】Java借助Kettle将Excel导入数据

假如想象 提交于 2020-02-12 02:23:21
示例功能(仅供测试): 在JAVA项目中,将数据从Excel文件导入数据库中。实现该能有多种方法,而本例则是“不走寻常路”,尝试借助Kettle实现数据导入。 原理: Java中调用存储在Kettle资源库的Trans(转换),在Trans中将实现数据的验证、转码、导入,并导出错误数据的Excel 环境: MyEclipse 8.5 + Kettle 4.4 + Oracle/MySQL JAVA代码示例: 需要用到的jar包: kettle-core.jar kettle-db.jar kettle-dbdialog.jar kettle-engine.jar kettle-test.jar kettle-ui-swt.jar kettle-vfs-20100924.jar log4j-1.2.17.jar Oracle_10g_10.2.0.4_JDBC_ojdbc14.jar commons-logging-1.1.3.jar jxl.jar commons-lang-2.6.jar package com.kettle; import org.pentaho.di.core.KettleEnvironment; import org.pentaho.di.core.database.DatabaseMeta; import org.pentaho.di.core

kettle 如何将excel文件导入oracle数据库?

断了今生、忘了曾经 提交于 2020-02-12 00:30:17
1.情景展示   昨日,有一批数据需要导入数据库,但是,plsql不知为何不能导了,于是,我选择使用kettle完成excel数据的导入。 2.准备工作   将对应的数据库所需的jar包拷贝至其lib目录下 3.具体操作   第一步:启动Spoon.bat文件;   第二步:核心对象--》输入--》Excel输入;   选中Excel输入--》将其拖拽至右侧空白区域   第三步:双击该图标进行编辑;    选择对应的excel文件的版本   点增加按钮,文件会被添加到这里   切换到工作表   点击获取工作表名称--》会获取到该excel文件的所有工作表呈现在3上--》双击你要导入的工作表会跑到4上   点“确定”按钮   切换到字段视图--》点击获取来自头部数据字段...   第四步:输出--》表输出--》将其拖拽至右侧空白区域任意位置;   第五步:双击该图标进行编辑;   随便定义个连接名称,设置IP,数据库实例名称,端口号,用户名,密码。   测试数据库连接--》确定--》确认   目标模式--》点击浏览--》选择数据库的用户名;   目标表--》点击浏览--》选择该用户下的哪张表;      第五步:建立数据流的走向;   选择这个按钮--》指向表输出   数据流建立成功   第六步:字段映射    如果excel的字段与数据库表的字段名称不一致,需要勾选上

kettle_errot_karafLifecycleListenter

北战南征 提交于 2020-02-09 10:40:01
使用kettle 6.1 通过命令行批量执行作业的过程中,发现偶尔有作业执行时间会变慢几分钟,查看日志发现改作业开始就报了一个错 报错之后才会继续下面的作业,虽然不影响最终作业执行结果,但也延误了一些跑批时间。 去pentaho论坛查了一下资料,有人给出两种解决方法: 1、(6.0版本)修改 /classes目录下kettle-lifecycle-listeners.xml和ke 大专栏 kettle_errot_karafLifecycleListenter ttle-registry-extensions.xml两个文件成下面这样: kettle-lifecycle-listeners.xml <listeners> </listeners> kettle-registry-extensions.xml <registry-extensions> </registry-extensions> 2、(6.1版本)修改/system/karaf/etc/org.apache.karaf.features.cfg 把featuresBoot=config,pentaho-client,pentaho-metaverse,pdi-dataservice,pdi-data-refinery 改成featuresBoot=config,pentaho-client,pentaho

Pentaho text file input step crashing (out of memory)

a 夏天 提交于 2020-02-07 17:15:55
问题 I am using Pentaho for reading a very large file. 11GB. The process is sometime crashing with out of memory exception, and sometimes it will just say process killed. I am running the job on a machine with 12GB, and giving the process 8 GB. Is there a way to run the Text File Input step with some configuration to use less memory? maybe use the disk more? Thanks! 回答1: Open up spoon.sh/bat or pan/kettle .sh or .bat and change the -Xmx figure. Search for JAVAMAXMEM Even though you have spare

Pentaho text file input step crashing (out of memory)

半城伤御伤魂 提交于 2020-02-07 17:15:48
问题 I am using Pentaho for reading a very large file. 11GB. The process is sometime crashing with out of memory exception, and sometimes it will just say process killed. I am running the job on a machine with 12GB, and giving the process 8 GB. Is there a way to run the Text File Input step with some configuration to use less memory? maybe use the disk more? Thanks! 回答1: Open up spoon.sh/bat or pan/kettle .sh or .bat and change the -Xmx figure. Search for JAVAMAXMEM Even though you have spare

Pentaho text file input step crashing (out of memory)

佐手、 提交于 2020-02-07 17:14:18
问题 I am using Pentaho for reading a very large file. 11GB. The process is sometime crashing with out of memory exception, and sometimes it will just say process killed. I am running the job on a machine with 12GB, and giving the process 8 GB. Is there a way to run the Text File Input step with some configuration to use less memory? maybe use the disk more? Thanks! 回答1: Open up spoon.sh/bat or pan/kettle .sh or .bat and change the -Xmx figure. Search for JAVAMAXMEM Even though you have spare

kettle乱码解决方案

做~自己de王妃 提交于 2020-02-07 01:26:20
第一种:数据库选项添加characterEncoding:utf8 第二种:编辑spoon.bat文件,找到下图的位置,结尾追加 "-Dfile.encoding=UTF-8", 需要重启kettle 来源: CSDN 作者: 疙瘩陈 链接: https://blog.csdn.net/qq_36138324/article/details/104197713

kettle-如何在作业job中使用JavaScript脚本

爱⌒轻易说出口 提交于 2020-02-03 13:00:20
如何在作业job中使用JavaScript脚本 描述(Description) 使用 JavaScript 作业条目来计算布尔表达式。结果可用于确定下一步将要执行的步骤。您可以使用函数,过程调用,“与”,“与”号,“或”,“等式”等。Javascript作业条目会评估并返回true或false。 评估(Evaluation) JavaScript作业条目的结果为true或false。换句话说,它需要以布尔表达式结尾。 下面是一些可能的评估,以结束您的脚本: lines_input > 100 或者 true 或者 parent_job.getVariable("INPUT_DIRECTORY").equals("/tmp"); 以下变量可用于表达式: 注意:确保您指定了从中选择“ lines_input”和其他数字的步骤。否则,值将保持为0。打开转换文件,然后在“转换设置”对话框的“日志”选项卡中执行此操作。 变量 描述 errors 上一个作业条目中的错误数(long) lines_input 从数据库或文件读取的行数(long) lines_output 写入数据库或文件的行数(long) lines_updated 数据库表中更新的行数(long) lines_read 从上一个转换步骤读取的行数(long) lines_writer 写入下一个转换步骤的行数(long)

kettle-如何将作业(job)中设置的参数值,传递到子转换(ktr)脚本

大兔子大兔子 提交于 2020-02-03 10:55:50
用途 如何将作业(job)中设置的参数值,传递到子转换(ktr)脚本。 应用场景 为了保持kettle脚本通用性,一般通过设置命名参数的方式解决。 执行时,通过动态设置参数的达到脚本通用的目的。 例如:脚本job_1,用于计算2组数据,其中时间范围取值如下: 报告名称 时间范围 开始日期(ksrq) 结束日期(jsrq) 报告1 当年1月1日到今天0点 2020-01-01 今日0点 报告2 昨天0点到今天0点 昨天0点 今日0点 问题描述 上述脚本每天都需要手工执行; 每次执行时,都需要手工设置开始、结束时间,较为繁琐,且人工设置容易出错; 希望在不改变子转换脚本的前提下,实现参数的自动传入; 问题分析 由于上述业务需求固定,计划在作业脚本中,编写JavaScript脚本,自动计算开始日期,结束日期参数,并将参数传递到子转换脚本中。 1、作业总体流程 1.1、作业命名参数 1.2、设置变量-步骤 /* 如何将作业(job)中设置的参数值,传递到子转换(ktr)脚本 功能:获取或设置变量 作用域:仅当前作业(job)有效 parent_job.setVariable parent_job.getVariable 功能:获取或设置参数变量 作用域:作业(job)和子转换脚本都有效 parent_job.getParameterValue parent_job