Последователност Generator Трансформация в информатиката
⚡ Умно обобщение
Последователност Generator Трансформацията в Informatica е пасивен, свързан обект, който генерира числови поредици за колони със сурогатни и първични ключове, като предава стойност на всеки ред чрез два фиксирани изходни порта, наречени NEXTVAL и CURRVAL.
Какво е последователност Generator Трансформация?
Последователност Generator Трансформацията е пасивна, така че не влияе на броя на входните редове. Последователността Generator се използва за генериране на стойности на първичен ключ и се използва за генериране на числови последователности като 1, 2, 3, 4, 5 и т.н.
Например, ако искате да присвоите последователни стойности на изходните записи, можете да използвате Sequence GeneratorГенерираните стойности на последователността могат да бъдат като 5, 10, 15, 20, 25 и т.н. или 10, 20, 30, 40, 50 и т.н. в зависимост от конфигурираните свойства на трансформацията.
За разлика от повечето трансформации, тази изобщо няма входни портове. Тя не чете входящите редове, а просто предава следващото число на порта, към който е свързана, поради което е безопасно да се постави до всеки конвейер в картаping.
Портове в последователност Generator Трансформация
Последователност Generator има два изходни порта
- КРИВИНА
- NEXTVAL
Стойността на порта CURRVAL винаги е NEXTVAL плюс стойността на Increment By, така че се чете само като NEXTVAL+1, докато Increment By е оставена на стойността по подразбиране 1.
За генериране на последователните номера винаги използваме колоната NEXTVAL. Таблицата по-долу обобщава как се държат двата порта.
| порт | Какво връща | Кога да го свържете |
|---|---|---|
| NEXTVAL | Следващото число в последователността за всеки ред, който преминава през конвейера. | Почти винаги. Това е портът, който захранва ключова колона в целта. |
| КРИВИНА | NEXTVAL плюс стойността на „Увеличение с“. | Само заедно с NEXTVAL. Свързан самостоятелно, той предава една и съща константна стойност за всеки ред. |
Нито един от портовете не може да бъде преименуван или премахнат, нито може да бъде добавен трети порт, така че всяка промяна в генерираните числа се извършва в раздела „Свойства“, а не в портовете.
Свойства на последователността Generator Трансформация
- Начална стойност – Това е първата стойност, която ще бъде генерирана от трансформацията, стойността по подразбиране е 0.
- Увеличаване с – Това е числото, с което искате да увеличите стойностите. Стойността по подразбиране е 1.
- Крайна стойност – Това е максималната стойност, която трябва да генерира трансформацията.
- Цикъл – ако тази опция е зададена, след достигане на края на стойността, трансформацията се рестартира от началната стойност.
Три допълнителни настройки се появяват в същия раздел и имат значение веднага щом трансформацията бъде споделена или сесията бъде изпълнена отново.
| Имот | Какво контролира | По подразбиране |
|---|---|---|
| Текуща стойност | Стойността, от която започва следващото изпълнение на сесията. Услугата за интеграция я актуализира в хранилището, когато се генерират редове. | 1 |
| Брой кеширани стойности | Колко стойности се запазват в паметта едновременно, така че едновременните сесии никога да не предават едно и също число два пъти. | 0 за еднократна употреба, 1000 за многократна употреба |
| Нулиране | Започва всяка сесия от оригиналната текуща стойност, вместо да продължава. Не е налично в последователност за многократна употреба. Generators. | Забранен |
| TracНиво | Количество подробности, записани в дневника на сесията: Кратко, Нормално, Подробна инициализация или Подробни данни. | Нормален - Normal |
Как да използваме последователност Generator Трансформация в информатиката
В този пример ще генерираме поредни номера и ще ги съхраним в целта. Следвайте осемте стъпки по-долу в Картата.ping Designer.
Стъпка 1) Създайте целева таблица със следния скрипт.
Изтеглете горния файл emp_sequence.sql
Стъпка 2) Импортирайте таблицата в Informatica като целева таблица.
Стъпка 3) Създайте нова картаping и импортирайте EMP източника и EMP_SEQUENCE целевата таблица. И двете дефиниции вече се намират на платното, както е показано по-долу.
Стъпка 4) Създайте нова трансформация в картатаping
- Изберете трансформация на последователност като тип
- Въведете име на трансформация „seq_emp“
- Изберете опцията Създаване
Стъпка 5) Последователност Generator Ще бъде създадена трансформация, изберете опцията „Готово“. Обектът seq_emp вече се появява на платното с двата си порта.
Стъпка 6) Свържете колоната NEXTVAL на последователността Generator към колоната SNO в целта.
Стъпка 7) Свържете другите колони от квалификатор на източника трансформация към целевата таблица.
Стъпка 8) Double кликнете върху последователността Generator за да отворите прозореца със свойства, и след това
- Изберете раздела свойства
- Въведете свойствата с начална стойност =1, оставете останалите свойства по подразбиране
- Изберете бутона OK
Сега запазете картатаping и го изпълнете след създаването му сесия намлява работния процес.
Колоната sno в целта ще съдържа поредните номера, генерирани от Sequence. Generator трансформация.
В нашия пример, последователностите ще бъдат като 1 – Скот, 2 – Кинг, 3 – Адам, 4 – Милър и т.н.
Многократно използваема и еднократно използваема последователност Generators
Трансформацията, изградена по-горе, се намира в една картаpingСъздаването му в Transformation Developer го прави многократно използваем и двете се държат различно, когато е включена повече от една сесия.
| Точка на сравнение | За еднократна употреба | За многократна употреба |
|---|---|---|
| Където е създадено | Вътре в една картаping, на картатаping дизайнер | В Transformation Developer, след това добавен към произволен брой картиpings |
| Брой кеширани стойности | По подразбиране е 0, така че стойностите не са резервирани предварително | По подразбиране е 1000, така че всяка сесия запазва свой собствен блок от числа |
| Нулиране на свойството | Налично и рестартира последователността от първоначалната текуща стойност | Не е налично, защото рестартирането би раздало номера, които друга сесия вече използва. |
| Типична употреба | Една целева ключова колона в една картаping | Споделен сурогатен ключ на няколко картиpingзареждане на същото измерение |
Кеширането е това, което разделя едновременните сесии. Всяка сесия приема блок от числа отпред, което означава, че числата остават уникални, но не остават съседни: всички стойности, останали неизползвани при края на сесията, се изхвърлят и следващият блок започва след тях.
Правила и ограничения на последователността Generator Трансформация
Някои от тях се появяват едва след като картатаping е работил, така че е по-евтино да се знае, преди портовете да бъдат свързани.
- Портовете са фиксирани. NEXTVAL и CURRVAL не могат да бъдат редактирани или изтривани и към трансформацията не може да се добавя допълнителен порт.
- CURRVAL сама по себе си връща константа. Свържете CURRVAL само когато NEXTVAL също е свързан надолу по веригата, в противен случай всеки ред получава една и съща стойност.
- Две мишени се зареждат една последователно. Когато NEXTVAL захранва две целеви таблици, първата целева таблици се зарежда с числата си преди стартирането на втората, така че двата набора не се преплитат.
- Пропуските са нормални. Кешираните стойности, които сесията не използва, никога не се връщат обратно, така че неуспешна или кратка сесия оставя пропуски в последователността. Проектирайте ключовата колона така, че да толерира пропуски.
- Цикълът може да създава дубликати. След като крайната стойност бъде достигната с активиран Cycle, номерирането се рестартира от началната стойност, която ще се сблъска със съществуващите ключове, освен ако целта не го позволява.
Тъй като никога не чете ред, трансформацията добавя почти нищо към времето за изпълнение на сесията, поради което рядко се появява като пречка по време на... настройка на производителносттаКъдето ключът трябва да зависи от самите данни, а не от брояч, Агрегатор or Дърводелска трансформация обектът извършва тази работа, а не този.







