Трансформация на квалификатор на източник в Informatica с ПРИМЕР

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

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

  • 🧩 Автоматичен обект: Квалификатор на източника се появява автоматично всеки път, когато към карта се добави релационна таблица или плосък файл.ping.
  • ✍️ SQL презаписване: Персонализирана заявка замества генерирания SELECT и има приоритет пред филтъра на източника и настройката за сортирани портове.
  • 🔢 Ред на пристанището: Списъкът SELECT трябва да назовава портовете в реда, в който се появяват в трансформацията, в противен случай сесията може да се провали.
  • 🎯 Филтър на източника: Условието за филтриране отрязва редове в базата данни и ключовата дума WHERE трябва да бъде пропусната.
  • 🔗 Еднопроходно съединение: Свързани таблици от един релационен източник могат да бъдат обединени в един квалификатор на източника, вместо в съединител.
  • ⚡ Less трафик: Работата, вмъкната в заявката източник, премества по-малко редове през мрежата в сесията.

Трансформация на квалификатор на източник в Informatica

Какво представлява трансформацията на квалификатора на източника?

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

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

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

Как да промените квалификатора на източника в Informatica

В следващия пример ще променим Source Qualifier на нашата картаping „m_emp_emp_target“, така че вместо да връща всички колони, да връща само избрани колони.

Стъпка 1) Отворете картатаping „m_emp_emp_target“ в Картатаping Дизайнер. Картатаping отваря се с източника на EMP, квалификатора на източника SQ_EMP и целта EMP_TARGET на платното.

Картаping m_emp_emp_target отворено в Informatica Mapping дизайнер

Стъпка 2) Double-щракнете върху трансформацията на Source Qualifier „SQ_EMP“. Това отваря прозореца Edit Transformations за този обект. След това

  1. Щракнете върху раздела Свойства
  2. Щракнете върху SQL Опция за промяна на заявка, това ще отвори прозорец на SQL редактор

Разделът „Свойства“ изброява реда на SQL заявката, показан по-долу.

Раздел „Свойства“ на SQ_EMP Source Qualifier с избран ред SQL Query

Стъпка 3) В прозореца на SQL редактора

  1. Въведете следната заявка
    SELECT  EMPNO,  ENAME,  JOB,  MGR FROM  EMP

    Забележка – избираме колоните EMPNO, ENAME, JOB и MGR от източника, така че сме запазили само тези в заявката за избор

  2. Изберете бутона OK

SQL редакторът вече съхранява персонализираната заявка вместо генерираната.

Прозорец на SQL редактора, съдържащ персонализираната SELECT заявка за квалификатора на източника

Стъпка 4) В прозореца „Редактиране на трансформации“,

  1. Изберете раздела Портове от менюто
  2. В раздела Портове ще видите всички портове. Запазете само портовете EMPNO, ENAME, JOB, MGR и изтрийте останалите портове.

Разделът „Портове“ изброява всеки порт, пренесен от трансформацията преди изтриването.

Разделът „Портове“ в прозореца „Редактиране на трансформации“, в който са изброени всички портове на Source Qualifier

Стъпка 5) След изтриване на портовете, изберете бутона OK. В списъка остават само четирите останали порта.

Раздел „Портове“ след изтриването на нежеланите портове за квалификатор на източника

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

Раздел „Свойства“, показващ запазеното презаписване на SQL заявката в квалификатора на източника

Когато щракнете върху бутона „OK“, ще се отвори прозорецът на SQL редактора.

  1. Това ще потвърди, че избраните от вас данни са правилни и готови за зареждане в целевата таблица.
  2. Щракнете върху бутона OK, за да продължите по-нататък

Прозорецът за потвърждение повтаря четирите колони, които сега ще бъдат прочетени.

Прозорец на SQL редактора, потвърждаващ презаписаното запитване преди картатаping е запазено

Запазване на картатаping (използвайки клавишната комбинация Ctrl+S) и изпълнете работния процесСлед изпълнение, само избраните колони ще бъдат заредени в целта.

По този начин можете да презапишете в Source Qualifier кои колони трябва да бъдат извлечени от източника и това е единственият начин да контролирате кои конкретни колони се внасят в картата.ping.

Свойства на квалификатора на източника

