问题标签 [pdi]

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 投票
2 回答
5515 浏览

pentaho - 如何删除 Pentaho 数据集成中的列?

我正在使用 PDI/Kettle。我知道可以通过在字段中指定它们来添加新列。是否可以从使用 Spoon 的 Modified Javascript Step 中的上一步中删除已弃用的输入列?

0 投票
1 回答
7080 浏览

dynamic - Pentaho Kettle:动态参数和查询

我正在尝试将数据从动态数据源插入到destinationDB 以及获取数据时的查询。也就是说,要插入的列和表可能会有所不同。但是,问题是列和表在destinationDB 的表中保存为行。这意味着虽然它是动态的,但我已经知道在哪里插入它以及它的列是什么。所以,是的,这就是我的问题的背景故事。

无论如何,问题出在插入端。我能够生成 SELECT 语句来获取数据源,并通过操纵数据来获取查询来获取数据。

这就是它现在的样子。请注意获取变量,这就是我生成 sql 查询的方式。

这就是它现在的样子。请注意获取变量,这就是我生成 sql 查询的方式。 在此处输入图像描述

Table 输入内部如下所示: 在此处输入图像描述

这是执行 SQL 语句: 在此处输入图像描述

看到动态部分了吗?无论如何,问题是插入脚本变量中的 ${INSERT_VALUES} 都是“?” 数据应该由表输入提供的字符。让我确定有多少列。

问题 1:正如您在“执行 SQL 语句”步骤中注意到的那样,我没有传递任何参数来提供“?” 在插件上。那是因为我不知道在那里标记什么,因为参数/列每次都不同。取决于要插入的表。有没有办法解决这个问题?问题 2:pentaho 是否允许类似的双重替换?将变量替换为其值并替换“?” 参数值?

0 投票
1 回答
12091 浏览

kettle - Pentaho Kettle 中的 while 循环实现

我需要使用 Kettle/PDI 实现 WHILE 循环的指导。场景是

(1) 我在一个表中有一些(可能是数千或数千)数据,要通过远程服务器进行验证。

(2) 读取它们并循环到远程服务器;我为此使用修改后的 Java 脚本,因为远程服务器查找验证是在外部 Java JAR 文件中定义的(我可以使用修改后的 java 脚本上的“更改要启动的副本数...”选项并设置为 5 或 10)

(3) 更新数据库表上的结果。每个会话将有 50% 到 60% 的连接失败案例。

(4) 重复步骤 1 到步骤 3 直到全部更新成功

(5) 第N个循环停止循环;这是为了避免很长或无限循环,N 值可能是 5 或 10。

如何在 Pentaho Kettle 中设计这样的WhILE 循环?

0 投票
2 回答
1076 浏览

etl - Spoon PDI 数据验证器错误

我正在尝试验证分配是否正确。我不能说太多,但是我们有内部和外部用户。我有一个 SQL 脚本,它在内部分配中查找除内部之外的任何内容 - 结果应该是 0 行。然后我把它放在一个 SQL 表中。之后,我有一个语句来计算是否存在赋值错误,然后将其存储在一个变量中。基于此,我尝试使用“数据验证器”步骤验证数据。手动运行代码,它应该可以通过,但是 Spoon PDI 给了我以下错误:

无论如何我可以尝试解决这个问题吗?

0 投票
1 回答
1389 浏览

windows - 从另一个批处理文件示例运行厨房 pentaho 批处理 windows 脚本

我在从另一个批处理文件运行 kitchen.bat 文件时遇到问题

0 投票
2 回答
849 浏览

integration - 复制以前的值kettle pentaho

我有一个问题,我正在循环处理它!:| 我希望有一个人可以帮助我..

所以我有一个输入文件(.xls),这很简单,但是有一行(比如说它的“ROW1”)是这样的:

  1. 第 1 行 | 第 2 行 | 第 3 行 | ROW_N
  2. 765 | 1 | AAAA-MM-DD | ...
  3. 空 | 1 | AAAA-MM-DD | ...
  4. 空 | 1 | AAAA-MM-DD | ...
  5. 第944章 2 | AAAA-MM-DD | ...
  6. 空 | 2 | AAAA-MM-DD | ...
  7. 088 | 7 | AAAA-MM-DD | ...
  8. 555 | 2 | AAAA-MM-DD | ...
  9. 空 | 2 | AAAA-MM-DD | ...

如您所见,这里没有标准。有一些行为空(ROW1),在 ROW2 中有相同的数字,与 ROW1 的关联不同(如第 5 行和第 6 行,然后是第 8 行和第 9 行)。

