Как ускорить передачу данных при захвате отклоненных строк из tMySqlOutput? - PullRequest
2 голосов
/ 13 июня 2019

Я передаю данные из таблицы в одной схеме в таблицу в другой схеме.Мне также нужно записывать строки, которые отклоняются в процессе, по одной из многих причин, например, из-за сбоя ограничения NOT NULL.

Когда я присоединяю ссылку отклонения с компонентом вывода, скорость передачирезко уменьшается до 2-3 строк в секунду.С другой стороны, без ссылки отклонения я могу использовать опцию «Расширить вставку», и скорость увеличивается до 400 строк в секунду.

Как можно захватывать отклоненные строки без ущерба для производительности?

Ответы [ 2 ]

0 голосов
/ 14 июня 2019

Я согласен с методологией, предложенной выше @ Corentin . Я нашел эффективное решение для моей проблемы, используя ту же идею. Вместо того, чтобы позволить БД возвращаться с ошибкой для каждой строки в случае нарушения ограничения, я проверяю отклонение в Talend, используя компонент tSchemaComplianceCheck , который содержит схему, точно такую ​​же, как таблица назначения и перенос ссылка отказа от этого компонента.

0 голосов
/ 14 июня 2019

По моему мнению, нет идеального выбора: в вашем случае я думаю, что лучше всего попытаться перехватить пустые поля перед вставкой, с tMap, помещенным перед tDBOutput: там у вас может быть фильтр на выходе (строка " .field1 is not null "), и второй вывод, предназначенный для вывода, отклоняется. Таким образом, вы можете получить отклоненные данные и при этом использовать расширенную вставку для лучшей производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...