问题标签 [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.
etl - 如何在 Pentaho Kettle 中迁移具有一致外键的表?
我有带有数据的 csv 文件
.
我想把这些数据放到表中:
这里的主要问题是如何存储新创建的 Table1 id 并在插入状态表期间使用它如何使用 pentaho 执行此操作?
sequence - 水壶:用无冲突的序列填充字段
我有一个具有以下结构的数据流
user_id
介于 100 和 65536 之间。我想target_user_id
根据以下逻辑添加一个(整数)字段:
- 如果
user_id
在 1000..9999 范围内,则令该target_user_id
字段等于user_id
- 如果没有,则填写
target_user_id
1000..9999 范围内的内容,而不会引起冲突。最好尽可能低。
流的长度在 9000 以下。该user_id
字段在原始流中是唯一的。
kettle - 在 Pentaho Kettle Spoon 中对 excel 输出进行分组
如何按 Pentaho Kettle Spoon 中的列值对 Excel 输出进行分组?这个想法是:
如果我有一张桌子
接收 Excel 输出(按客户分组)
有什么建议么?
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: 堆栈跟踪:
pentaho - 日志文件中的日期格式 PDI / Kitchen 4.0.1
继承了一组作业,文件系统的日志记录以格式 {SEV} MM-dd HH:MM:SS 开头,我需要将年份作为时间戳的一部分。
我能找到的唯一 log4j 配置是旧 Jasper 安装的一部分,并且修改它们以使用 log4j.appender.fileout.layout.conversionPattern=%d{yyyy-MM-dd} 而不是 ISO8601 作为测试似乎没有效果.
日志行格式还能在哪里定义?
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"
谁能告诉我是否做错了什么?解决问题?
谢谢!
java - UserAgentUtils 总是给出空浏览器版本
我正在使用 UserAgentUtils Java 库在 PDI 转换期间从浏览器的用户代理字符串中提取用户代理详细信息,但无论我做什么,我总是在解析用户代理字符串后从库中返回一个空版本,即使当我可以清楚地看到字符串中的版本。例如:
两个问题。我在从 UserAgentUtils 取回数据方面做错了什么(这似乎不是一个错误,因为在他们的错误跟踪系统中没有与此相关的问题的历史记录)?
或者,是否有其他 Java 或 JavaScript 库可以用来从用户代理字符串中提取组件信息?任何一个都可以,因为我可以同样轻松地在此代码所在的 PDI 作业中使用其中任何一个。
transformation - 如何在 Pentaho Spoon 中拆分列的值?
我想创建一个Spoon
适用于列的多个值的转换。我的转换输入是一个 CSV 文件。在该 CSV 文件中有一个名为“技术”的列,其中包含 0 个或多个由分号分隔的值,如下所示。
我在数据库中有一个名为“技术”的表,其架构如下:
其中id
column 设置为自动递增。
technology
仅当表中不存在该值时,我才想插入列的值Technologies
。
谁能告诉我
1) 使用哪种类型的步骤来拆分technology
列的值?2)如何只插入一次值?例如 in row 1
and row 2
,Db2
重复但我只想插入Db2
一次。
提前致谢 !
postgresql - 使用 SSL 将 Pentaho Kettle/Spoon 连接到 Heroku PostgreSQL 的问题
我正在尝试使用 Spoon 附带的 JDBC 驱动程序将 Spoon 连接到 Heroku PostgreSQL 实例。Heroku 需要 SSL,因为它是我启用的独立 PostgreSQL 实例。
我可以使用其他使用 SSL 的客户端软件连接到数据库,所以这似乎特定于 Java/JDBC。我对 Java 的了解不够多,无法解决此问题,因此希望有人在此之前已经经历过。
我收到以下相当冗长的错误消息,其中提到了 SSLHandshakeException,但我不确定这是原因还是其他原因?也许我需要在 Java 中指定 SSL 证书?
json - 使用 JSON Input 步骤处理不均匀数据
我正在尝试使用 JSON 输入步骤处理以下内容:
然而,这似乎是不可能的:
该步骤提供了忽略缺失路径标志,但它仅在所有行都错过相同路径时才有效。在这种情况下,该步骤按预期运行,并用 null 填充缺失值。
这限制了这一步读取不均匀数据的能力,这确实是我的优先事项之一。
我的 step 字段定义如下:
我错过了什么吗?这是正确的行为吗?