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:在运行时更改元数据的主要内容,如果未能解决你的问题,请参考以下文章
Pentaho Kettle - 在不停止作业的情况下运行检查数据库连接
如何在 Carte 上运行的 Pentaho Kettle Job 中为数据库日志连接名称使用变量?