Преобразование квалификатора источника в Informatica с ПРИМЕРОМ

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

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

  • 🧩 Автоматический объект: Указатель источника автоматически появляется при добавлении реляционной таблицы или текстового файла в карту.ping.
  • ✍️ Переопределение SQL: Пользовательский запрос заменяет сгенерированный запрос SELECT и имеет приоритет над фильтром источника и настройкой сортировки портов.
  • 🔢 Порядок портов: В списке SELECT порты должны быть указаны в том порядке, в котором они фигурируют в преобразовании, иначе сессия может завершиться с ошибкой.
  • 🎯 Фильтр источника: Условие фильтрации удаляет строки из базы данных, при этом ключевое слово WHERE в нем не должно быть указано.
  • 🔗 Однопроходное соединение: Связанные таблицы из одного реляционного источника можно объединять внутри одного квалификатора источника (Source Qualifier) ​​вместо объединителя (Joiner).
  • Less движение: Обработка исходного запроса приводит к перемещению меньшего количества строк по сети в сессию.

Преобразование квалификатора источника в Informatica

Что такое преобразование квалификатора источника?

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

Преобразование также преобразует собственные типы данных источника в типы данных преобразования Informatica, поэтому каждое последующее преобразование работает с одним платформенно-независимым набором типов.

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

Как изменить параметр Source Qualifier в Informatica

В следующем примере мы изменим параметр Source Qualifier нашей карты.ping “m_emp_emp_target”, чтобы вместо возврата всех столбцов возвращались только выбранные столбцы.

Шаг 1) Открыть картуping “m_emp_emp_target” на картеping Дизайнер. Карта.ping Открывается с указанием источника ЭМИ, квалификатора источника SQ_EMP и целевого объекта EMP_TARGET на холсте.

Картаping m_emp_emp_target открыть в Informatica Mapping UX/UI дизайнер

Шаг 2) Double— Щелкните по преобразованию Source Qualifier «SQ_EMP». Откроется окно «Редактирование преобразований» для этого объекта. Затем

  1. Перейдите на вкладку «Свойства».
  2. Нажмите SQL Опция «Изменить запрос», откроется окно редактора SQL.

На вкладке «Свойства» отображается строка SQL-запроса, показанная ниже.

Вкладка «Свойства» поля «Квалификатор источника SQ_EMP» с выбранной строкой «SQL-запрос»

Шаг 3) В окне редактора SQL

  1. Введите следующий запрос
    SELECT  EMPNO,  ENAME,  JOB,  MGR FROM  EMP

    Внимание – Мы выбираем из источника столбцы EMPNO, ENAME, JOB и MGR, поэтому в запросе SELECT мы оставили только их.

  2. Нажмите кнопку ОК

Теперь в редакторе SQL отображается пользовательский запрос, а не сгенерированный.

Окно редактора SQL, содержащее пользовательский запрос SELECT для поля Source Qualifier.

Шаг 4) В окне «Редактировать преобразования»

  1. Выберите вкладку «Порты» в меню.
  2. На вкладке «Порты» вы увидите все порты. Оставьте только порты EMPNO, ENAME, JOB, MGR и удалите остальные.

На вкладке «Порты» перечислены все порты, использованные в процессе преобразования до удаления.

Вкладка «Порты» окна «Редактирование преобразований» содержит список всех портов Source Qualifier.

Шаг 5) После удаления портов нажмите кнопку ОК. В списке останутся только четыре порта.

Вкладка «Порты» после удаления ненужных портов Source Qualifier

Теперь снова щелкните вкладку «Свойства» в окне «Редактирование преобразований», и вы увидите только выбранные вами данные.

Вкладка «Свойства» отображает сохраненное переопределение SQL-запроса в параметре Source Qualifier.

После нажатия кнопки «ОК» откроется окно редактора SQL.

  1. Это подтвердит, что выбранные вами данные верны и готовы к загрузке в целевую таблицу.
  2. Нажмите кнопку ОК, чтобы продолжить.