Можете да използвате различни свойства на квалификатора на източника, за да определите какъв тип изходни данни трябва да бъдат трансформирани и изпратени към целевата таблица.

  1. Филтър на източника – Използвайки свойството Source Filter (Филтър на източника), можете да намалите броя на записите източник. Например, ако искате да извлечете само служителите на отдел 10, можете да въведете условието за филтър deptno=10 в свойството Source Filter и да изпълните данните. Включете името на таблицата и името на порта в условието и пропуснете ключовата дума WHERE – филтър, съдържащ WHERE, ще провали сесията.
  2. Брой сортирани портове – В трансформацията Source Qualifier можете също да сортирате входните записи по позиция на порта. Integration Service добавя клауза ORDER BY към заявката по подразбиране, като брои портовете от началото на трансформацията, така че данните вече са сортирани, когато достигнат трансформациите в картата.ping.

    Тъй като данните могат да бъдат сортирани по един порт или по няколко порта, трябва да зададете броя на портовете, които ще бъдат използвани при сортирането. Ако зададете стойност 1, тогава ще бъдат сортирани само данните от empno. Ако зададете стойност 2, тогава данните ще бъдат сортирани както по empno, така и по ename.

  3. Изберете Различен – можете да извличате само различни записи от източника, използвайки това свойство. Когато изберете опцията „Избери различни“, услугата за интеграция добавя оператор SELECT DISTINCT, така че квалификаторът на източника извлича само различни комбинации от данни от източника.

Разделът „Свойства“, показан по-долу, съдържа тези опции заедно с останалата част от списъка със свойства.

Раздел „Свойства на квалификатора на източника“ с „Филтър на източника“, „Брой сортирани портове“ и „Избор на отличителен“

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

Имот Какво го прави
SQL заявка Заменя заявката по подразбиране, генерирана от услугата за интеграция. Персонализираната заявка отменя потребителски дефинирано съединение и филтър на източника.
Потребителски дефинирано съединение Предоставя условието, използвано за обединяване на данни от няколко източника, представени от един и същ квалификатор на източника.
Филтър на източника Предоставя условието за филтър, което услугата за интеграция прилага при заявки към редове.
Брой сортирани портове Брой колони, използвани за сортиране на редове, прочетени от релационни източници, добавени към заявката като ORDER BY.
TracНиво Количество подробности, записани в лога на сесията за тази трансформация.
Изберете Различен Връща само уникални редове чрез добавяне на SELECT DISTINCT към заявката.
Преди SQL Командите се изпълняват спрямо изходната база данни, преди услугата за интеграция да прочете източника.
След SQL Командите се изпълняват спрямо базата данни източник, след като услугата за интеграция запише в целевата база данни.
Изходът е детерминистичен Декларира, че източникът връща едни и същи данни между изпълненията, когато входните данни са последователни.
Изходът е повторяем Декларира, че източникът връща редове в същия ред между изпълненията, което позволява на услугата за интеграция да пропусне подготовката за възстановяване.

Правила и насоки за SQL заместване на квалификатор на източник

SQL презаписването е мощно, защото замества всичко, генерирано от дизайнера, и затова тихо се нарушава, когато правилата по-долу се игнорират.

  • Първо свържете портовете. Свържете всеки входен и изходен порт, който възнамерявате да използвате, преди да въведете заявката, защото генерираната заявка се изгражда от свързаните портове.
  • Поддържайте списъка SELECT по ред на портовете. SELECT командата трябва да изброява имената на портовете в реда, в който се появяват в трансформацията. Ако редът не съвпада, сесията може да се провали или да върне неочаквани резултати.
  • Квалифицирайте всяка колона. Всяко име на колона трябва да има префикс от таблицата, изгледа или синонима, към който принадлежи, например ORDERS.ORDER_ID.
  • Генерирайте, преди да редактирате. Щракването върху „Генериране на SQL“ показва заявката по подразбиране, която вече съдържа филтъра на източника и клаузата sorted-ports, така че презаписването може да бъде изградено от работещ оператор.
  • Потвърдете твърдението. SQL редакторът има бутон „Проверка“, който изпълнява заявката и докладва дали синтаксисът е правилен, преди сесията да бъде стартирана.
  • Цитирайте запазените думи. Всяка резервирана дума в базата данни, използвана в заявката, трябва да бъде оградена в кавички.
  • Внимавайте с предимството. Персонализирана заявка отменя филтъра на източника и броя на сортираните портове, а SQL заявка, въведена в сесия свойствата отменят както условието за филтър, така и заявката, дефинирани в картатаping.

