Підручник з трансформацій INFORMATICA та перетворення фільтрів

⚡ Розумний підсумок

Трансформації в Informatica – це картаping об'єкти, які створюють, змінюють або передають дані до цільового об'єкта, а перетворення Фільтр – це активний об'єкт, який видаляє кожен рядок, що не відповідає одній умові фільтра.

  • 🔗 Зв'язок: Зв'язані перетворення знаходяться в конвеєрі, тоді як незв'язані викликаються зсередини іншого перетворення.
  • 🔁 Кількість рядків: Активні перетворення змінюють кількість рядків; пасивні змінюють лише значення всередині рядка.
  • 🎯 Основи фільтрації: Одна умова визначає, які рядки продовжуються, а кожен інший рядок залишає конвеєр.
  • 🧪 Приклад роботи: Умова deptno=10 завантажує лише записи відділу десять до EMP_TARGET.
  • 📄 Журнал сеансу: Рядки, що мають значення FALSE, відкидаються та записуються в журнал сеансу.
  • ⚡ Розміщення: Кіping Фільтр, розташований поблизу джерела, запобігає потраплянню відкинутих рядків у пізніші перетворення.

Трансформації Informatica та трансформація фільтрів

Що таке трансформація?

Трансформації в Informatica – це об'єкти, які створюють, змінюють або передають дані до визначених цільових структур (таблиць, файлів або будь-якого іншого цільового об'єкта).

Мета перетворення в Informatica полягає в модифікації вихідних даних відповідно до вимог цільової системи. Це також забезпечує якість даних, що завантажуються в ціль.

Informatica забезпечує різні перетворення для виконання певних функцій.

Наприклад, виконання розрахунку податку на основі вихідних даних, операція очищення даних тощо. У перетвореннях ми підключаємо порти для передачі даних, а перетворення повертає вихід через вихідні порти.

Класифікація трансформації

Трансформації класифікуються на дві категорії: одна ґрунтується на зв'язності, а інша — на зміні кількості рядків. Спочатку ми розглянемо трансформації, засновані на зв'язності.

Типи трансформації на основі зв'язності

  • Зв'язані перетворення
  • Беззв'язкові перетворення

В Informatica, під час картографіїpingПеретворення, які пов'язані з іншими перетвореннями, називаються зв'язаними перетвореннями.

Наприклад, Трансформація кваліфікатора джерела Вихідна таблиця EMP підключена до перетворення Filter для фільтрації співробітників відділу.

Ті перетворення, які не пов’язані ні з якими іншими перетвореннями, називаються незв’язаними перетвореннями.

Їхня функціональність використовується шляхом виклику всередині інших перетворень, таких як перетворення Expression. Ці перетворення не є частиною конвеєра.

Зв'язані перетворення є кращими, коли для кожного вхідного рядка викликається перетворення або очікується повернення значення. Наприклад, для поштових індексів у кожному рядку перетворення повертає назву міста.

Незв'язані перетворення корисні, коли їхня функціональність потрібна лише періодично або за певних умов. Наприклад, обчислення податкових даних, якщо значення податку недоступне.

На діаграмі нижче обидві пари категорій розташовані поруч.

Трансформації Informatica, класифіковані за зв'язністю та зміною кількості рядків

Типи трансформацій на основі зміни кількості рядків

  • Активні перетворення
  • Пасивні трансформації

Активні перетворення – це ті, що змінюють рядки даних та кількість вхідних рядків, що передаються їм. Наприклад, якщо перетворення отримує десять рядків на вхід і повертає п'ятнадцять рядків на вихід, то це активне перетворення. Дані в рядку також змінюються в активному перетворенні.

Пасивні перетворення – це ті, які не змінюють кількість вхідних рядків. У пасивних перетвореннях кількість вхідних і вихідних рядків залишається незмінною, і на рівні рядків змінюються лише дані.

Під час пасивного перетворення нові рядки не створюються, а існуючі рядки не видаляються.

Нижче наведено список трансформацій в Informatica

Що таке перетворення фільтра?

Фільтр-трансформація є активною трансформацією, оскільки вона змінює кількість записів.

Використовуючи перетворення Фільтр, ми можемо фільтрувати записи на основі умови фільтра.

Наприклад, для завантаження записів співробітників, у яких deptno дорівнює лише 10, ми можемо застосувати перетворення фільтра до карти.ping з умовою фільтра deptno=10. Таким чином, перетворення фільтра пропустить лише ті записи, які мають deptno=10, а решту записів буде відкинуто.

Умова фільтра за замовчуванням має значення TRUE, тому щойно створене перетворення фільтра пропускає кожен рядок, доки не буде введено умову. Кожен рядок, який повертає значення FALSE, відкидається, а повідомлення записується в журнал сеансу.

Як використовувати перетворення фільтрів

Крок 1) Створити картаping з джерелом «EMP» та цільовим об’єктом «EMP_TARGET».

картаping з джерелом EMP та цільовою об'єктом EMP_TARGET, відкритими на картіping Дизайнер

Крок 2) Тоді на картіping:

  1. Виберіть меню «Трансформація»
  2. Виберіть опцію «Створити»

Опція «Створити», вибрана з меню «Трансформація» картиping Дизайнер

Крок 3) Потім у вікні «Створити перетворення»:

  1. У списку виберіть «Перетворення фільтра».
  2. Введіть назву трансформації «fltr_deptno_10»
  3. Виберіть опцію «Створити»

Створіть вікно трансформації з фільтром трансформації та назвою fltr_deptno_10