В окне подтверждения повторяются четыре столбца, которые теперь будут прочитаны.

Окно редактора SQL подтверждает переопределенный запрос перед отображением.ping сохраняется

Сохраните картуping (используя сочетание клавиш Ctrl+S) и выполните рабочийПосле выполнения в целевую таблицу будут загружены только выбранные столбцы.

Таким образом, вы можете переопределить в Source Qualifier, какие столбцы необходимо получить из источника, и это единственный способ контролировать, какие именно столбцы будут включены в карту.ping.

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

С помощью различных свойств параметра Source Qualifier можно определить, какой тип исходных данных необходимо преобразовать и отправить в целевую таблицу.

  1. Исходный фильтр – С помощью свойства «Фильтр источника» можно уменьшить количество записей в источнике. Например, если вы хотите получить только сотрудников отдела № 10, вы можете ввести условие фильтра «deptno=10» в свойство «Фильтр источника» и выполнить обработку данных. Включите в условие имя таблицы и имя порта, а ключевое слово WHERE опустите – фильтр, содержащий WHERE, завершит сессию с ошибкой.
  2. Количество отсортированных портов – В преобразовании Source Qualifier также можно сортировать входные записи по положению порта. Служба интеграции добавляет предложение ORDER BY к запросу по умолчанию, отсчитывая порты с начала преобразования, поэтому данные уже отсортированы, когда достигают преобразований внутри карты.ping.

    Поскольку сортировка данных может осуществляться по одному или нескольким портам, необходимо указать количество портов, которые будут использоваться для сортировки. Если вы укажете значение 1, то будут сортироваться только данные по empno. Если вы укажете значение 2, то данные будут сортироваться как по empno, так и по ename.

  3. Выберите Отличительные – Используя это свойство, вы можете получать из источника только уникальные записи. При выборе параметра «Выбрать уникальные записи» служба интеграции добавляет оператор SELECT DISTINCT, поэтому квалификатор источника будет получать только уникальные комбинации исходных данных.

Вкладка «Свойства», показанная ниже, содержит эти параметры вместе с остальным списком свойств.

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

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

Свойства Что она делает
SQL-запрос Заменяет запрос по умолчанию, генерируемый службой интеграции. Пользовательский запрос переопределяет заданное пользователем соединение и фильтр источника.
Пользовательское соединение Задает условие, используемое для объединения данных из нескольких источников, представленных одним и тем же квалификатором источника.
Исходный фильтр Задает условие фильтрации, которое служба интеграции применяет при запросе строк.
Количество отсортированных портов Количество столбцов, используемых для сортировки строк, считываемых из реляционных источников, добавляется в запрос как ORDER BY.
TracУровень Объем подробной информации, записанной в журнал сессии для этой трансформации.
Выберите Отличительные Возвращает уникальные строки только при добавлении оператора SELECT DISTINCT к запросу.
Пре-SQL Команды выполняются над исходной базой данных до того, как служба интеграции прочитает исходные данные.
Post-SQL Команды выполняются над исходной базой данных после того, как служба интеграции запишет данные в целевую базу данных.
Результат является детерминированным Указывает, что источник возвращает одни и те же данные при каждом запуске, если входные данные неизменны.
Результат воспроизводим. Указывает, что источник возвращает строки в том же порядке между запусками, что позволяет службе интеграции пропускать этап подготовки к восстановлению.

Правила и рекомендации по переопределению SQL-запроса для определения источника