За Microsoft SQL Server източници има едно допълнително правило: броят на колоните в оператора SELECT трябва да съвпада с броя на портовете в трансформацията, в противен случай сесията ще се провали при извличане на редове.

Как да свържете два източника с един квалификатор на източник

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

Стандартното съединение е вътрешно еквивалентно съединение, записано в клаузата WHERE като Source1.column_name = Source2.column_name. За да се генерира това съединение, свързаните колони трябва да имат връзка първичен ключ-външен ключ и съответстващи типове данни. Когато импортираните метаданни нямат такава връзка, можете да създадете такава в Анализатор на източници чрез свързване на съответстващите колони на двете дефиниции на източника.

Когато връзката липсва или съединението трябва да е външно съединение, използвайте вместо това свойството „Потребителски дефинирано съединение“. Въведеното там условие замества информацията за съединението, съдържаща се в метаданните, и услугата за интеграция я добавя към генерираната заявка.

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

Квалификатор на източника срещу филтър срещу трансформация на свързващ елемент

Три обекта могат да редуцират или комбинират редове, а изборът на грешен е честа причина за бавни сесии. Таблицата по-долу ги поставя един до друг.

Аспект Квалификатор на източника Трансформация на филтъра Дърводелска трансформация
Къде се извършва работата В изходната база данни, вътре в генерираната заявка В услугата за интеграция, ред по ред В услугата за интеграция, използвайки кеш
Главна цел Четене на изходни редове, презаписване на заявката, филтриране, сортиране, премахване на дубликати Премахнете редове, които не отговарят на едно условие Комбинирайте два тръбопровода в един набор от редове
Типове източници Релационни таблици и плоски файлове от един източник Всякакви данни от тръбопровода Хетерогенни източници, включително плоски файлове и различни бази данни
Присъединете се към подкрепата Вътрешно еквивалентно съединение или потребителски дефинирано съединение в рамките на един релационен източник None Нормални, главни външни, детайлни външни и пълни външни съединения
Редове, пресичащи мрежата Само редовете, които заявката връща Всеки ред от източника се чете първи Всеки ред от източника се чете първи

Практическото правило е просто: филтрирайте и се присъединете веднага щом източникът позволява, и потърсете филтър или Joiner само за работа, която базата данни източник не може да извърши. Вмъкването на условия в Source Qualifier е една от най-евтините печалби, възможни по време на настройка на производителността.

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

Командите преди SQL се изпълняват спрямо базата данни източник, преди Integration Service да прочете източника. Командите след SQL се изпълняват спрямо същата база данни, след като Integration Service завърши записването в целта.

TracНивото на ing задава колко подробности трансформацията записва в лога на сесията. По-високото ниво помага при диагностициране на неочакван брой редове, но увеличава лога и забавя изпълнението, така че го намалете след това.

SQL редакторът има бутон „Проверка“. Той изпълнява оператора спрямо избрания ODBC източник на данни и докладва дали синтаксисът е правилен, така че грешките се появяват в дизайнера, вместо в неуспешна сесия.

Да. Параметри и променливи са разрешени в заявката, потребителски дефинираното съединение, филтъра на източника и командите преди и след сесията. Затворете низовите параметри в стила на кавички, който базата данни източник очаква.

Те декларират, че източникът връща едни и същи данни и в същия ред между изпълненията. Когато и двете са зададени, услугата за интеграция пропуска подготовката на изходните данни за възстановяване, което скъсява изпълнението.

Не. Записите на заявки, потребителски дефинираните съединения, филтрите за източници и командите преди или след сесия се изпращат в базата данни, така че те се прилагат за релационни източници. Квалификаторът на източника в плосък файл контролира главно... tracпоръчка и порт.

Асистентите с изкуствен интелект четат планове за заявки и история на натоварването, за да предложат предикати, индекси и подрязване на колони. Консултантите, базирани на машинно обучение в съвременните бази данни, класират тези предложения, но разработчикът все пак валидира всяка промяна, преди тя да достигне до сесия.

Copilot може да генерира SELECT оператор и да ускори повтарящите се списъци с колони. Той не знае реда на портовете на вашата трансформация, така че проверете генерирания оператор спрямо раздела „Портове“, преди да го запазите.

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