Крок 4) Трансформацію фільтра буде створено. Натисніть кнопку «Готово» у вікні «Створити трансформацію».

Нове перетворення fltr_deptno_10 розміщено на картіping полотно

Крок 5) На картіping:

  1. Перетягніть усі стовпці кваліфікатора джерела до перетворення фільтра
  2. Зв’язати стовпці з перетворення фільтра з цільовою таблицею

Порти кваліфікатора джерела, пов'язані з перетворенням фільтра та EMP_TARGET

Крок 6) Double- клацніть перетворення Фільтр, щоб відкрити його властивості, а потім:

  1. Виберіть вкладку «Властивості»
  2. Клацніть редактор умов фільтра

Вкладка «Властивості» перетворення «Фільтр» із рядком «Умова фільтра»

Крок 7) Потім у редакторі виразів умови фільтра:

  1. Введіть умову фільтра – deptno=10
  2. Натисніть кнопку «ОК»

Редактор виразів із введеною та перевіреною умовою фільтра deptno=10

Крок 8) Тепер знову у вікні «Редагувати трансформації», на вкладці «Властивості» ви побачите умову фільтра. Натисніть кнопку «ОК».

Умова фільтра deptno=10 відображається поруч із властивістю Умова фільтра

Тепер збережіть картуping та виконати його після створення Сесія та робочийУ цільову таблицю будуть завантажені лише записи з deptno=10.

Таким чином, ви можете фільтрувати вихідні записи за допомогою перетворення Фільтр.

Фільтр проти маршрутизатора проти фільтра кваліфікатора джерела

Три об'єкти в Informatica можуть видалити небажані рядки, і вибір неправильного об'єкта призводить до зниження продуктивності або видимості відхилених даних.

Об'єкт Як видаляються рядки Коли його вибрати
Трансформація фільтра Одна умова на перетворення. Рядки, що повертають значення FALSE, видаляються та записуються в журналі сеансу. Одне просте правило, що застосовується всередині картиping.
Трансформація маршрутизатора Кілька умов групування за один прохід. Рядки, що не відповідають жодній групі, переходять до групи за замовчуванням. Рядки необхідно розділити на кілька потоків, або ж відхилені рядки необхідно перехопити.
Кваліфікатор джерела фільтрувати Умова стає частиною речення WHERE SQL-запиту, що зчитується з реляційного джерела. Джерело є реляційним, і небажані рядки ніколи не повинні залишати базу даних.

Один маршрутизатор зчитує вхідні дані один раз, тоді як кілька перетворень фільтра, що перевіряють ті самі вхідні дані, змушують службу інтеграції обробляти ці дані знову для кожного з них. Фільтр кваліфікатора джерела обмежує те, що єtracвід джерела, тоді як перетворення Фільтр обмежує те, що надсилається до цільового пристрою.

Поради щодо покращення ефективності перетворення фільтрів

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

  • Розмістіть перетворення Фільтр якомога ближче до джерела, щоб небажані рядки ніколи не проходили через наступні перетворення.
  • Вставте умову в кваліфікатор джерела, якщо джерело є реляційним, оскільки база даних фільтрує рядки швидше, ніж служба інтеграції.
  • Зберігайте умову простою. Складний вираз можна перемістити до перетворення Expression та звести до одного порту прапорця, який перевіряє Filter.
  • Використовуйте один маршрутизатор замість кількох перетворень фільтра, які перевіряють один і той самий вхід, щоб вхідні дані зчитувалися лише один раз.
  • Пам’ятайте, що умова за замовчуванням — TRUE, тому фільтр, залишений неналаштованим, пропускає все та приховує помилку.

Оскільки кожен пропущений рядок записується як повідомлення в журнал сеансу, несподівано порожня ціль зазвичай пояснюється читанням цього журналу, а не повторним запуском мапи.ping.

Поширені запитання

Тільки один. Вираз може поєднувати кілька перевірок за допомогою AND та OR, але перетворення обчислює один вираз, який повертає TRUE або FALSE для кожного вхідного рядка.

Нульовий результат обробляється як ХИБНІСТЬ (FALSE), тому рядок видаляється.ping Порт у ISNULL або IIF робить намір явним і запобігає зникненню рядків без очевидної причини.

Так. Порівняння рядків враховує регістр літер, тому значення, таке як SALES, не збігається з Sales. Застосування UPPER або LOWER до порту забезпечує надійність тесту, коли вихідні дані є несумісними.

Активні. Нормалізатор перетворює один запис із повторюваними стовпцями на кілька рядків, а об'єднання об'єднує конвеєри. Пасивні об'єкти завжди повертають однакову кількість рядків.

Ніщо не передає йому рядки, оскільки він не має посилань у конвеєрі. Інше перетворення викликає його за іменем з аргументами, отримує одне повернене значення, і об'єкт виконується лише для цих викликів.

Так. Об'єкти багаторазового використання створюються в Transformation Developer та зберігаються в репозиторії, тому одне визначення можна розмістити в багатьох. картаpings та відредаговані в одному місці.

Машинне навчання в сучасних інструментах інтеграції профілює джерело, пропонує правила очищення та зіставлення, а також позначає стовпці, значення яких змінюються, тому дизайнер починає із запропонованого конвеєра, а не з чистого полотна.

Copilot створює синтаксис виразів, таких як IIF, ISNULL та DECODE, на основі простого опису, що пришвидшує написання умов. Кожен згенерований вираз все одно потребує тестування на реальних рядках у конструкторі.

Підсумуйте цей пост за допомогою: