我有一个表A,看起来像:

number    value
 1           A
 1           B
 2           C


而且我有一个csv文件,其中包含数字作为列之一。当我使用该csv文件中的编号在此表上进行(pentaho)数据库查找时,我得到如下输出:

number     value
  1         A
  2         C


ETL中还有其他方法必须使输出类似于:

 number    value
  1          A
  1          B
  2          C

最佳答案

Database Value Lookup步骤设计为对于任何给定的输入值最多返回1行。如果要获取键的所有行,则可以使用Database Join步骤,或者从表和csv文件中读取所有行,对其进行排序,然后将它们排入Merge Join步骤。

这些大致对应于嵌套的查找联接和排序合并联接。您可以像查询优化器一样在它们之间进行选择。基本的经验法则是,如果表中的行数与csv大致相同,则Merge Join会更快,否则请使用Database Join步骤。这当然是一个“经验法则”,并不适合所有情况。如果性能至关重要,则鼓励进行实验。

09-12 02:56
查看更多