Pentaho Kettle:在运行时更改元数据

Posted

技术标签:

【中文标题】Pentaho Kettle:在运行时更改元数据【英文标题】:Pentaho Kettle: changing meta at run-time 【发布时间】:2016-06-13 06:45:54 【问题描述】:

我想知道 Kettle (AKA Pentaho PDI) 是否支持在运行时更改元数据。

我已经实现了几个自定义插件:

第一个插件向第二个插件发送数据。当某些情况发生时,输出中发送的行的元数据可能会发生变化。在实践中,这意味着processRow() 从某个元数据开始,然后在一段时间后更改它。当然,通过putRow() 在输出中发送的行始终与相关元数据同步。 第二个插件从第一个插件接收数据,调用getInputRowMeta()了解接收行的元数据。但是,此类元数据似乎与接收到的行不同步。

鉴于这个简单示例的结果,我想知道 Kettle 引擎是否支持这种运行时行为 --- 即 getInputRowMeta() 是否为已接收的特定行返回正确的元数据。

是否有人能够提供证据证明元数据更改实际上是不可能的?否则,是否有任何安全的方法来获取在processRow() 中接收到的特定行的元数据?

【问题讨论】:

我们可以在更改原始流的元数据后使用“选择值步骤”,它会从那里获取新的元数据,但最后一步(如 CSV 输出、表格输出等)将需要定义元数据,因此我们需要确定每个字段的最后一个数据类型。 【参考方案1】:

来自本书第616页Pentaho Kettle Solutions:

输出行的计算 元数据是需要发生一次且仅一次的事情,因为 所有输出行必须相同。

【讨论】:

以上是关于Pentaho Kettle:在运行时更改元数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 JS/JQuery 单击/共享时更改元描述?

Pentaho Kettle 连接到 Hadoop 集群

Pentaho Kettle - 在不停止作业的情况下运行检查数据库连接

如何在 Carte 上运行的 Pentaho Kettle Job 中为数据库日志连接名称使用变量?

如何在 Pentaho BI server v6 CE 上部署预定的 Kettle 作业

使用 StAX / Kettle (Pentaho) 读取 XML 文件