如何在Pentaho Carte executeJob中传递参数?



我需要通过网址传递一个参数。

此网址正在工作:

http://cluster:cluser@127.0.0.1:8081/kettle/executeJob/?job=/opt/pentaho/INSERT_VALUTA.kjb

作业将执行。但是现在我需要传递一个参数。

参数名称为:VALUTA_DATE

值是这样的:2019-09-01

我该怎么做?

这不起作用:

http://cluster:cluser@127.0.0.1:8081/kettle/executeJob/?job=/opt/pentaho/INSERT_VALUTA.kjb&paramVALUTA_DATE=2019-09-01

我找到了解决方案。

这是它通常有效的提示: https://jira.pentaho.com/browse/PDI-2663

命名参数需要通过 POST 方法发送:

wget --无代理 http://cluster:cluster@127.0.0.1:8099/kettle/executeJob/?job=/opt/pentaho/INSERT_VALUTA.kjb --后数据 "VALUTA_DATE=2019-08-08">

如果需要多个参数:

--post-data "VALUTA_DATE=2019-08-08&TYPE=1&MORE=XYZ">

这同样适用于转换和变量。

我让它在 curl 中工作:

curl -L -X POST --basic --user 'user:password' 'http://12.34.56.789:9000/kettle/executeTrans/?rep=&trans=/my/remote/path/SmokeTest.ktr&filenamepath=/my/remote/path/myTemp&index=pi314159265358'

哪里:

  1. 12.34.56.789:9000 是我的远程 IP 地址和端口(菜单正在运行的地方(,
  2. rep 是我不存在的存储库(URL 参数始终是必需的,即使它是空白的,就像我的情况一样(。
  3. trans 是完整路径(在远程 机器(的转换文件SmokeTest.ktr;
  4. 我的第一个参数文件名路径是我的 SmokeTest.ktr 文件写入的位置 一个 txt 文件(Pentaho 添加了.txt(,以及
  5. 我的第二个参数索引是写入该 txt 文件的文本(以及其他内容(。

请注意,顺序似乎很重要(除了开头之外,我不能将 rep 放在任何地方,这对我来说没有意义。

远程 Linux 盒子(正在运行 Carte(上的结果:

[tihamer@ServerName项目]$ 更多 tmp/myTemp.txt 盖茨堡;评论;计数;文件名路径;指数 四年零七年前,我们的祖先在这片大陆上带来了一个新的国家,在自由中孕育,并致力于人人生而平等的主张。"在"获取变量"步骤中传递参数。2.71828;/my/remote/path/myTemp;PI314159265358 [tihamer@ServerName项目]$

请注意,临时文件的大部分内容取决于我在 SmokeTest.ktr 中配置步骤的方式。

以这种方式运行 ktr 文件的好处是,我在 http://12.34.56.789:9000/kettle/status/的 Kettle PDI 状态页面让我可以访问日志和许多其他有用的信息。

https://help.hitachivantara.com/Documentation/Pentaho/9.3/Developer_center/REST_API_Reference/Carte/020 的官方文档给了我一些线索,但一些例子会为我节省很多令人沮丧的实验。

顺便说一句,我所做的实验之一(在运行Red Hat Enterprise Linux 7.9的Carte服务器上(是为了确保Pentaho正常工作:

  1. 泛主页=/路径/数据集成
  2. basepath=/pathTo/myproject
  3. filenamepath=/pathTo/myproject/tmp/thisGettysburg.tmp
  4. $panHome/pan.sh "-param:base.dir=$basepath" "-param:filenamepath=$filenamepath" "-param:index=$index"-rep: -file=$basepath/etl/SmokeTest.ktr

最新更新