我的目标是从 ROW1 中复制并粘贴值,在 ROW1 之后何时为空,直到不为空。基本上是复制上一步的形式,什么时候为空...

我正在尝试使用“公式”步骤,方法是:

=IF(AND(ISBLANK([ROW1]);NOT(ISBLANK([ROW2]));ROW_n=ROW1;IF(AND(NOT(ISBLANK([ROW1]));NOT(ISBLANK([ROW2])); ROW_n=ROW1;ROW_n=""));

但是还没有。。

我试过“分析查询”,但也没有。

我只使用流式传输 xls 文件输入..

非常感谢,非常感谢任何帮助!

最好的问候!

0 投票
1 回答
513 浏览

pentaho - 比较 PDI 中的文件名

我正在尝试使用 PDI (Kettle) 将某个 .CSV 文件导入我的数据库。

通常这会很容易,因为您可以将一个CSV file input步骤与一个Table output步骤联系起来,然后就可以开始了。但是,问题是我不知道要提前导入哪个文件,就像在 PDI 中执行作业/转换之前一样。

那是因为我的导入文件夹中有很多文件,它们的文件名格式都相同:KeyDate_Filename_YYYYMMDD.CSV

这个想法是为给定的关键日期导入最新的 YYYYMMDD 文件。

我实现这一点的理论方法是:

  • 将给定的关键日期作为参数在 PDI 中可用(已经完成)
  • 读入存储在导入文件夹中的所有文件的名称
  • 过滤给定关键日期的文件名
  • 比较剩余文件的YYYYMMDD,选择最新的
  • 在步骤中使用选定的文件名作为参数CSV file input(已经完成)
  • Table output通过步骤导入数据(已完成)

不幸的是,我对 PDI 还很陌生,对于如何实施大胆的部分,或者这种方法作为一个整体是否可行,并没有真正令人信服的想法。

有人能想出办法来完成这项工作吗?感谢任何反馈


编辑:忘了提到我使用的是 PDI 3.2.6。

在 4.xx 中,我可以简单地使用用户定义的 Java 类来完成这项工作:/

0 投票
1 回答
411 浏览

insert - Pentaho:将一组动态记录插入数据库

使用 Pentaho,我想从数据库中选择一些记录并将它们插入到另一个记录中。我对第一部分没有问题,使用Input Table步骤,我选择了我想要的记录。但是我不知道如何在 Pentaho 中开发一个步骤来负责将这些记录插入到第二个数据库中。有人可以指导我吗?

0 投票
1 回答
1175 浏览

tsql - 使用 Pentaho Kettle/Spoon/PDI 在文本文件中查找单词

我正在使用 SQL 和 Spoon PDI 创建数据比较/验证脚本。我们在两台服务器之间移动数据,并确保我们拥有 SQL 查询的所有数据,显示日期和传输的行数。

示例:
Serv1:20150522 | 100
伺服器2:20150522 | 100

然后脚本将尝试合并这些值,如果失败,我们将收到一封失败的电子邮件。但是,我们希望更改此设置以将结果写入文本文件,并根据该文本文件发送通过或失败的电子邮件。

这背后的想法是我们有多个要比较的表,因此我们希望将每个比较的所有结果(八个)写入一个文本文件,并根据最终的文本文件发送结果 - 而不是向我们的电子邮件收件箱发送垃圾邮件如果多个步骤失败。

我们希望拥有的文本文件的格式是 match -> send email 或 mismatch [step-name] [date] -> send email。

通常,如果我没有先尝试过任何事情,我不会问任何问题,但我在 Google 上到处搜索,尝试了我目前拥有的知识,但没有任何事情能如我所愿。我相信这是由于我使用的逻辑。

我不是要求解决这个问题,也不是要求有人为我做这件事。我只是在寻求正确道路上的指导。

0 投票
1 回答
6170 浏览

pentaho - 从 Pentaho 水壶中的 shell 脚本设置变量,可以通过进一步的作业访问

我想知道如何从 pentaho 水壶中可用的 shell 作业中设置一个变量,该变量可以通过工作流程中的进一步作业(简单评估)访问。

我正在尝试创建一个工作流,其中我有一个 start 元素,它将作为 shelljob 触发以检查文件夹是否存在,如果文件夹存在则设置一个变量。下一个工作是简单评估,它需要检查变量(由 shell 工作设置)是否为真,以继续工作流或终止工作流。

开始-->ShellJob(检查创建的文件夹并设置变量)-->SimpleEvaluation Job。

--MIK