Проблема частичной вставки данных в цель при сбое задания
У нас есть 17 записей данных, установленных в одной из исходных таблиц, в которых у нас есть ошибочные данные в 14-й записи, что приводит к сбою задания. Затем в цель будут вставлены только 10 записей в качестве размера фиксации, указанного как "10" в компоненте mysqloutput, и задание не выполнено. В следующем выполнении после исправления записи об ошибке задание получит все 17 записей при успешном выполнении. За счет чего в цели будут дубликаты.
мы попытались:
Чтобы преодолеть это, мы попытались использовать компонент tmysqlrollback, в который мы включили компоненты tmysqlconnection и tmysqlcommit.
В1: Есть ли другая возможность использовать tmysqlrollback без использования компонентов tmysqlconnection и tmysqlcommit?
Изучил компонент tmysqlrollback и commit из документации
https://help.talend.com/reader/QgrwjIQJDI2TJ1pa2caRQA/7cjWwNfCqPnCvCSyETEpIQ
Но все еще ищу подсказку, как спроектировать вышеуказанный эффективный способ.
Q2: Кроме того, мы хотели бы узнать об использовании оперативной памяти и дисковом пространстве с точки зрения производительности.
Любая помощь на это будет высоко ценится?
1 ответ
- Нет, единственный способ совершать транзакции в Talend - это открыть соединение, используя
tMysqlConnection
затем либо совершить, используяtMysqlCommit
или откат с помощьюtMysqlRollback
, - Не зная, что вы делаете в своей работе (поиски, преобразования... и т. Д.), Вам сложно посоветовать вам потребление памяти и производительность. Но если у вас есть только источник для цели, то потребление оперативной памяти должно быть минимальным (убедитесь, что вы включаете поток на
tMysqlInput
составная часть). Если у вас есть другая база данных в качестве источника, то использование оперативной памяти зависит от того, как настроен этот драйвер базы данных (драйверы jdbc обычно принимают параметр, который указывает ему получать только определенное количество записей за раз).
Поиск и компоненты, которые обрабатывают данные в памяти (tSortRow
,tUniqRow
,tAggregateRow
..etc) - это то, что вызывает проблемы с памятью, но можно настроить их использование (используя диск среди других методов).