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

⚡ Умное резюме

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

  • 🔢 Два фиксированных порта: Функция NEXTVAL содержит сгенерированные числа, а функция CURRVAL возвращает NEXTVAL плюс значение приращения.
  • ⚙️ Четыре основных свойства: Начальное значение, шаг увеличения, конечное значение и цикл определяют форму каждой создаваемой последовательности.
  • 🧪 Реализованный пример: Восьмая карта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 имеет два выходных порта

  • КРИВАЯ
  • НЕКСТВАЛЬ

Значение порта CURRVAL всегда равно NEXTVAL плюс значение параметра Increment By, поэтому оно читается как NEXTVAL+1, в то время как значение параметра Increment By остается равным 1 по умолчанию.

Для генерации порядковых номеров мы всегда используем столбец NEXTVAL. В таблице ниже приведено краткое описание работы двух портов.

Порт отгрузки Что оно возвращает Когда его подключать?
НЕКСТВАЛЬ Следующий номер в последовательности для каждой строки, проходящей через конвейер. Практически всегда. Это порт, через который передается ключевой столбец в целевом устройстве.
КРИВАЯ NEXTVAL плюс значение приращения. Только в паре с NEXTVAL. При подключении отдельно, он передает одно и то же постоянное значение для каждой строки.

Ни один из портов нельзя переименовать или удалить, и нельзя добавить третий порт, поэтому все изменения сгенерированных чисел вносятся на вкладке «Свойства», а не на самих портах.

Свойства последовательности Generator трансформация

  • Начальное значение — это первое значение, которое будет сгенерировано преобразованием, значение по умолчанию — 0.
  • Увеличить на — это число, на которое вы хотите увеличить значения. Значение по умолчанию — 1.
  • Конечное значение — это максимальное значение, которое должно сгенерировать преобразование.
  • Цикл – если эта опция установлена, то после достижения конца значения преобразование возобновляется с начального значения.

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

Свойства Что он контролирует По умолчанию
текущая стоимость Значение, с которого начинается следующий запуск сессии. Служба интеграции обновляет его в репозитории по мере генерации строк. 1
Количество кэшированных значений Сколько значений резервируется в памяти одновременно, чтобы одновременные сеансы никогда не передавали одно и то же число дважды? 0 означает не подлежащий повторному использованию, 1000 — подлежащий повторному использованию.
Сброс Начинает каждую сессию с исходного текущего значения, вместо продолжения. Недоступно для многократно используемых последовательностей. Generators. Отключена
TracУровень Уровень детализации записей в журнал сеанса: Краткий, Обычный, Подробный инициализация или Подробные данные. нормально - Normal

Как использовать последовательность Generator Трансформация в информатике

В этом примере мы сгенерируем порядковые номера и сохраним их в целевом хранилище. Выполните восемь шагов, описанных ниже, в таблице соответствия.ping Дизайнер.

Шаг 1) Создайте целевую таблицу с помощью следующего скрипта.

Загрузите указанный выше файл emp_sequence.sql.

Шаг 2) Импортируйте таблицу в Informatica в качестве целевой таблицы.

Шаг 3) Создать новую картуping и импортировать таблицы EMP source и EMP_SEQUENCE target. Оба определения теперь отображаются на холсте, как показано ниже.

Картаping В конструкторе импортированы исходный код EMP и определение целевого объекта EMP_SEQUENCE.

Шаг 4) Создайте новое преобразование на карте.ping

  1. Выберите преобразование последовательности в качестве типа.
  2. Введите имя преобразования «seq_emp»
  3. Выберите вариант «Создать».

Создайте окно преобразования с последовательностью. Generator выбрано и введено имя seq_emp

Шаг 5) Последовательность Generator Будет выполнено преобразование, выберите опцию «Готово». Объект seq_emp теперь отображается на холсте с двумя своими портами.

Последовательность Generator Преобразование seq_emp создано на картеping холст

Шаг 6) Свяжите столбец NEXTVAL со столбцом Sequence. Generator в столбец SNO в целевом объекте.

Порт NEXTVAL объекта seq_emp связан со столбцом SNO целевого объекта EMP_SEQUENCE.

Шаг 7) Свяжите остальные столбцы из квалификатор источника преобразование в целевую таблицу.

Остальные столбцы Source Qualifier связаны с целевой таблицей EMP_SEQUENCE.

Шаг 8) Double нажмите на Последовательность Generator чтобы открыть окно свойств, а затем

  1. Выберите вкладку свойств
  2. Введите свойства со стартовым значением = 1, остальные свойства оставьте по умолчанию.
  3. Выберите кнопку ОК

