Последователност Generator Трансформация в информатиката

⚡ Умно обобщение

Последователност Generator Трансформацията в Informatica е пасивен, свързан обект, който генерира числови поредици за колони със сурогатни и първични ключове, като предава стойност на всеки ред чрез два фиксирани изходни порта, наречени NEXTVAL и CURRVAL.

  • 🔢 Два фиксирани порта: NEXTVAL пренася генерираните числа, а CURRVAL връща NEXTVAL плюс стойността на Increment By.
  • Четири основни свойства: Началната стойност, Увеличението с, Крайната стойност и Цикълът определят формата на всяка произведена последователност.
  • 🧪 Разработен пример: Осем картиping Стъпките на дизайнера зареждат генерираните числа в колоната SNO на целта EMP_SEQUENCE.
  • Опция за многократна употреба: Последователност за многократна употреба Generator се споделя от няколко картиpingи кешира 1,000 стойности по подразбиране.
  • 🔒 Портовете са фиксирани: Портовете не могат да бъдат добавяни, редактирани или изтривани, така че цялото им поведение се контролира от раздела „Свойства“.
  • 🗝️ Сурогатни ключове: Таблиците с измерения на склада използват генерирани ключове вместо естествени ключове от изходната система.

Последователност Generator Трансформация в информатиката

Какво е последователност 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 целевата таблица. И двете дефиниции вече се намират на платното, както е показано по-долу.

Картаping Дизайнер с EMP източника и импортираната дефиниция на целта EMP_SEQUENCE

Стъпка 4) Създайте нова трансформация в картатаping

  1. Изберете трансформация на последователност като тип
  2. Въведете име на трансформация „seq_emp“
  3. Изберете опцията Създаване

Създаване на прозорец за трансформация с последователност Generator избрано и въведено име seq_emp

Стъпка 5) Последователност Generator Ще бъде създадена трансформация, изберете опцията „Готово“. Обектът seq_emp вече се появява на платното с двата си порта.

Последователност Generator трансформация seq_emp, създадена на картатаping платно

Стъпка 6) Свържете колоната NEXTVAL на последователността Generator към колоната SNO в целта.

NEXTVAL портът на seq_emp е свързан с колоната SNO на целта EMP_SEQUENCE

Стъпка 7) Свържете другите колони от квалификатор на източника трансформация към целевата таблица.

Оставащи колони на квалификатора на източника, свързани с целевата таблица EMP_SEQUENCE

Стъпка 8) Double кликнете върху последователността Generator за да отворите прозореца със свойства, и след това

  1. Изберете раздела свойства
  2. Въведете свойствата с начална стойност =1, оставете останалите свойства по подразбиране
  3. Изберете бутона OK

Раздел „Свойства“ на последователността Generator трансформация с начална стойност, зададена на 1

Сега запазете картата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 Дърводелска трансформация обектът извършва тази работа, а не този.

Въпроси и Отговори

Сурогатният ключ е безсмислено число, което идентифицира ред в хранилището, вместо идентификатора на изходната система. Той остава стабилен, когато източникът променя кодовете си, а генерираната последователност е най-лесният начин за създаване на такава.

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

Крайната стойност приема до 9 223 372 036 854 775 807, най-голямото 64-битово цяло число със знак. Достигането ѝ спира сесията с грешка за препълване, освен ако не е активиран цикъл, като в този случай номерирането се рестартира от началната стойност.

Да. NEXTVAL се свързва с всяка трансформация надолу по веригата, най-често с израз, който изгражда съставен ключ, или с търсене, което проверява дали ключът вече съществува. Генерираното число след това се предава с реда.

Да, но първо проверете целта. Редактирането на начална стойност или текуща стойност на колона с активен ключ може да раздаде числа, които целта вече съдържа, така че повишете стойността над най-високия ключ, вместо да я намалите.

Едва ли. Не чете редове и не изгражда кеш файлове, така че цената му е актуализация на брояч на ред. Големите зареждания са ограничени от четеца и пишещия модул много преди номерирането да се превърне в проблем.

Профилиращите с изкуствен интелект сканират колоните на източника, за да предложат коя комбинация е наистина уникална, маркират кандидат-ключовете с нули или дубликати и откриват отклонения между зарежданията. Съвпадението, базирано на машинно обучение, също така свързва записи, които описват един и същ обект под различни идентификатори.

Копилотът пише еквивалента SQL дефиниция на последователност или идентичност и заявки за съгласуване, които доказват, че не е дублиран ключ. Не може да вижда стойностите на вашето хранилище, така че проверете текущата стойност в самата трансформация преди зареждане.

Обобщете тази публикация с: