Поделиться через


Преобразование «Уточняющий запрос»

Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных Azure

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

Эталонный набор данных может быть файлом кэша, существующей таблицей или представлением, новой таблицей или результатом SQL-запроса. Преобразование «Уточняющий запрос» использует для подключения к эталонному набору данных диспетчер соединений OLE DB или диспетчер соединений с кэшем. Дополнительные сведения см. в разделах OLE DB Connection Manager и Cache Connection Manager.

Можно настроить преобразование «Уточняющий запрос» следующими способами.

  • Выбрать необходимый диспетчер соединений. Если необходимо подключится к базе данных, выберите диспетчер соединений OLE DB. Если необходимо подключится к файлу кэша, выберите диспетчер соединений с кэшем.

  • Указать таблицу или представление, содержащие эталонный набор данных.

  • Создайте эталонный набор данных, указав инструкцию SQL.

  • Указать соединения между входом и эталонным набором данных.

  • Добавить столбцы из эталонного набора данных к выходу преобразования «Уточняющий запрос».

  • Настроить параметры кэширования.

Преобразование «Уточняющий запрос» поддерживает следующие поставщики базы данных для диспетчера соединений OLE DB:

  • SQL Server

  • Oracle;

  • DB2

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

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

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

Соединение может быть составным. Это значит, что можно объединить несколько столбцов на входе преобразования со столбцами в эталонном наборе данных. Преобразование поддерживает соединение столбцов с любыми типами данных, кроме DT_R4, DT_R8, DT_TEXT, DT_NTEXT и DT_IMAGE. Дополнительные сведения см. в разделе Integration Services Data Types.

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

Уточняющие запросы выполняются преобразованием «Уточняющие запросы» с учетом регистра. Чтобы избежать сбоев поиска, вызванных различиями регистра в данных, можно предварительно преобразовать данные в верхний или нижний регистр с помощью преобразования «Таблица символов». Затем следует включить функции UPPER или LOWER в инструкцию SQL, создающую ссылочную таблицу. Дополнительные сведения см. в разделах Преобразование "Таблица символов", UPPER (Transact-SQL) и LOWER (Transact-SQL).

Преобразование «Уточняющий запрос» имеет следующие входы и выходы.

  • Ввод.

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

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

  • Вывод ошибок на выходе.

Кэширование эталонного набора данных

В кэше в памяти хранится эталонный набор данных и хэш-таблица, индексирующая данные. Кэш остается в памяти, пока не завершится выполнение пакета. Можно сохранить кэш в кэш-файле (CAW).

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

Сохранение кэша в файл имеет следующие преимущества.

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

  • Развертывание кэш-файла с пакетом. Затем можно использовать эти данные на нескольких компьютерах. Дополнительные сведения см. в разделе Создание и развертывание кэша для преобразования "Уточняющий запрос".

  • Чтобы считывать данные из кэш-файла можно использовать источник «Необработанный файл». Затем можно использовать другие компоненты потока данных, чтобы преобразовать или переместить данные. Дополнительные сведения см. в статье Raw File Source.

    Примечание.

    Диспетчер соединений с кэшем не поддерживает кэш-файлы, которые были созданы или изменены с помощью назначения «Необработанный файл».

  • Чтобы совершать операции и задавать атрибуты кэш-файлов, можно использовать задачу «Файловая система». Дополнительные сведения см. в разделе File System Task.

Далее приводятся режимы кэширования.

  • Эталонный набор данных создается с помощью таблицы, представления или SQL-запроса и загружается в кэш до запуска преобразования «Уточняющий запрос». Для доступа к набору данных можно использовать диспетчер соединений OLE DB.

    Этот параметр кэширования совместим с полным параметром кэширования, доступным для преобразования "Уточняющий запрос" в службах SQL Server 2005 Integration Services (SSIS).

  • Эталонный набор данных создается с помощью подключенного источника данных в потоке данных или с помощью кэш-файла, а затем загружается в кэш до выполнения преобразования «Уточняющий запрос». Для доступа к набору данных можно использовать диспетчер соединений с кэшем и, дополнительно, преобразование «Кэш». Дополнительные сведения см. в разделах Cache Connection Manager и Cache Transform.

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

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

    Этот параметр кэширования совместим с параметром частичного кэширования, доступным для преобразования поиска в SQL Server 2005 Integration Services (SSIS).

  • Создание эталонного набора данных производится по таблице, представлению или SQL-запросу во время выполнения преобразования «Уточняющий запрос». Данные не кэшируются.

    Этот параметр кэширования совместим с параметром кэширования, доступным для преобразования подстановки в службах SQL Server 2005 Integration Services (SSIS).

Службы Integration Services и SQL Server отличаются тем, как они сравнивают строки. Если преобразование Lookup настроено для загрузки эталонного набора данных в кэш перед выполнением преобразования Подстановки, службы Integration Services выполняет сравнение подстановок в кэше. В противном случае операция подстановки использует параметризованную инструкцию SQL, а SQL Server выполняет сравнение подстановок. Это означает, что преобразование «Уточняющий запрос» может возвращать различное количество результатов поиска из одной и той же таблицы подстановки в зависимости от типа кэша.

Свойства могут быть заданы с помощью конструктора SSIS или программным путем. Дополнительные сведения см. в следующих разделах.

Редактор преобразования "Уточняющий запрос" (страница "Общие")

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

Параметры

Примечание.

Выходные данные сопоставления могут отличаться в зависимости от того, используется ли режим полного кэша, режим кэша без кэша или режим частичного кэша:

  • В режиме полного кэша база данных запрашивается один раз во время предварительного выполнения потока данных, а весь ссылочный набор извлекается в память. Это означает, что мы будем полагаться на правило сопоставления подсистемы SSIS, которое учитывает регистр, учитывается с конечными пробелами и конфиденциальными с точностью и масштабированием числовых знаков.
  • Однако при отсутствии кэша или режима частичного кэша кэширование не выполняется во время этапа предварительного выполнения. Это означает, что мы будем использовать правило сопоставления исходной базы данных. Например, если источник является базой данных SQL Server и если параметры сортировки столбцов не учитывает регистр, то правило сопоставления также должно быть нечувствительным к регистру.

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

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

Без кэширования
При выполнении преобразования «Уточняющий запрос» — создать эталонный набор данных. Данные в кэш не загружаются.

Диспетчер соединений с кэшем
Настроить преобразование «Уточняющий запрос» на использование диспетчера соединений с кэшем. Этот параметр доступен только в случае, если выбран параметр «Полное кэширование».

Диспетчер соединений OLE DB
Настроить преобразование «Уточняющий запрос» на использование диспетчера соединений OLE DB.

Метод обработки строк без совпадающих элементов
Выбрать режим для обработки строк, не имеющих совпадения ни с одной из записей в эталонном наборе данных.

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

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

Внешние ресурсы

Запись в блоге Режимы кэша уточняющих запросов на сайте blogs.msdn.com

Редактор преобразования "Уточняющий запрос" (страница "Подключение")

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

Параметры

При выборе пунктов Полное кэширование и Диспетчер соединений с кэшем на странице «Общие» диалогового окна Редактор преобразования «Уточняющий запрос» доступны следующие параметры.

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

Новый
Создайте новое соединение с помощью диалогового окна Редактор диспетчера соединений с кэшем .

При выборе пунктов Полное кэширование, Частичное кэшированиеили Без кэширования, а также Диспетчер соединений OLE DBна странице «Общие» диалогового окна Редактор преобразования «Уточняющий запрос» доступны следующие параметры.

Диспетчер соединений OLE DB
Выберите существующий диспетчер соединений OLE DB из списка или создайте новое подключение, выбрав пункт Создать.

Новый
Создайте новое соединение с помощью диалогового окна Настройка диспетчера соединений OLE DB .

Использовать таблицу или представление
Выберите существующую таблицу или представление из списка или создайте новую таблицу, выбрав пункт Создать.

Примечание.

Если на странице ДополнительноРедактора преобразования «Уточняющий запрос»задать инструкцию SQL, то эта инструкция принудительно переопределит имя таблицы, выбранное там. Дополнительные сведения см. в разделе Редактор преобразования "Уточняющий запрос" (страница "Дополнительно").

Новый
Создайте новую таблицу с помощью диалогового окна Создание таблицы .

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

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

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

Анализ запроса
Проверка синтаксиса запроса.

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

Внешние ресурсы

Запись в блоге Режимы кэша уточняющих запросов на сайте blogs.msdn.com

Редактор преобразования "Уточняющий запрос" (страница "Столбцы")

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

Параметры

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

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

Также можно сопоставить входные и уточняющие столбцы с помощью клавиатуры, выделив цветом столбец в таблице Доступные входные столбцы , нажав клавишу «Приложение» и выбрав пункт Изменить сопоставления.

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

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

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

Также можно сопоставить входные и уточняющие столбцы с помощью клавиатуры, выделив цветом столбец в таблице Доступные уточняющие столбцы , нажав клавишу «Приложение» и выбрав пункт Изменить сопоставления.

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

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

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

Редактор преобразования "Уточняющий запрос" (страница "Дополнительно")

Используйте вкладку Дополнительно диалогового окна Редактор преобразования «Уточняющий запрос» для настройки частичного кэширования и для изменения инструкции SQL для преобразования «Уточняющий запрос».

Параметры

Размер кэша (32-разрядная версия)
Настройте размер кэша (в мегабайтах) для 32-разрядных компьютеров. Значение по умолчанию 5.

Размер кэша (64-разрядная версия)
Настройте размер кэша (в мегабайтах) для 64-разрядных компьютеров. Значение по умолчанию 5.

Включить кэширование для строк с несовпадающими записями
Кэшировать строки без совпадающих элементов в эталонном наборе данных.

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

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

Примечание.

Дополнительная инструкция SQL, которую можно указать на этой странице, заменяет имя таблицы, указанное на странице СоединениеРедактора преобразования «Уточняющий запрос». Дополнительные сведения см. в разделе Редактор преобразования "Уточняющий запрос" (страница "Подключение").

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

Внешние ресурсы

Запись в блоге Режимы кэша уточняющих запросов на сайте blogs.msdn.com

См. также

Преобразование «Нечеткий уточняющий запрос»
Преобразование "Уточняющий запрос термина"
Поток данных
Преобразования служб Integration Services