我正在使用Pentaho Kettle来重新创建数据混合过程,以便将各种数据源组合到一个数据集中。
有一次,我正在使用行过滤器来检查某些是否失败……
表输入是行生成器步骤,而不是中间步骤。如果您将使用“从步骤插入数据”选项,则将实际问号替换为值,并将生成的查询发送到数据库。哪个真的倾倒性能和容易出错(前一步的值是null还是空字符串,或者它甚至可能包含sql注入?)
DatabaseJoin步骤在这样的地方更适合。它使用PreparedStatement,这要快得多。
您可以更改sql查询以传递参数
select field1, field2 form my_table join (values(?)) as t(patient_id) on t.patient_id = my_table.patient_id
您可能会考虑使用DatabaseLookup步骤,因为只有一个表用于提取数据。它具有良好的性能,并提供缓存机制。