问题标签 [kettle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1861 浏览

etl - 如何在 Pentaho Kettle 中迁移具有一致外键的表?

我有带有数据的 csv 文件

.

我想把这些数据放到表中:

这里的主要问题是如何存储新创建的 Table1 id 并在插入状态表期间使用它如何使用 pentaho 执行此操作?

0 投票
1 回答
796 浏览

sequence - 水壶:用无冲突的序列填充字段

我有一个具有以下结构的数据流

user_id介于 100 和 65536 之间。我想target_user_id根据以下逻辑添加一个(整数)字段:

  • 如果user_id在 1000..9999 范围内,则令该target_user_id字段等于user_id
  • 如果没有,则填写target_user_id1000..9999 范围内的内容,而不会引起冲突。最好尽可能低。

流的长度在 9000 以下。该user_id字段在原始流中是唯一的。

0 投票
1 回答
958 浏览

kettle - 在 Pentaho Kettle Spoon 中对 excel 输出进行分组

如何按 Pentaho Kettle Spoon 中的列值对 Excel 输出进行分组?这个想法是:

如果我有一张桌子

接收 Excel 输出(按客户分组)

有什么建议么?

0 投票
2 回答
4823 浏览

http - 使用 Pentaho Kettle,我如何自动重试因连接中断而失败的休息请求?

我们如何让 Pentaho 在连接错误时重试休息请求?

我们有一个 Pentaho BI 系统,在众多数据源中,它每次运行都会查询一个特定的 REST api 以获取超过 20k 的查询变体。

可以预见的是,在大多数运行中,其中一些请求将由于连接中断而失败。这些通常在 Pentaho 日志中表现为org.pentaho.di.core.exception.KettleException由于javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake,最终导致java.io.EOFException: SSL peer shut down incorrectly

在搜索了互联网和 Pentaho 论坛之后,我们找不到任何关于在这种情况下添加简单重试方法的说明。头发被扯掉了。

帮助我 StackOverflow,你是我唯一的希望!

更新 1: 堆栈跟踪:

0 投票
1 回答
757 浏览

pentaho - 日志文件中的日期格式 PDI / Kitchen 4.0.1

继承了一组作业,文件系统的日志记录以格式 {SEV} MM-dd HH:MM:SS 开头,我需要将年份作为时间戳的一部分。

我能找到的唯一 log4j 配置是旧 Jasper 安装的一部分,并且修改它们以使用 log4j.appender.fileout.layout.conversionPattern=%d{yyyy-MM-dd} 而不是 ISO8601 作为测试似乎没有效果.

日志行格式还能在哪里定义?

0 投票
1 回答
3488 浏览

pentaho - 带有“将以前的结果复制到 args?”的 Pentaho shell 脚本 = Y 和“对每个输入行执行?” = Y 在 linux 中错误地转义参数

我看到了对类似问题的引用,但不是这个确切的问题。我有一个简单的 Pentaho Job,有四个步骤。第一个是开始。第二个是转换,它进行数据库查询调用并返回 3 行。在转换结束之前(转换的最后一步),它调用“将行复制到结果”步骤。我认为通过使用它,我可以在我的 Job 中使用查询的结果。我(我的工作)的第三步调用了我编写的脚本。我有两个“将以前的结果复制到 args?” 和“对每个输入行执行?” 都检查了。我的脚本被称为“/home/myid/echo-me.sh”。脚本所做的只是回显 $1。我工作的最后一步是“成功”。

如果我从命令行运行我的脚本,它就可以工作。命令:“/home/myid/echo-me.sh helloworld”按预期生成“helloworld”。然而,Pentaho 似乎通过“/bin/sh”调用脚本,例如“/bin/sh/ -c /home/myid/echo-me.sh helloworld”。在这种情况下,参数不会传递给我的 shell 脚本。我通过从命令行手动运行它来确认这一点。如果我在脚本(和参数)周围加上单引号,例如:“/bin/sh/ -c '/home/myid/echo-me.sh helloworld'”,它可以正常工作。

不幸的是,我无法弄清楚如何让 Pentaho 做同样的事情。在“脚本文件名”字段中放置引号会导致各种破坏。

有趣的是,这似乎不是 Windows 的问题。它似乎正确地转义了 shell 字符串......像这样:
cmd.exe /C ""c:\mytest\echo-me.bat" helloworld"

谁能告诉我是否做错了什么?解决问题?

谢谢!

0 投票
1 回答
913 浏览

java - UserAgentUtils 总是给出空浏览器版本

我正在使用 UserAgentUtils Java 库在 PDI 转换期间从浏览器的用户代理字符串中提取用户代理详细信息,但无论我做什么,我总是在解析用户代理字符串后从库中返回一个空版本,即使当我可以清楚地看到字符串中的版本。例如:

两个问题。我在从 UserAgentUtils 取回数据方面做错了什么(这似乎不是一个错误,因为在他们的错误跟踪系统中没有与此相关的问题的历史记录)?

或者,是否有其他 Java 或 JavaScript 库可以用来从用户代理字符串中提取组件信息?任何一个都可以,因为我可以同样轻松地在此代码所在的 PDI 作业中使用其中任何一个。

0 投票
1 回答
9492 浏览

transformation - 如何在 Pentaho Spoon 中拆分列的值?

我想创建一个Spoon适用于列的多个值的转换。我的转换输入是一个 CSV 文件。在该 CSV 文件中有一个名为“技术”的列,其中包含 0 个或多个由分号分隔的值,如下所示。

我在数据库中有一个名为“技术”的表,其架构如下:

其中idcolumn 设置为自动递增。

technology仅当表中不存在该值时,我才想插入列的值Technologies

谁能告诉我

1) 使用哪种类型的步骤来拆分technology列的值?2)如何只插入一次值?例如 in row 1and row 2,Db2重复但我只想插入Db2一次。

提前致谢 !

0 投票
2 回答
9400 浏览

postgresql - 使用 SSL 将 Pentaho Kettle/Spoon 连接到 Heroku PostgreSQL 的问题

我正在尝试使用 Spoon 附带的 JDBC 驱动程序将 Spoon 连接到 Heroku PostgreSQL 实例。Heroku 需要 SSL,因为它是我启用的独立 PostgreSQL 实例。

我可以使用其他使用 SSL 的客户端软件连接到数据库,所以这似乎特定于 Java/JDBC。我对 Java 的了解不够多,无法解决此问题,因此希望有人在此之前已经经历过。

我收到以下相当冗长的错误消息,其中提到了 SSLHandshakeException,但我不确定这是原因还是其他原因?也许我需要在 Java 中指定 SSL 证书?

0 投票
2 回答
25190 浏览

json - 使用 JSON Input 步骤处理不均匀数据

我正在尝试使用 JSON 输入步骤处理以下内容:

然而,这似乎是不可能的:

该步骤提供了忽略缺失路径标志,但它仅在所有行都错过相同路径时才有效。在这种情况下,该步骤按预期运行,并用 null 填充缺失值。

这限制了这一步读取不均匀数据的能力,这确实是我的优先事项之一。

我的 step 字段定义如下:

JSON 输入字段定义

我错过了什么吗?这是正确的行为吗?