Какво е трансформация за контрол на транзакции?
Transaction Control е активна и свързана трансформация, която ни позволява да ангажираме или връщаме транзакции по време на изпълнението на картографирането. Операциите за фиксиране и връщане са от съществено значение, тъй като гарантира наличието на данни.
Когато обработвате голям обем данни, може да възникне ситуация, когато данните да бъдат ангажирани към целта. Ако фиксирането се извършва твърде често, тогава това ще бъде режийни разходи за системата. Ако фиксирането се извърши твърде късно, тогава в случай на неуспех има шансове за загуба на данни.
Така че, за да се осигури гъвкавост, се осигурява трансформация на контрол на транзакциите.
Команди TCL COMMIT & ROLLBACK
В тази трансформация има пет вградени променливи за обработка на операцията.
TC_CONTINUE_TRANSACTIONВ tc_continue_transaction няма извършени операции, процесът на зареждане на данни продължава както е.
TC_COMMIT_BEFOREВ tc_commit_before, когато този флаг е намерен зададен, се извършва фиксиране преди обработката на текущия ред.
TC_COMMIT_AFTERВ tc_commit_ след обработката на текущия ред се извършва фиксиране.
TC_ROLLBACK_BEFOREВ tc_rollback_before първо се извършва откат, след което данните се обработват за запис.
TC_ROLLBACK_AFTERВ tc_rollback_ след обработката на данните се извършва връщането.
Пример:
В този пример ще ангажираме данните към целта, когато условието dept no = 20 бъде установено за вярно
Стъпка 1 - Създайте картографиране с EMP като източник и EMP_TARGET като цел
Стъпка 2 - След това създайте нова трансформация, като използвате менюто за трансформация
- Изберете контрола на транзакция като нова трансформация
- Въведете име на трансформация "tc_commit_dept20"
- Изберете опция за създаване
Стъпка 3 - Трансформацията за контрол на транзакциите ще бъде създадена, изберете бутона готово
Стъпка 4 - Плъзнете и пуснете всички колони от квалификатора на източника към трансформацията на контрола на транзакцията, след което свържете всички колони от трансформацията на контрола на транзакциите към целевата таблица
Стъпка 5 - Щракнете двукратно върху трансформацията на контрола на транзакцията и след това в прозореца за редактиране на свойството
- Изберете раздела за свойства
- Кликнете върху иконата на редактора за контрол на транзакции
Стъпка 6 - в редактора на изрази въведете израза -
" iif (deptno = 20, tc_commit_before, tc_continue_transaction)" и изберете OK
Това означава, че ако бъде намерено deptno 20, тогава извършете транзакция в target, в противен случай продължете текущата обработка.
Стъпка 7 - Изберете OK в предишния прозорец
Сега запазете картографирането и го изпълнете след създаване на сесия и работни потоци. Това картографиране ще ангажира данните към целта всеки път, когато в данните бъде намерен номер 20.