kettle

Kettle 学习知识总结(三)

一世执手 提交于 2019-12-07 02:36:07
接kettle学习知识总结(一) 【注意事项】 1、 如果 kettle 转化过程中,要将一张表中数据转化到另一张不同的数据结构表中,最好在进行“表输入”或者“插入 / 更新”前加入字段选择插件,通过字段选择中的“列映射”,将 A 表中同类型字段映射到 B 表中。 2、如果要在 SQL 语句中引用系统变量使用 ${xxx} 形式,此外还要将“替换 SQL 语句中里的变量”复选框勾选上,这样在执行的过程中才能正确替换系统变量。 3、 如果在 js 脚本中系统自带函数不会使用,可以通过鼠标右键点击“ Sample ”产看函数实例。 4、在 kettle 开发过程中,尽量使用相对路径,而不是用绝对路径,并将路径参数设置到系统的变量中,这样即便后期对目录结构造成较大的改动,只会对 kettle 代码产生较小的影响。 5、 如果相对已经设置好的表输出—— Database field 进行设置,首先要将“ Specify database fields ”复选框进行选中。才能修改。 6、 表输出中“剪裁表”复选框,作用相对先将表中原有内容全部清除,然后重新添加数据。 7、 如果想将日志输出到 kettle 日志控制台中,要使用 utility 中的“ write to log ”工具。否者将不能打印各个步骤执行过程中的步骤。 8、 对于“插入 / 更新”插件 如果不填写查询关键字参数

kettle 大数据插件操作相关问题

柔情痞子 提交于 2019-12-06 12:14:58
一、hadoop 没有权限的解决方案 原文: http://kcd.nivalsoul.cn/article/1545533237270 问题 在 windows 上使用 kettle 连接 hadoop 写文件的时候,默认使用的是本机登录用户作为文件属主访问 HDFS 文件的,如果目标路径权限不允许,就会报错。 解决方案 1、修改 HDFS 目录权限 使用 HDFS 管理员登录将相关目录设置为所有人可写,比如 777 权限 2、在 kettle 中指定操作 HDFS 的用户 由于 HDFS 的 Java API 访问是通过获取 HADOOP_USER_NAME 这个变量来设置用户的,所以可以手动设置该值为 HDFS 上有权限的用户名即可。 1)通过在 Spoon.bat 中设置 在 set OPT= 这一行后面提添加内容: “-DHADOOP_USER_NAME=yourHdfsUser” 2)如果是 Java 代码,可以通过如下方式设置 System.setProperty("HADOOP_USER_NAME", "yourHdfsUser"); //指定属主 二、Linux上执行hdfs文件输出路径不正确 问题:可能创建了文件没有写数据,可能写到linux本地文件路径下,可以按如下设置试试: 在spoon.sh下修改参数 opt字符串里增加 -Dpentaho.karaf

几种 ETL 工具的比较(Kettle,Talend,Informatica 等)

这一生的挚爱 提交于 2019-12-06 06:55:34
成本: 软件 成本包括多方面,主要包括软件产品, 售前培训, 售后咨询, 技术 支持等。 开源 产品本身是免费的,成本主要是培训和咨询,所以成本会一直维持在一个较低水平。 商业产品本身价格很高,但是一般会提供几次免费的咨询或支持,所以采用商用软件最初成本很高,但是逐渐下降。 手工编码最初成本不高,主要是人力成本,但后期维护的工作量会越来越大。 风险: 项目都是有风险的尤其是大项目。 项目的风险主要包括:超出预算,项目延期,没有达到用户的满意和期望 开源产品由于价格上的优势,可以在很大程度上降低项目的风险。 易用性: Talend:有 GUI 图形界面但是以 Eclipse 的插件方式提供。 Kettle:有非常容易使用的 GUI,出现问题可以到社区咨询。 Informatica:有非常容易使用的 GUI,但是要专门的训练。 Inaplex Inaport:没有GUI 技术支持: Talend:主要在美国 Kettle:在美国,欧洲(比利时,德国,法国,英国),亚洲( 中国 ,日本,韩国)都可以找到相关技术支持人员。 Informatica:遍布全世界 Inaplex Inaport:主要在英国 部署: Talend:创建 java 或perl 文件,并通过操作系统调度工具来运行 Kettle:可以使用 job 作业方式或操作系统调度,来执行一个转换文件或作业文件

大饼玩Kettle之安装Kettle7.1

人盡茶涼 提交于 2019-12-06 06:51:27
下载地址 http://community.pentaho.com/projects/data-integration/ 点击DOWNLOAD 下载最新版7.1版本 下载完成后解压即可。 进入解压后的目录,找到Spoon.bat,双击进入Kettle。 必须是JDK1.8版本 <script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script> 来源: CSDN 作者: q12344567789 链接: https://blog.csdn.net/q12344567789/article/details

Error connecting to database: (using class org.gjt.mm.mysql.Driver) The statement (1) has no open cursor

微笑、不失礼 提交于 2019-12-06 02:59:28
I am working on Pentaho Data Integration tool version 5.2. I am trying to connect to data base using 'Table Input' step. but when I test the connection in this step it is giving me the below error message. I am able to connect to DB using the MySQL workbench. I have placed the ' mysql-connector-java-5.1.38-bin ' file in the libext forlder. do I need to downgrade my connector jar file? if yes my SQL version is 5.6 so can some one let me know the compatible connector jar version for this SQL Server version? Error connecting to database [myLedger] : org.pentaho.di.core.exception

Kettle '?' not working Table Input Step

久未见 提交于 2019-12-06 02:58:28
I want to get all the table names from the database and then get all the rows from the tables. So I created a transformation like this: Get Table Names: Added the database connection and stored the table name in a output field called "tablename". Table Input: Marked "Replace variables in script" and "Execute for each row". Added the first step in "Insert data from step". SQL is "SELECT * from ?". I have read up a lot of tutorials online, including the documentation . My problem is that everywhere it says that I my "?" should be replaced with the parameter. But this does not happen. Here are

Using PDI transformation in Pentaho BI server as data source for report parameters

允我心安 提交于 2019-12-06 02:22:34
Any advice on how to use PDI transformation as data source for report parameters in BI server's console? I've uploaded the prpt reports to BI server but the I get a message "Error parsing parameter information". The .prpt and .ktr files are both in the same directory. Actually, just realized that the issue could be solved by adding Transformation (KTR) as a resource. In this case, one can use the File-Resources menu selection. In the dialog select the transformation you wish to import and pick text/xml format. Give the resource a name and save it. You must save your PRPT file again ( File-Save

Pentaho-kettle: Need to create ETL Jobs dynamically based on user input

*爱你&永不变心* 提交于 2019-12-06 00:07:37
问题 In my application, user can specify the format of their file. Based on user input we dynamically create SSIS package. http://lakshmik.blogspot.com/2005/05...eate-ssis.html Dynamically created SSIS package is used for processing user's files. We want to evaluate Pentaho-Kettle for this requirement. Is this possible with Kettle to dynamically create ETL jobs based on user's inputs? If not Pentaho, is there any Java ETL tool which allows use to dynamically create ETL jobs? 回答1: I dont know about

kettle 实现oracle迁移至mysql

本小妞迷上赌 提交于 2019-12-05 19:44:55
公司有需求将两张业务表从oracle迁移至mysql,表的数据量大概3000W左右,在对比了各种迁移方法后,决定使用kettle。 Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。kettle的数据抽取主要在于抽取数据,而没有考虑数据库的函数、存储过程、视图、表结构以及索引、约束等等,如果想对这些内容进行迁移,就需要通过写脚本或者更改kettle源码的方式实现了。 一、安装java 环境 参考: https://www.cnblogs.com/nothingonyou/p/11936850.html 二、部署kettle 官网下载较慢,这里选择国内镜像下载,使用的是pdi-ce-7.1.0.0-12.zip 版本。 官网地址: https://community.hitachivantara.com/s/article/data-integration-kettle 下载地址: http://mirror.bit.edu.cn/pentaho/Data%20Integration/7.1/ 解压后进入到Kettle目录,双击运行spoon.bat文件,出现如下界面及说明kettle成功部署。 1. 数据库连接驱动 在运行之前,我们需要把对应数据库的jar包导入到Kettle的lib目录下

Limit no. of rows in mongodb input

陌路散爱 提交于 2019-12-05 18:51:31
How to limit the no. of rows retrieved in mongodb input transformation used in kettle. I tried in mongodb input query with below queries but none of them are working : {"$query" : {"$limit" : 10}} or {"$limit" : 10} Please let me know where i am going wrong. Thanks, Deepthi There are several query modification operators you can use. Their names are not totally intuitive and don't match the names of functions you would use in the Mongo shell, but they do the same sorts of things. In your case, you need the $maxScan operator. You could write your query as: {"$query": {...}, "$maxScan": 10} We