Преобразование ранга в Informatica с ПРИМЕРОМ

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

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

  • ???? Верхняя или нижняя N: Свойства Top/Bottom и Number of Ranks совместно определяют, какие строки пройдут фильтр.
  • 🇧🇷 Рейтинг по группам: Группировка портов сбрасывает рейтинг для каждой группы, поэтому каждый отдел может вывести свою собственную тройку лучших.
  • 🔢 Ранговый порт: Флаг R присутствует ровно в одном порту, и именно на основе этого единственного столбца рассчитывается рейтинг.
  • 📍 РАНЖИРОВАННЫЙ ИНДЕКС: В редакторе автоматически добавляется этот выходной порт для хранения положения каждой строки внутри группы.
  • 🧪 Реализованный пример: Восьмая картаping В процессе проектирования в переменную EMP_TARGET загружаются данные о трех самых высокооплачиваемых сотрудниках каждого отдела.
  • 💾 Кэшировано и активно: Значения групп и данные строк хранятся в индексе и кэше данных, а количество строк изменяется.

Трансформация ранга в Informatica

Что такое трансформация рангов?

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

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

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

Преобразование Rank имеет выходной порт, через который оно присваивает ранг строкам. Этот порт называется RANKINDEX, и Designer создает его автоматически, как только преобразование добавляется в таблицу. картаping.

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

Порты в процессе преобразования ранга

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

Тип порта Что она делает
Вход (Я) Получает столбец из вышестоящего преобразования. Каждый столбец, связанный с преобразованием Rank, является входным портом.
Выход (О) Передает столбец в следующее преобразование или в целевую систему.
Переменная (V) Содержит локальные вычисления внутри преобразования, точно так же, как и в преобразовании типа «Выражение».
Ранг (R) Отмечает единственный столбец, по которому рассчитывается рейтинг. Этот флаг может быть присвоен только одному порту в процессе преобразования.
Группа по При этом ранжирование перезапускается для каждого уникального значения, поэтому фильтр по трем лучшим результатам возвращает три строки для каждой группы, а не три строки в целом.
РАНГИНДЕКС Порт только для вывода, созданный дизайнером. Он хранит позицию каждой строки в своей группе и может оставаться неподключенным.

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

Как использовать преобразование ранга в Informatica

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

Шаг 1) Создать картуping Имеются исходный ЭМИ и целевой ЭМИ_TARGET. Оба определения теперь отображаются на холсте, как показано ниже.

Картаping В конструкторе показано определение источника ЭМИ и определение цели EMP_TARGET.

Шаг 2) Затем на картеping

  1. Выберите меню трансформации
  2. Выберите вариант создания

Далее отображается меню «Преобразование» с опцией «Создать».

В меню трансформации открылась карта.ping Дизайнер с выделенной опцией «Создать»

Шаг 3) В окне создания трансформации

  1. Выберите преобразование ранга
  2. Введите имя преобразования «rnk_salary».
  3. Нажмите кнопку «Создать».

Создайте окно преобразования, выбрав параметр «Ранг» и введя имя rnk_salary.

Шаг 4) Преобразование ранга будет создано на карте.pingНажмите кнопку «Готово» в окне. Теперь на холсте отображается пустой объект rnk_salary.

Создан и размещен на карте файл преобразования ранга rnk_salary.ping холст

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

Все порты Source Qualifier связаны с преобразованием rnk_salary Rank.

Шаг 6) Double Нажмите на преобразование «Ранг», и откроется окно «Редактировать преобразование». В этом окне

  1. Выберите меню свойств
  2. Выберите опцию «Верх» в свойстве «Верх/Низ».
  3. Введите 3 в число рангов

Теперь на вкладке «Свойства» отображается «Лучшие» с тремя позициями, как показано на скриншоте.

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

Шаг 7) В окне «Редактировать трансформацию» снова

  1. Выберите вкладку портов
  2. Выберите группу по опции для столбца «Номер отдела».
  3. Выберите должность в столбце «Зарплата»
  4. Выберите кнопку ОК

Теперь на вкладке «Порты» номер отдела отображается с флагом группы, а зарплата — с флагом R.

Вкладка «Порты» преобразования «Ранг» с группировкой по номеру отдела и рангом по столбцу «Заработная плата»

Шаг 8) Соедините порты преобразования Rank с целевой таблицей. Картаping Теперь программа запускается из EMP через rnk_salary в EMP_TARGET.

Ранжированные порты, связанные преобразованием rnk_salary Rank с таблицей EMP_TARGET.

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

Свойства преобразования ранга

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

Свойства Что он контролирует
Вверх / Вниз Определяет, сохраняются ли для ранжированного столбца самые высокие или самые низкие значения. В примере используется столбец "Top".
Количество рангов Сколько строк возвращается для каждой группы? В примере используется 3, поэтому для каждого отдела возвращается три сотрудника.
Сравнение строк с учетом регистра Учитывается ли регистр букв при ранжировании строк? Это имеет значение только в том случае, если порт ранжирования содержит текст.
Каталог кэша Каталог, в котором создаются файлы индекса и кэша данных. По умолчанию используется переменная процесса $PMCacheDir.
Размер кэша данных ранжирования Размер кэша данных, хранящего данные строк. По умолчанию установлено значение «Авто», которое позволяет службе интеграции самостоятельно определять его размер.
Размер кэша индекса ранга Размер кэша индекса, хранящего значения групп. По умолчанию — Авто.
Объем преобразований Применяет рейтинг к каждой транзакции или ко всем входящим данным.
TracУровень Уровень детализации записей в журнал сеанса: Краткий, Обычный, Подробный инициализация или Подробные данные.

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

Преобразование ранга против преобразования агрегатора

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

Точка сравнения Преобразование ранга Преобразование агрегатора
Цель Возвращает N полных строк верхней или нижней части каждой группы. Возвращает вычисленные значения, такие как сумма. AVGМаксимальное или минимальное значение на группу.
Возвращенные строки Количество рангов в группе, со всеми их столбцами в целости и сохранности. Обычно одна сводная строка на группу.
Добавлен дополнительный порт RANKINDEX, хранящий позицию каждой строки Ничто
Ранжированный или агрегированный столбец Один порт отмечен как порт ранга Любое количество портов, передающих агрегатные выражения.

Проще говоря, Преобразование агрегатора Функция Rank отвечает на вопрос «какова самая высокая зарплата в этом отделе», а функция Rank — на вопрос «какие сотрудники ее получают». Когда необходимо отбросить только подмножество строк при простом условии, и порядок не требуется, Фильтрация преобразования Это более дешевый вариант, поскольку ему вообще не требуется кэш.

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

Нет. Rank является только связанным объектом, поэтому он должен находиться в потоке данных между двумя объектами. Порт RANKINDEX может оставаться неподключенным, но само преобразование нельзя вызвать так же, как вызывается неподключенный Lookup.

В строках с одинаковым значением в индексе ранга отображается одно и то же значение, и преобразование пропускает следующее значение. Таким образом, у двух сотрудников, занимающих второе место, отображается значение 2, а в следующей строке — 4 вместо 3.

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

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

Не гарантируется. Преобразование выбирает, какие строки останутся в памяти, но не гарантирует порядок их попадания в целевую таблицу. Добавьте преобразование Sorter к порту RANKINDEX, если порядок загрузки имеет значение.

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

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

Copilot составляет эквивалентный запрос с использованием оконной функции или Python Функция группировки работает быстро, что полезно для проверки результатов. Она не может прочитать вашу карту.pingПоэтому рассматривайте каждое предложение как черновик и сравнивайте количество строк с журналом сессии.

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