我有一张表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
答案 0 :(得分:0)
Database Value Lookup
步骤旨在为任何给定的输入值返回最多1行。如果要获取密钥的所有行,可以使用Database Join
步骤,或者读取表和csv文件中的所有行,对它们进行排序,然后通过Merge Join
步骤进行处理。
这些大致分别对应于嵌套查找连接和排序合并连接。您可以按照查询优化器的相同方式在它们之间进行选择。基本上,经验法则是如果表中的行数和csv大致相同,Merge Join
将更快,否则使用Database Join
步骤。这当然是一个“经验法则”,并不适合所有情况。如果表现至关重要,鼓励进行实验。