Компонент Ab initio для остановки графика при обнаружении повторяющихся строк/записей.

Привет, у меня есть график Ab initio, который после некоторых манипуляций с данными загружает их в таблицу. Я ищу какой-то компонент проверки, чтобы завершить процесс (перед загрузкой данных в таблицу), если он нашел повторяющиеся строки.

Повторяющиеся строки будут иметь уникальный идентификатор, но, возможно, я мог бы игнорировать этот столбец/часть записи.


person Achilles    schedule 29.04.2014    source источник


Ответы (4)


Передайте поток компоненту дедупликации.

В компоненте дедупликации выберите уникальное свойство для вывода. Это даст вам все уникальные записи.

Теперь, если у вас есть повторяющиеся записи, они будут проходить через порт дублирования. Вы можете собрать эти записи в промежуточном файле (для целей аудита) и обработать график в соответствии с вашими требованиями.

Если вы хотите прервать процесс сразу после обнаружения всех дубликатов, вы можете прервать процесс, используя фазирование.

Кроме того, если вы не хотите, чтобы записи были вставлены в БД, если на входе есть повторяющиеся записи, вы можете просто передать ключевую часть в Dedup. Это ускорит обработку.

person Community    schedule 25.07.2014

Если вы хотите продолжить обработку, одновременно обрабатывая сценарий ошибки, один из лучших способов сделать это — использовать функцию write_to_log() в AbInitio. Хотя использование этого компонента должно быть сделано разумно, так как его функция поглощает память.

person Avishek    schedule 14.07.2017

Создайте два графика. График 1. Ставим дедуп сортировку и пропускаем записи. Соберите повторяющиеся записи в файл. Теперь проверьте количество файлов в конечном скрипте этого графика. Если count равен 0, вызовите график 2. В противном случае график не работает.

График 2: обновите таблицу выводом компонента дедупликации.

person Dileep Dominic    schedule 01.05.2014

Вы можете справиться с этим сценарием двумя способами

  1. На уровне базы данных

    Если ваша таблица имеет ограничения, просто используйте следующие свойства компонента TABLE

    a. ignoreDuplicates
    b. reject-threshold
    
  2. На уровне графика

    Возьмите компонент дедупликации, прикрепите порт дедупликации к переформатированию и внутри переформатирования используйте функцию force_error.

    Важное примечание для #2: будет хорошо, если вы сохраните фазу компонента таблицы выше, чем компонент переформатирования (содержащий force_error), так что в случае сбоя вы будете на 100 % уверены, что это не влияет на данные таблицы.

person Unit1    schedule 22.03.2016