Вкладка «Свойства» последовательности Generator преобразование с начальным значением, установленным на 1

Теперь сохраните карту.ping и выполнить его после создания Сессия и рабочий.

В столбце sno в целевом файле будут содержаться порядковые номера, сгенерированные функцией Sequence. Generator преобразование.

В нашем примере последовательности будут выглядеть так: 1 – Скотт, 2 – Кинг, 3 – Адам, 4 – Миллер и т. д.

Последовательность многоразового и непереиспользуемого использования Generators

Построенная выше трансформация находится внутри одной карты.pingСоздание его в Transformation Developer, напротив, делает его многоразовым, и при участии более чем одной сессии поведение этих двух инструментов различается.

Точка сравнения Non-многоразовые Многоразовый
Где оно создано Внутри одной картыpingна картеping UX/UI дизайнер В конструкторе преобразований, затем добавить на любое количество карт.pings
Количество кэшированных значений Значение по умолчанию равно 0, поэтому значения не резервируются заранее. По умолчанию установлено значение 1000, поэтому каждая сессия резервирует свой собственный блок чисел.
Сбросить свойство Доступно и перезапускает последовательность с исходного текущего значения. Недоступно, поскольку перезапуск выдаст номера, которые уже были использованы в другой сессии.
Типичное использование Один столбец с целевым ключом на одной картеping Общий суррогатный ключ для нескольких картpingзагрузка того же размера

Кэширование позволяет разделять параллельные сессии. Каждая сессия получает блок чисел в начале, что означает, что числа остаются уникальными, но не являются непрерывными: любые значения, оставшиеся неиспользованными после завершения сессии, отбрасываются, и начинается следующий блок.

Правила и ограничения последовательности Generator трансформация

Некоторые из них всплывают только после того, как карта будет найдена.ping уже запущены, поэтому дешевле узнать об этом до того, как порты будут связаны.

  • Порты фиксированные. Значения NEXTVAL и CURRVAL нельзя редактировать или удалять, и к преобразованию нельзя добавить новые порты.
  • Функция CURRVAL сама по себе возвращает константу. Подключайте CURRVAL только тогда, когда NEXTVAL также подключен ниже по потоку, в противном случае каждая строка получает одно и то же значение.
  • Две мишени заряжаются одна за другой. Когда NEXTVAL передает данные в две целевые таблицы, в первую целевую таблицу данные загружаются до начала работы со второй, поэтому два набора данных не перемешиваются.
  • Пробелы — это нормально. Кэшированные значения, которые не используются в рамках сессии, никогда не возвращаются, поэтому сбой или короткая сессия оставляют пробелы в последовательности. Спроектируйте ключевой столбец таким образом, чтобы он допускал наличие пробелов.
  • Цикл может создавать дубликаты. После достижения конечного значения при включенной функции циклической нумерации нумерация начинается заново с начального значения, что приведет к конфликту с существующими ключами, если целевое устройство это не разрешает.

Поскольку преобразование никогда не считывает строки, оно практически ничего не добавляет к времени выполнения сессии, поэтому оно редко становится узким местом во время работы. настройка производительностиВ тех случаях, когда ключ должен зависеть от самих данных, а не от счетчика, Агрегатор or Столярное преобразование Эту работу выполняет объект, а не этот.

Часто задаваемые вопросы (FAQ)

Суррогатный ключ — это бессмысленное число, которое идентифицирует строку в базе данных вместо идентификатора исходной системы. Он остается стабильным, когда источник изменяет свои коды, и сгенерированная последовательность — это самый простой способ его получить.

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

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

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

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

Практически ничего. Он не считывает строки и не создает файлы кэша, поэтому его стоимость сводится к обновлению счетчика за каждую строку. Большие объемы данных ограничиваются читателем и записывающим устройством задолго до того, как нумерация станет проблемой.

Профилировщики на основе ИИ сканируют столбцы исходного кода, чтобы определить, какая комбинация действительно уникальна, помечают потенциальные ключи с нулевыми значениями или дубликатами, а также выявляют отклонения между загрузками. Сопоставление на основе машинного обучения также связывает записи, описывающие одну и ту же сущность под разными идентификаторами.

Copilot записывает эквивалент SQL Определение последовательности или идентификатора, а также запросы на согласование, доказывающие отсутствие дублирования ключа. Система не может видеть значения вашего репозитория, поэтому перед загрузкой проверьте текущее значение в самом преобразовании.

Подведем итог этой публикации следующим образом: