2016-03-09 1 views
0

Мне нужно спроектировать ETL для загрузки данных в таблицу. Но я не должен загружать значения, соответствующие ключам в таблице поиска. Например.Поиск с использованием содержит совпадение

*Input Table* 
Cab Ride 
Ride in Cab 
Booked Cab 
Self drive 
Car pooling 

*Lookup Table* 
Cab 
Taxi 


*Destination Table* 
Self drive 
Car pooling 

Как мы можем видеть в таблице назначения мы не загружая данные, содержащие Cab

Пожалуйста, дайте мне знать, если это возможно в Pentaho или SQL

+1

Поэтому требование «загрузить строку, если она не содержит каких-либо строку, найденную в таблице поиска», правильно? Это можно сделать с шагом 'Regex Evaluation', который является родительским заданием, но это будет не очень быстро. Вероятно, лучше сделать это в JavaScript с шагом «Измененный Java Script Value». –

+0

@ Brian.D.Myers, это правильно, загрузить, если не содержит совпадение в таблице поиска. Я попробую с Regex Evaluator. – Gokul

ответ

1

Самый простой путь построения регулярных выражений

  • Ваша таблица поиска подает различные строки, которые вы хотите фильтровать out (или in);
  • Используя группу, вы объединяете все эти строки , разделенные |; в результате получается «Cab | Taxi».
  • Prepend. (и добавить ). с калькулятором шаг, в конечном итоге с. (Кабина | Такси).; вызовите это поле «regex_filter»
  • Перейдите в эту единственную строку с основным потоком данных;
  • Теперь вы можете использовать строки фильтров с условием «NOT input_field REGEXP regex_filter». (вы можете добавить (? i) в регулярное выражение, чтобы сделать регистр нечувствительным).

прилагается пример: Regex filter in PDI 5.4

+0

Благодарим вас за решение. Я попробую это. Но моя таблица взглядов имеет много значений. почти 10 тыс. записей. – Gokul