我有一个表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
步骤。这当然是一个“经验法则”,并不适合所有情况。如果性能至关重要,则鼓励进行实验。