使用包含匹配查找
Lookup using contains match
我必须设计 ETL 以将数据加载到 table。但是,我不应该在查找 table 中加载与键匹配的值。例如
*Input Table*
Cab Ride
Ride in Cab
Booked Cab
Self drive
Car pooling
*Lookup Table*
Cab
Taxi
*Destination Table*
Self drive
Car pooling
正如我们在目标 table 中看到的那样,我们没有加载包含 Cab
的数据
如果这在 Pentaho 或 SQL
中可行,请告诉我
最简单的方法是构建正则表达式
- 您的查找 table 提供了您要过滤的各种字符串
出(或进);
- 逐步使用分组将所有这些字符串连接起来
用|分隔;结果是 "Cab|Taxi".
- 前置 .( 并追加
). 使用计算器步骤,以 .(Cab|Taxi). 结束;调用此字段 "regex_filter"
- 将这一行与主数据流交叉连接;
- 现在您可以使用条件为 "NOT input_field REGEXP regex_filter" 的筛选行。 (您可能想在正则表达式前添加 (?i) 以使其大小写
不敏感)。
见附件示例:Regex filter in PDI 5.4
我必须设计 ETL 以将数据加载到 table。但是,我不应该在查找 table 中加载与键匹配的值。例如
*Input Table*
Cab Ride
Ride in Cab
Booked Cab
Self drive
Car pooling
*Lookup Table*
Cab
Taxi
*Destination Table*
Self drive
Car pooling
正如我们在目标 table 中看到的那样,我们没有加载包含 Cab
如果这在 Pentaho 或 SQL
中可行,请告诉我最简单的方法是构建正则表达式
- 您的查找 table 提供了您要过滤的各种字符串 出(或进);
- 逐步使用分组将所有这些字符串连接起来 用|分隔;结果是 "Cab|Taxi".
- 前置 .( 并追加 ). 使用计算器步骤,以 .(Cab|Taxi). 结束;调用此字段 "regex_filter"
- 将这一行与主数据流交叉连接;
- 现在您可以使用条件为 "NOT input_field REGEXP regex_filter" 的筛选行。 (您可能想在正则表达式前添加 (?i) 以使其大小写 不敏感)。
见附件示例:Regex filter in PDI 5.4