Переопределение SQL-запроса обладает мощными возможностями, поскольку заменяет все, что было сгенерировано в конструкторе, и именно поэтому оно незаметно перестает работать, когда игнорируются приведенные ниже правила.

  • Сначала подключите порты. Перед вводом запроса подключите все входные и выходные порты, которые вы собираетесь использовать, поскольку сгенерированный запрос формируется на основе подключенных портов.
  • Сохраняйте порядок портов в списке SELECT. В операторе SELECT имена портов должны быть указаны в том порядке, в котором они появляются в преобразовании. Если порядок не совпадает, сессия может завершиться с ошибкой или вернуть неожиданные результаты.
  • Укажите значение каждого столбца. Каждое имя столбца должно начинаться с префикса таблицы, представления или синонима, к которому оно относится, например, ORDERS.ORDER_ID.
  • Сгенерируйте перед редактированием. Нажатие кнопки «Сгенерировать SQL» отображает запрос по умолчанию, который уже содержит фильтр источника и условие sorted-ports, поэтому переопределение можно создать на основе рабочего оператора.
  • Проверьте утверждение. В редакторе SQL есть кнопка «Проверить», которая выполняет запрос и сообщает, правилен ли синтаксис, еще до начала сессии.
  • Цитировать зарезервированные слова. Любое зарезервированное в базе данных слово, используемое в запросе, должно быть заключено в кавычки.
  • Обратите внимание на прецеденты. Пользовательский запрос переопределяет фильтр источника и количество отсортированных портов, а также SQL-запрос, введенный в файл. Сессия Свойства переопределяют как условие фильтрации, так и запрос, определенный в карте.ping.

До Microsoft SQL Server В источниках есть еще одно правило: количество столбцов в операторе SELECT должно совпадать с количеством портов в преобразовании, иначе сессия завершится с ошибкой при получении строк.

Как объединить два источника с помощью одного квалификационного инструмента источника

Один Source Qualifier может считывать данные из нескольких таблиц. Когда две связанные таблицы из одного и того же реляционного источника связаны с одним Source Qualifier, служба интеграции объединяет их внутри запроса к источнику, а не внутри карты.pingЭто означает, что работу выполняет база данных, и в сессию передается меньше строк.

По умолчанию используется внутреннее эквисоединение, записанное в условие WHERE как Source1.column_name = Source2.column_name. Для создания такого соединения объединяемые столбцы должны иметь связь первичного ключа и внешнего ключа, а также совпадающие типы данных. Если импортированные метаданные не содержат такой связи, вы можете создать её в файле конфигурации. Анализатор источника путем сопоставления соответствующих столбцов в двух определениях источника.

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

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

Преобразование Source Qualifier vs Filter vs Joiner

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

Аспект Классификатор источника Фильтрация преобразования Столярное преобразование
Где проходит работа В исходной базе данных, внутри сгенерированного запроса. В службе интеграции — построчно. В службе интеграции используется кэш.
Главное предложение Считывание строк из исходного файла, переопределение запроса, фильтрация, сортировка, удаление дубликатов. Удалить строки, не удовлетворяющие одному из условий. Объедините два конвейера в один набор строк.
Типы источников Реляционные таблицы и плоские файлы одного источника Любые данные трубопровода Разнородные источники, включая плоские файлы и различные базы данных.
Присоединяйтесь к поддержке Внутреннее эквисоединение или определяемое пользователем соединение в рамках одного реляционного источника Ничто Обычные, основные внешние, детальные внешние и полные внешние соединения
Строки, пересекающие сеть Только те строки, которые возвращает запрос. Сначала считывается каждая строка исходного кода. Сначала считывается каждая строка исходного кода.

Практическое правило простое: фильтруйте и объединяйте данные как можно раньше, насколько это позволяет источник, и используйте следующий подход. ФИЛЬТР или использовать Joiner только для работы, которую не может выполнить исходная база данных. Передача условий в Source Qualifier — один из самых выгодных способов решения задачи. настройка производительности.

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

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

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

В редакторе SQL есть кнопка «Проверить». Она выполняет запрос к выбранному источнику данных ODBC и сообщает, правилен ли синтаксис, поэтому ошибки отображаются в конструкторе, а не в сбое сеанса.

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

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

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

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

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

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