通过字段名称而不是 Pentaho 数据集成中的位置读取 CSV 输入文件

Reading CSV input file by field name instead of position in Pentaho Data Integration

我有一个包含四个字段的 CSV 文件:

FIELD_A, FIELD_B, FIELD_C, FIELD_D
1, 2, 3, 4
5, 6, 7, 8

我还在 PDI 中创建了一个转换,它有一个读取 CSV 输入文件步骤和一个将值插入数据库的后续步骤 table。

这很好用,但是我可能会在输入文件中得到其他组合(恕不另行通知),例如:

FIELD_A, FIELD_B, FIELD_D
1, 2, 4
5, 6, 8

我假设 PDI 足够智能,可以按名称映射字段,并发送到下一步 FIELD_A、FIELD_B,依此类推,具体取决于列 header。相反,它获取文件中的前三个字段并将它们映射到步骤中的前三个字段。结果,我在 FIELD_C 中得到了 FIELD_D.

的值

有没有办法通过字段名而不是位置来获得转换图?我无法在每次收到输入字段时都更改转换。

有很多方法可以做到这一点。在插入数据库之前使用 'Select Values' 步骤是简单的方法。您可以从 Here 中找到示例转换。在'CSV file input'中,可以先调用4字段的文件,然后再调用3字段的文件进行测试。 让我知道是否可以。

您还可以选择将元数据注入转换以读取 CSV 文件并插入 table。 您首先创建一个转换以读取 CSV 文件中存在的列(仅读取 CSV 的第一行 headers 列),然后将该信息注入读取 CSV 步骤和输出 table迈入你的转变。