Использование MS SQL Server Analysis Services 2008 для построения хранилищ данных

Заполнение куба при помощи Integration Services

Разбить на страницы
Показывать лекцию целиком

Теоретическое введение

Службы Microsoft SQL Server Integration Services (SSIS) - это платформа для создания высокопроизводительных решений по интеграции данных, включая пакеты, обеспечивающие извлечение, преобразование и загрузку для хранения данных. Службы SSIS содержат:

  • графические средства и мастера сборки и отладки пакетов;
  • задачи выполнения функций потока операций, таких как FTP, выполнение инструкций SQL и отправка сообщений по электронной почте;
  • источники данных и адреса назначения для получения и загрузки данных;
  • преобразования для очистки, статистической обработки, слияния и копирования данных;
  • службу управления, службу SSIS для администрирования выполнения и хранения пакетов, а также API-интерфейсы для программирования модели объектов служб SSIS.
  • Практические задания

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

    Формат данных источника

    Данные источника представлены в виде набора курсов валют, содержащегося в плоском файле SampleCurrencyData.txt. Данные источника в этом файле имеют четыре столбца: средний курс валюты, ключ валюты, ключ даты и курс на конец дня.

    (рис 16.1) Фрагмент файла SampleCurrencyData.txt

    При работе с данными источника плоских файлов важно понимать, как диспетчер соединений с плоскими файлами интерпретирует данные плоских файлов. Если плоский файл является документом в кодировке Unicode, диспетчер соединений с плоскими файлами определяет все столбцы как [DT_WSTR] с шириной, по умолчанию равной 50. Если же исходный файл является документом в кодировке ANSI, столбцы определяются как [DT_STR] с шириной 50. Возможно, потребуется изменить эти настройки, чтобы оптимизировать столбцы для конкретных данных. Чтобы сделать это, необходимо узнать тип данных в назначении, куда будут заноситься эти данные, а затем выбрать правильный тип данных в диспетчере соединений с плоскими файлами.

    Формат таблицы-назначения

    Конечным назначением источника данных является таблица фактов FactCurrencyRate в базе данных AdventureWorksDW (Таблица 16.1).

    Формат таблицы фактов FactCurrencyRate
    Имя столбца Тип данных Таблица уточняющих запросов Столбец подстановки
    AverageRate float Нет Нет
    CurrencyKey int (FK) DimCurrency CurrencyKey (PK)
    TimeKey Int (FK) DimTime TimeKey (PK)
    EndOfDayRate float Нет Нет

    Таблица фактов FactCurrencyRate имеет четыре столбца и связи с двумя таблицами измерений

    Сопоставление данных источника и назначения

    Анализ форматов данных источника и назначения показывает, что для значений CurrencyKey и TimeKey необходимы преобразования "Уточняющий запрос". Преобразования, которые будут выполнены, получат значения CurrencyKey и TimeKey, используя альтернативные ключи из таблиц измерений DimCurrency и DimTime (Таблица 16.2).

    Сопоставление данных источника и назначения
    Столбец плоских файлов Имя таблицы Имя столбца Тип данных
    0 FactCurrencyRate AverageRate Float
    1 DimCurrency CurrencyAlternateKey nchar(3)
    2 DimTime FullDateAlternateKey Datetime
    3 FactCurrencyRate EndOfDayRate Float

    Создание нового проекта служб Integration Services

    Запустите BI Dev Studio. В меню "Файл" выберите пункт "Создать" и подпункт "Проект", чтобы создать новый проект служб SSIS (рисунок 16.2)

    (рис 16.2) Создание нового проекта в BI Dev Studio

    В диалоговом окне "Создать проект" в области "Шаблоны" выберите вариант "Проект служб SSIS". В поле Имя измените заданное по умолчанию имя на Integration Services Tutorial. При необходимости снимите флажок "Создать каталог для решения" (рисунок 16.3)

    (рис 16.3) Настройка параметров создаваемого проекта

    По умолчанию будет создан пустой пакет с именем Package.dtsx, который будет добавлен к проекту (рисунок 16.4)

    (рис 16.4) Созданный по умолчанию проект

    На панели инструментов "Обозреватель решений" щелкните правой кнопкой мыши файл Package.dtsx, выберите команду "Переименовать" и переименуйте пакет по умолчанию в "Lab11.dtsx".

    Получив предупреждение о переименовании объекта пакета, нажмите кнопку "Да" (рисунок 16.5)

    (рис 16.5) Предупреждение о переименовании объекта пакета

    Установка свойств проекта, зависящих от языка и региональных стандартов

    В меню "Вид" выберите пункт "Окно свойств". В окне "Свойства" присвойте свойству LocaleID значение Английский (США) (рисунок 16.6)

    (рис 16.6) Окно свойств пакета

    Добавление диспетчера соединений с плоскими файлами

    Далее к созданному пакету будет добавлен диспетчер соединений с плоскими файлами. Диспетчер соединений с плоскими файлами позволяет пакету извлекать данные из плоских файлов. С помощью диспетчера соединений с плоскими файлами можно указать имя и расположение файла, языковые стандарты и кодовую страницу, а также формат файла, включая разделители столбцов. Эти данные будут использованы при извлечении пакета из плоского файла. Кроме того, можно вручную указать тип данных для каждого столбца или в диалоговом окне "Предлагаемые типы столбцов" указать автоматическое сопоставление столбцов извлекаемых данных с типами данных в службах SSIS.

    В данной лабораторной работе предстоит настроить следующие свойства диспетчера соединений с плоскими файлами:

  • Имена столбцов. Так как в плоском файле не указаны имена столбцов, диспетчер соединений с плоскими файлами создает имена столбцов по умолчанию. Указанные имена по умолчанию не дают представления о содержащихся в столбцах данных. Чтобы сделать имена по умолчанию более понятными, следует заменить их именами, взятыми из таблицы фактов, в которую производится загрузка данных.
  • Сопоставление данных. Сопоставление типов данных, указанное для диспетчера соединений с плоскими файлами, используется всеми компонентами источников данных "плоский файл", которые обращаются к диспетчеру подключения. Можно сопоставить типы данных вручную с помощью диспетчера соединений с плоскими файлами или использовать "диалоговое окно Предлагаемые типы столбцов". В данной лабораторной работе предстоит просмотреть сопоставления, предложенные в диалоговом окне "Предлагаемые типы столбцов", а затем вручную создать необходимые сопоставления в диалоговом окне "Редактор диспетчера соединений с плоскими файлами".
  • Щелкните правой кнопкой область "Диспетчеры соединений" и в контекстном меню выберите команду "Создать соединение с плоским файлом" (рисунок 16.7)

    (рис 16.7) Контекстное меню области "Диспетчер соединений"

    В диалоговом окне "Редактор диспетчера соединений с плоскими файлами" в поле "Имя диспетчера соединений" введите " DS Sample ". Нажмите кнопку "Обзор". В диалоговом окне "Открыть" найдите папку, содержащую образец данных, а затем откройте файл SampleCurrencyData.txt. По умолчанию образцы данных устанавливаются в папку C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Tutorial\Creating a Simple ETL Package\Sample Data (рисунок 16.8)

    (рис 16.8) Редактор диспетчера соединений с плоскими файлами

    Убедитесь, что в диалоговом окне "Редактор диспетчера соединений с плоскими файлами" свойство "Языковой стандарт" установлено в значение "Русский (Россия)", а свойство "Кодовая страница" - в значение 1251.

    В левой части редактора нажмите пункт "Дополнительно". В области свойств измените свойство "Имя" для столбца 0 на AverageRate, для столбца 1 - на "CurrencyID", для столбца 2 на " CurrencyDate ", а для столбца 3 на " EndOfDayRate " (рисунок 16.9)

    (рис 16.9) Задание имен столбцов

    По умолчанию для всех четырех столбцов указан строковый тип данных [DT_STR] со значением параметра " OutputColumnWidth ", равным 50.

    В диалоговом окне "Редактор диспетчера соединений с плоскими файлами" нажмите кнопку "Предложить типы". Службы SSIS автоматически предлагают большинство соответствующих типов данных на основании первых 100 строк данных. Можно изменить параметры предложения по большему или меньшему количеству данных, чтобы указать тип данных по умолчанию для целочисленных и логических данных или чтобы добавить пробелы в дополнение к строковым столбцам. На данный момент не изменяйте значения параметров в диалоговом окне "Предполагаемые типы столбцов" и нажмите кнопку ОК, чтобы службы SSIS предложили типы данных для столбцов (рисунок 16.10).

    (рис 16.10) Диалоговое окно "Предполагаемые типы столбцов"

    Вернется область "Дополнительно" диалогового окна "Редактор диспетчера соединений с плоскими файлами", где можно просмотреть типы данных столбцов, предложенные службами SSIS (рисунок 16.11).

    (рис 16.11) Предложенные SSIS типы данных столбцов

    В данной лабораторной работе для данных из файла SampleCurrencyData.txt в службах SSIS предлагаются типы данных, приведенные во втором столбце, а типы данных, требуемые для столбцов назначения, которые будут определены позже, приведены в последнем столбце (Таблица 16.3).

    Предложенные SSIS типы данных источника и типы данных для столбцов назначения
    Столбец плоских файлов Предложенный тип Целевой столбец Целевой тип
    AverageRate Float [DT_R4] FactCurrencyRate.AverageRate Float
    CurrencyID String [DT_STR] DimCurrency.CurrencyAlternateKey nchar(3)
    CurrencyDate Date [DT_DATE] DimTime.FullDateAlternateKey datetime
    EndOfDayRate Float [DT_R4] FactCurrencyRate.EndOfDayRate Float

    Типы данных, предложенные для столбцов " CurrencyID " и " CurrencyDate ", несовместимы с типами данных в полях целевой таблицы. Необходимо изменить тип данных столбца " CurrencyID " со строкового [DT_STR] на строковый [DT_WSTR], так как типом данных поля " DimCurrency.CurrencyAlternateKey " является nchar (3). В качестве типа данных поля " DimTime.FullDateAlternateKey " задан тип " DateTime ", поэтому необходимо изменить тип параметра " CurrencyDate " с типа даты [DT_Date] на тип временной метки базы данных [DT_DBTIMESTAMP].

    В окне свойств измените тип данных столбца " CurrencyID " со строкового [DT_STR] на тип "Строка в Юникоде [DT_WSTR] " (рисунок 16.12).

    (рис 16.12) Изменение типа данных столбца "CurrencyID"

    В области свойств измените тип данных столбца " CurrencyDate " с типа даты [DT_DATE] на тип "временная метка базы данных [DT_DBTIMESTAMP] ". Нажмите кнопку ОК.

    Добавление и настройка диспетчера соединений OLE DB

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

    Будет создан диспетчер соединений OLE DB, использующий проверку подлинности Windows для подключения к локальному экземпляру AdventureWorksDW.

    Щелкните правой кнопкой мыши область "Диспетчеры соединений" и выберите команду "Создать соединение OLE DB " (рисунок 16.13).

    (рис 16.13) Контекстное меню области "Диспетчер соединений"

    В диалоговом окне "Настройка диспетчера соединений OLE DB " нажмите кнопку "Создать" (рисунок 16.14).

    (рис 16.14) Диалоговое окно "Настройка диспетчера соединений OLE DB"

    В диалоговом окне "Диспетчер соединений" введите localhost в поле "Имя сервера" (рисунок 16.15).

    (рис 16.15) Диспетчер соединений

    Если в качестве имени сервера указано значение localhost, диспетчер соединений соединяется с экземпляром SQL Server, расположенном по умолчанию на локальном компьютере. Чтобы использовать удаленный экземпляр SQL Server, замените localhost именем сервера, с которым нужно соединиться.

    Убедитесь, что в группе параметров "Вход на сервер" выбран вариант "Использовать проверку подлинности Windows".

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

    Нажмите кнопку "Проверить соединение", чтобы убедиться, что параметры соединения указаны правильно. Нажмите кнопку ОК. Нажмите кнопку ОК.

    Убедитесь, что на панели "Подключение к данным" в диалоговом окне "Настройка диспетчера соединений OLE DB " выбрано значение " localhost.AdventureWorksDW ". Нажмите кнопку ОК.

    Добавление задачи потока данных в пакет

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

    Перейдите на вкладку "Поток управления" (рисунок 16.16).

    (рис 16.16) Вкладка "Поток управления"

    В окне "Панель элементов" разверните элемент "Элементы потока управления" (рисунок 16.16) и перетащите элемент "Задача потока данных" в область конструктора вкладки "Поток управления" (рисунок 16.17).

    (рис 16.18) Окно "Панель элементов"(рис 16.17) Добавленная задача потока данных

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

    Рекомендуется давать уникальное имя каждому компоненту, добавляемому в область конструктора. Для удобства применения и обслуживания имена компонентов должны описывать их функции. Следование этим правилам именования обеспечивает самодокументируемость пакетов служб SSIS.

    Щелкните правой кнопкой мыши задачу потока данных, выберите "Свойства", в окне "Свойства" убедитесь, что свойство " LocaleID " имеет значение " English (United States) " (рисунок 16.19).

    (рис 16.19) Свойство "LocaleID" задачи "Получение курса валют"

    Добавление и настройка источника плоских файлов

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

    Будет настроен источник плоских файлов, пользующийся ранее созданным диспетчером соединения " DS Sample ".

    Откройте конструктор "Поток данных", дважды щелкнув задачу потока данных "Получение курса валют" или перейдя на вкладку "Поток данных" (рисунок 16.20).

    (рис 16.20) Конструктор "Поток данных"

    В окне "Панель элементов" раскройте элемент "Источники потока данных" и перетяните "Источник "Плоский файл"" в область конструктора вкладки "Поток данных" (рисунок 16.21).

    (рис 16.21) Добавленный элемент "Источник "Плоский файл""

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

    Дважды щелкните источник плоских файлов, чтобы открыть диалоговое окно "Редактор источника "Плоский файл"" (рисунок 16.22).

    (рис 16.22) Диалоговое окно "Редактор источника "Плоский файл""

    В поле "Диспетчер соединений с плоскими файлами" введите или выберите " DS Sample ". В левой части окна выберите пункт "Столбцы" и убедитесь, что имена столбцов заданы правильно (рисунок 16.23).

    (рис 16.23) Имена столбцов

    Нажмите кнопку ОК. Щелкните правой кнопкой мыши источник "Плоский файл" и в контекстном меню выберите пункт "Свойства". В окне "Свойства" убедитесь, что свойство "LocaleID" имеет значение " Russian (Russia) " (рисунок 16.24).

    (рис 16.24) Свойство "LocaleID" источника "Плоский файл"

    Добавление и настройка преобразований "Уточняющий запрос"

    После того как настроен источник плоских файлов для извлечения данных из файла источника, следует определить преобразования "Уточняющий запрос", необходимые для получения значений " CurrencyKey " и " TimeKey ". Преобразование "Уточняющий запрос" выполняет поиск, соединяя данные указанного входного столбца со столбцом эталонного набора данных. Эталонным набором данных может быть таблица или представление, новая таблица или результат инструкции SQL. В данной лабораторной работе преобразование "Уточняющий запрос" использует диспетчер соединений OLE DB, чтобы подключиться к базе данных, содержащей данные, служащие источником для эталонного набора данных.

    Будут добавлены в пакет и настроены следующие два компонента преобразования "Уточняющий запрос":

  • первое преобразование предназначено для уточняющего запроса значений в столбце " CurrencyKey " таблицы измерения " DimCurrency ", сопоставленных со значениями столбца " CurrencyID " плоского файла;
  • второе преобразование предназначено для уточняющего запроса значений в столбце " TimeKey " таблицы измерения " DimTime ", сопоставленных со значениями столбца " CurrencyDate " плоского файла.
  • Добавление и настройка преобразования "Уточняющий запрос CurrencyID"

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

    (рис 16.25) Добавленный компонент "Уточняющий запрос"

    Щелкните источник плоского файла "Получение котировок валют" и перетащите зеленую стрелку на вновь добавленное преобразование "Уточняющий запрос", соединив эти два компонента ().

    (рис 16.26) Соединение компонентов "Получение котировок валют" и "Уточняющий запрос"

    В области конструктора "Поток данных" щелкните элемент "Уточняющий запрос" в преобразовании "Уточняющий запрос" и измените имя на "Уточняющий запрос CurrencyID ".

    Дважды щелкните преобразование "Уточняющий запрос CurrencyID ". На вкладке "Общие" задайте следующие параметры (рисунок 16.27).

  • Выберите "Полное кэширование".
  • В области "Тип соединения" выберите "Диспетчер соединений OLE DB".
  • (рис 16.27) Вкладка "Общие" редактора преобразования "Уточняющий запрос"

    На вкладке "Соединение" задайте следующие параметры (рисунок 16.27):

  • Убедитесь, что в диалоговом окне "Диспетчер соединений OLE DB " отображается " localhost.AdventureWorksDW ".
  • Выберите вариант "Использовать результаты SQL-запроса" и введите или скопируйте следующую инструкцию SQL:
  • select * from (select * from [dbo].[DimCurrency]) as refTable
    where [refTable].[CurrencyAlternateKey] = 'ARS'
    OR
    [refTable].[CurrencyAlternateKey] = 'AUD'
    OR
    [refTable].[CurrencyAlternateKey] = 'BRL'
    OR
    [refTable].[CurrencyAlternateKey] = 'CAD'
    OR
    [refTable].[CurrencyAlternateKey] = 'CNY'
    OR
    [refTable].[CurrencyAlternateKey] = 'DEM'
    OR
    [refTable].[CurrencyAlternateKey] = 'EUR'
    OR
    [refTable].[CurrencyAlternateKey] = 'FRF'
    OR
    [refTable].[CurrencyAlternateKey] = 'GBP'
    OR
    [refTable].[CurrencyAlternateKey] = 'JPY'
    OR
    [refTable].[CurrencyAlternateKey] = 'MXN'
    OR
    [refTable].[CurrencyAlternateKey] = 'SAR'
    OR
    [refTable].[CurrencyAlternateKey] = 'USD'
    OR
    [refTable].[CurrencyAlternateKey] = 'VEB'
    (рис 16.28) Вкладка "Соединение" редактора преобразования "Уточняющий запрос"

    На вкладке "Столбцы" задайте следующие параметры (рисунок 16.29):

  • на панели "Доступные входные столбцы" перетащите "CurrencyID" на панель "Доступные столбцы подстановки" и поместите его на элемент " CurrencyAlternateKey ";
  • в списке "Доступные столбцы подстановки" установите флажок слева от столбца " CurrencyKey ".
  • (рис 16.29) Вкладка "Столбцы" редактора преобразования "Уточняющий запрос"

    Нажмите OK, чтобы вернуться в область конструктора "Поток данных". Щелкните правой кнопкой мыши преобразование "Уточняющий запрос CurrencyID", в контекстном меню выберите пункт "Свойства" (рисунок 16.30).

    (рис 16.30) Свойства компонента "Уточняющий запрос CurrencyID"

    В окне "Свойства" убедитесь, что свойство "LocaleID" установлено в значение " English (USA)" и свойство " DefaultCodePage " установлено в значение "1252".

    Добавление и настройка преобразования "Уточняющий запрос DataID"

    В окне "Панель элементов" перетащите компонент "Уточняющий запрос" в область конструктора "Поток данных". Поместите "Уточняющий запрос" прямо под преобразование "Уточняющий запрос CurrencyID " (рисунок 16.31).

    (рис 16.31) Добавленный компонент "Уточняющий запрос"

    Щелкните преобразование "Уточняющий запрос CurrencyID " и перетащите зеленую стрелку на вновь созданное преобразование "Уточняющий запрос", соединив эти два компонента. В диалоговом окне "Выбор входов и выходов" выберите "Выход совпадений преобразований "Уточняющий запрос"" в раскрывающемся списке "Выход" и нажмите кнопку ОК (рисунок 16.32).

    (рис 16.32) Выбор входов и выходов

    В области конструктора "Поток данных" щелкните элемент "Уточняющий запрос" в только что добавленном преобразовании "Уточняющий запрос" и измените имя на "Уточняющий запрос DataID " (рисунок 16.33).

    (рис 16.33) Связь между компонентами "Уточняющий запрос CurrencyID" и "Уточняющий запрос DataID"

    Дважды щелкните преобразование "Уточняющий запрос DataID ". На вкладке "Общие" выберите "Частичное кэширование" (рисунок 16.34).

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

    На вкладке "Соединение" задайте следующие параметры (рисунок 16.35):

  • убедитесь, что в поле "Диспетчер соединений OLE DB " отображается "localhost.AdventureWorksDW";
  • в поле "Использовать таблицу или представление" введите или выберите " [dbo].[DimTime] ".
  • (рис 16.35) Вкладка "Соединение" редактора преобразования "Уточняющий запрос"

    На вкладке "Столбцы" задайте следующие параметры (рисунок 16.36):

  • на панели "Доступные входные столбцы" перетяните " CurrencyDate " на панель "Доступные столбцы подстановки" и поместите его на элемент "FullDateAlternateKey";
  • в списке "Доступные столбцы подстановки" установите флажок слева от столбца " TimeKey ".
  • (рис 16.36) Вкладка "Столбцы" редактора преобразования "Уточняющий запрос"

    Нажмите OK, чтобы вернуться в область конструктора "Поток данных". Щелкните правой кнопкой мыши преобразование "Уточняющий запрос DateID " и выберите пункт "Свойства".

    В окне "Свойства" убедитесь, что свойство "LocaleID" установлено в значение " English (USA) " и свойство " DefaultCodePage " установлено в значение "1252".

    Добавление и настройка образца назначения OLE DB

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

    На "Панели элементов" раскройте группу компонентов "Назначения потока данных" и перетяните "Назначение OLE DB " в область конструктора вкладки "Поток данных". Поместите компонент "Назначение OLE DB " непосредственно под преобразованием "Уточняющий запрос DateID" (рисунок 16.37).

    (рис 16.37) Добавленный компонент "Назначение OLE DB"

    Щелкните преобразование "Уточняющий запрос DateID " и перетяните зеленую стрелку к добавленному компоненту "Назначение OLE DB ", чтобы соединить эти два компонента. В диалоговом окне "Выбор входов и выходов" щелкните выберите вариант "Выход совпадений преобразования "Уточняющий запрос"" в раскрывающемся списке "Выходы" (рисунок 16.38) и нажмите кнопку ОК.

    (рис 16.38) Выбор входов и выходов при соединении компонентов "Уточняющий запрос DateID" и "Назначение OLE DB"

    В области конструктора "Поток данных" щелкните элемент "Назначение " OLE DB "" в только что добавленном преобразовании "Назначение " OLE DB "" и измените имя на "Образец назначения OLE DB " (рисунок 16.39).

    (рис 16.39) Переименование добавленного компонента

    Дважды щелкните значок "Образец назначения OLE DB ". Убедитесь, что в диалоговом окне "Редактор назначения OLE DB " на закладке "Диспетчер соединений OLE DB " выбрано значение " localhost.AdventureWorksDW ".

    В поле "Имя таблицы или представления" введите или выберите значение " [dbo].[FactCurrencyRate] " (рисунок 16.40).

    (рис 16.40) Закладка "Диспетчер соединений OLE DB" диалогового окна "Редактор назначения "OLE DB""

    Перейдите на закладку "Сопоставления" (рисунок 16.41).

    (рис 16.41) Закладка "Сопоставления" диалогового окна "Редактор назначения "OLE DB""

    Убедитесь, что входные столбцы " AverageRate ", " CurrencyKey ", " EndOfDayRate " и " TimeKey " правильно сопоставлены с целевыми столбцами. Если друг с другом сопоставлены столбцы с одинаковыми именами, то сопоставление правильное. Нажмите кнопку ОК.

    Щелкните правой кнопкой мыши назначение "Образец назначения OLE DB " и в контекстном меню выберите пункт "Свойства". В окне "Свойства" убедитесь, что свойство " LocaleID " установлено в значение " English (USA) " и свойство " DefaultCodePage " имеет значение "1252".

    Добавление заметки к потоку данных

    Щелкните правой кнопкой мыши в области конструктора потока данных и в контекстном меню выберите "Добавить заметку". В окне заметки введите или вставьте копированием следующий текст:

    Поток данных извлекает данные из файла, находит значения в столбце " CurrencyKey " таблицы " DimCurrency " и в столбце " TimeKey " таблицы " DimTime ", после чего записывает данные в таблицу " FactCurrencyRate ".

    Чтобы в окне заметки перенести текст на следующую строку, поместите курсор в место, где должна начинаться новая строка, и нажмите клавиши Ctrl и Enter (рисунок 16.42).

    (рис 16.42) Заметка, добавленная к потоку данных

    Выполнение пакета

    В меню Отладка выберите команду "Начать отладку". Пакет будет запущен, и в таблицу фактов " FactCurrencyRate " из базы данных "AdventureWorksDW" будет добавлено 1097 строк.

    После окончания работы пакета выберите в меню Отладка пункт Остановить отладку.

    Контрольные вопросы

  • Какие функции выполняют SSIS?
  • Какие компоненты содержат службы SSIS?
  • Страницы:

    Теоретическое введение

    Службы Microsoft SQL Server Integration Services (SSIS) - это платформа для создания высокопроизводительных решений по интеграции данных, включая пакеты, обеспечивающие извлечение, преобразование и загрузку для хранения данных. Службы SSIS содержат:

  • графические средства и мастера сборки и отладки пакетов;
  • задачи выполнения функций потока операций, таких как FTP, выполнение инструкций SQL и отправка сообщений по электронной почте;
  • источники данных и адреса назначения для получения и загрузки данных;
  • преобразования для очистки, статистической обработки, слияния и копирования данных;
  • службу управления, службу SSIS для администрирования выполнения и хранения пакетов, а также API-интерфейсы для программирования модели объектов служб SSIS.
  • Практические задания

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

    Формат данных источника

    Данные источника представлены в виде набора курсов валют, содержащегося в плоском файле SampleCurrencyData.txt. Данные источника в этом файле имеют четыре столбца: средний курс валюты, ключ валюты, ключ даты и курс на конец дня.

    (рис 16.1) Фрагмент файла SampleCurrencyData.txt

    При работе с данными источника плоских файлов важно понимать, как диспетчер соединений с плоскими файлами интерпретирует данные плоских файлов. Если плоский файл является документом в кодировке Unicode, диспетчер соединений с плоскими файлами определяет все столбцы как [DT_WSTR] с шириной, по умолчанию равной 50. Если же исходный файл является документом в кодировке ANSI, столбцы определяются как [DT_STR] с шириной 50. Возможно, потребуется изменить эти настройки, чтобы оптимизировать столбцы для конкретных данных. Чтобы сделать это, необходимо узнать тип данных в назначении, куда будут заноситься эти данные, а затем выбрать правильный тип данных в диспетчере соединений с плоскими файлами.

    Формат таблицы-назначения

    Конечным назначением источника данных является таблица фактов FactCurrencyRate в базе данных AdventureWorksDW (Таблица 16.1).

    Формат таблицы фактов FactCurrencyRate
    Имя столбца Тип данных Таблица уточняющих запросов Столбец подстановки
    AverageRate float Нет Нет
    CurrencyKey int (FK) DimCurrency CurrencyKey (PK)
    TimeKey Int (FK) DimTime TimeKey (PK)
    EndOfDayRate float Нет Нет

    Таблица фактов FactCurrencyRate имеет четыре столбца и связи с двумя таблицами измерений

    Сопоставление данных источника и назначения

    Анализ форматов данных источника и назначения показывает, что для значений CurrencyKey и TimeKey необходимы преобразования "Уточняющий запрос". Преобразования, которые будут выполнены, получат значения CurrencyKey и TimeKey, используя альтернативные ключи из таблиц измерений DimCurrency и DimTime (Таблица 16.2).

    Сопоставление данных источника и назначения
    Столбец плоских файлов Имя таблицы Имя столбца Тип данных
    0 FactCurrencyRate AverageRate Float
    1 DimCurrency CurrencyAlternateKey nchar(3)
    2 DimTime FullDateAlternateKey Datetime
    3 FactCurrencyRate EndOfDayRate Float

    Создание нового проекта служб Integration Services

    Запустите BI Dev Studio. В меню "Файл" выберите пункт "Создать" и подпункт "Проект", чтобы создать новый проект служб SSIS (рисунок 16.2)

    (рис 16.2) Создание нового проекта в BI Dev Studio

    В диалоговом окне "Создать проект" в области "Шаблоны" выберите вариант "Проект служб SSIS". В поле Имя измените заданное по умолчанию имя на Integration Services Tutorial. При необходимости снимите флажок "Создать каталог для решения" (рисунок 16.3)

    (рис 16.3) Настройка параметров создаваемого проекта

    По умолчанию будет создан пустой пакет с именем Package.dtsx, который будет добавлен к проекту (рисунок 16.4)

    (рис 16.4) Созданный по умолчанию проект

    На панели инструментов "Обозреватель решений" щелкните правой кнопкой мыши файл Package.dtsx, выберите команду "Переименовать" и переименуйте пакет по умолчанию в "Lab11.dtsx".

    Получив предупреждение о переименовании объекта пакета, нажмите кнопку "Да" (рисунок 16.5)

    (рис 16.5) Предупреждение о переименовании объекта пакета

    Установка свойств проекта, зависящих от языка и региональных стандартов

    В меню "Вид" выберите пункт "Окно свойств". В окне "Свойства" присвойте свойству LocaleID значение Английский (США) (рисунок 16.6)

    (рис 16.6) Окно свойств пакета

    Добавление диспетчера соединений с плоскими файлами

    Далее к созданному пакету будет добавлен диспетчер соединений с плоскими файлами. Диспетчер соединений с плоскими файлами позволяет пакету извлекать данные из плоских файлов. С помощью диспетчера соединений с плоскими файлами можно указать имя и расположение файла, языковые стандарты и кодовую страницу, а также формат файла, включая разделители столбцов. Эти данные будут использованы при извлечении пакета из плоского файла. Кроме того, можно вручную указать тип данных для каждого столбца или в диалоговом окне "Предлагаемые типы столбцов" указать автоматическое сопоставление столбцов извлекаемых данных с типами данных в службах SSIS.

    В данной лабораторной работе предстоит настроить следующие свойства диспетчера соединений с плоскими файлами:

  • Имена столбцов. Так как в плоском файле не указаны имена столбцов, диспетчер соединений с плоскими файлами создает имена столбцов по умолчанию. Указанные имена по умолчанию не дают представления о содержащихся в столбцах данных. Чтобы сделать имена по умолчанию более понятными, следует заменить их именами, взятыми из таблицы фактов, в которую производится загрузка данных.
  • Сопоставление данных. Сопоставление типов данных, указанное для диспетчера соединений с плоскими файлами, используется всеми компонентами источников данных "плоский файл", которые обращаются к диспетчеру подключения. Можно сопоставить типы данных вручную с помощью диспетчера соединений с плоскими файлами или использовать "диалоговое окно Предлагаемые типы столбцов". В данной лабораторной работе предстоит просмотреть сопоставления, предложенные в диалоговом окне "Предлагаемые типы столбцов", а затем вручную создать необходимые сопоставления в диалоговом окне "Редактор диспетчера соединений с плоскими файлами".
  • Щелкните правой кнопкой область "Диспетчеры соединений" и в контекстном меню выберите команду "Создать соединение с плоским файлом" (рисунок 16.7)

    (рис 16.7) Контекстное меню области "Диспетчер соединений"

    В диалоговом окне "Редактор диспетчера соединений с плоскими файлами" в поле "Имя диспетчера соединений" введите " DS Sample ". Нажмите кнопку "Обзор". В диалоговом окне "Открыть" найдите папку, содержащую образец данных, а затем откройте файл SampleCurrencyData.txt. По умолчанию образцы данных устанавливаются в папку C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Tutorial\Creating a Simple ETL Package\Sample Data (рисунок 16.8)

    (рис 16.8) Редактор диспетчера соединений с плоскими файлами

    Убедитесь, что в диалоговом окне "Редактор диспетчера соединений с плоскими файлами" свойство "Языковой стандарт" установлено в значение "Русский (Россия)", а свойство "Кодовая страница" - в значение 1251.

    В левой части редактора нажмите пункт "Дополнительно". В области свойств измените свойство "Имя" для столбца 0 на AverageRate, для столбца 1 - на "CurrencyID", для столбца 2 на " CurrencyDate ", а для столбца 3 на " EndOfDayRate " (рисунок 16.9)

    (рис 16.9) Задание имен столбцов

    По умолчанию для всех четырех столбцов указан строковый тип данных [DT_STR] со значением параметра " OutputColumnWidth ", равным 50.

    В диалоговом окне "Редактор диспетчера соединений с плоскими файлами" нажмите кнопку "Предложить типы". Службы SSIS автоматически предлагают большинство соответствующих типов данных на основании первых 100 строк данных. Можно изменить параметры предложения по большему или меньшему количеству данных, чтобы указать тип данных по умолчанию для целочисленных и логических данных или чтобы добавить пробелы в дополнение к строковым столбцам. На данный момент не изменяйте значения параметров в диалоговом окне "Предполагаемые типы столбцов" и нажмите кнопку ОК, чтобы службы SSIS предложили типы данных для столбцов (рисунок 16.10).

    (рис 16.10) Диалоговое окно "Предполагаемые типы столбцов"

    Вернется область "Дополнительно" диалогового окна "Редактор диспетчера соединений с плоскими файлами", где можно просмотреть типы данных столбцов, предложенные службами SSIS (рисунок 16.11).

    (рис 16.11) Предложенные SSIS типы данных столбцов

    В данной лабораторной работе для данных из файла SampleCurrencyData.txt в службах SSIS предлагаются типы данных, приведенные во втором столбце, а типы данных, требуемые для столбцов назначения, которые будут определены позже, приведены в последнем столбце (Таблица 16.3).

    Предложенные SSIS типы данных источника и типы данных для столбцов назначения
    Столбец плоских файлов Предложенный тип Целевой столбец Целевой тип
    AverageRate Float [DT_R4] FactCurrencyRate.AverageRate Float
    CurrencyID String [DT_STR] DimCurrency.CurrencyAlternateKey nchar(3)
    CurrencyDate Date [DT_DATE] DimTime.FullDateAlternateKey datetime
    EndOfDayRate Float [DT_R4] FactCurrencyRate.EndOfDayRate Float

    Типы данных, предложенные для столбцов " CurrencyID " и " CurrencyDate ", несовместимы с типами данных в полях целевой таблицы. Необходимо изменить тип данных столбца " CurrencyID " со строкового [DT_STR] на строковый [DT_WSTR], так как типом данных поля " DimCurrency.CurrencyAlternateKey " является nchar (3). В качестве типа данных поля " DimTime.FullDateAlternateKey " задан тип " DateTime ", поэтому необходимо изменить тип параметра " CurrencyDate " с типа даты [DT_Date] на тип временной метки базы данных [DT_DBTIMESTAMP].

    В окне свойств измените тип данных столбца " CurrencyID " со строкового [DT_STR] на тип "Строка в Юникоде [DT_WSTR] " (рисунок 16.12).

    (рис 16.12) Изменение типа данных столбца "CurrencyID"

    В области свойств измените тип данных столбца " CurrencyDate " с типа даты [DT_DATE] на тип "временная метка базы данных [DT_DBTIMESTAMP] ". Нажмите кнопку ОК.

    Добавление и настройка диспетчера соединений OLE DB

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

    Будет создан диспетчер соединений OLE DB, использующий проверку подлинности Windows для подключения к локальному экземпляру AdventureWorksDW.

    Щелкните правой кнопкой мыши область "Диспетчеры соединений" и выберите команду "Создать соединение OLE DB " (рисунок 16.13).

    (рис 16.13) Контекстное меню области "Диспетчер соединений"

    В диалоговом окне "Настройка диспетчера соединений OLE DB " нажмите кнопку "Создать" (рисунок 16.14).

    (рис 16.14) Диалоговое окно "Настройка диспетчера соединений OLE DB"

    В диалоговом окне "Диспетчер соединений" введите localhost в поле "Имя сервера" (рисунок 16.15).

    (рис 16.15) Диспетчер соединений

    Если в качестве имени сервера указано значение localhost, диспетчер соединений соединяется с экземпляром SQL Server, расположенном по умолчанию на локальном компьютере. Чтобы использовать удаленный экземпляр SQL Server, замените localhost именем сервера, с которым нужно соединиться.

    Убедитесь, что в группе параметров "Вход на сервер" выбран вариант "Использовать проверку подлинности Windows".

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

    Нажмите кнопку "Проверить соединение", чтобы убедиться, что параметры соединения указаны правильно. Нажмите кнопку ОК. Нажмите кнопку ОК.

    Убедитесь, что на панели "Подключение к данным" в диалоговом окне "Настройка диспетчера соединений OLE DB " выбрано значение " localhost.AdventureWorksDW ". Нажмите кнопку ОК.

    Добавление задачи потока данных в пакет

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

    Перейдите на вкладку "Поток управления" (рисунок 16.16).

    (рис 16.16) Вкладка "Поток управления"

    В окне "Панель элементов" разверните элемент "Элементы потока управления" (рисунок 16.16) и перетащите элемент "Задача потока данных" в область конструктора вкладки "Поток управления" (рисунок 16.17).

    (рис 16.18) Окно "Панель элементов"(рис 16.17) Добавленная задача потока данных

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

    Рекомендуется давать уникальное имя каждому компоненту, добавляемому в область конструктора. Для удобства применения и обслуживания имена компонентов должны описывать их функции. Следование этим правилам именования обеспечивает самодокументируемость пакетов служб SSIS.

    Щелкните правой кнопкой мыши задачу потока данных, выберите "Свойства", в окне "Свойства" убедитесь, что свойство " LocaleID " имеет значение " English (United States) " (рисунок 16.19).

    (рис 16.19) Свойство "LocaleID" задачи "Получение курса валют"

    Добавление и настройка источника плоских файлов

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

    Будет настроен источник плоских файлов, пользующийся ранее созданным диспетчером соединения " DS Sample ".

    Откройте конструктор "Поток данных", дважды щелкнув задачу потока данных "Получение курса валют" или перейдя на вкладку "Поток данных" (рисунок 16.20).

    (рис 16.20) Конструктор "Поток данных"

    В окне "Панель элементов" раскройте элемент "Источники потока данных" и перетяните "Источник "Плоский файл"" в область конструктора вкладки "Поток данных" (рисунок 16.21).

    (рис 16.21) Добавленный элемент "Источник "Плоский файл""

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

    Дважды щелкните источник плоских файлов, чтобы открыть диалоговое окно "Редактор источника "Плоский файл"" (рисунок 16.22).

    (рис 16.22) Диалоговое окно "Редактор источника "Плоский файл""

    В поле "Диспетчер соединений с плоскими файлами" введите или выберите " DS Sample ". В левой части окна выберите пункт "Столбцы" и убедитесь, что имена столбцов заданы правильно (рисунок 16.23).

    (рис 16.23) Имена столбцов

    Нажмите кнопку ОК. Щелкните правой кнопкой мыши источник "Плоский файл" и в контекстном меню выберите пункт "Свойства". В окне "Свойства" убедитесь, что свойство "LocaleID" имеет значение " Russian (Russia) " (рисунок 16.24).

    (рис 16.24) Свойство "LocaleID" источника "Плоский файл"

    Добавление и настройка преобразований "Уточняющий запрос"

    После того как настроен источник плоских файлов для извлечения данных из файла источника, следует определить преобразования "Уточняющий запрос", необходимые для получения значений " CurrencyKey " и " TimeKey ". Преобразование "Уточняющий запрос" выполняет поиск, соединяя данные указанного входного столбца со столбцом эталонного набора данных. Эталонным набором данных может быть таблица или представление, новая таблица или результат инструкции SQL. В данной лабораторной работе преобразование "Уточняющий запрос" использует диспетчер соединений OLE DB, чтобы подключиться к базе данных, содержащей данные, служащие источником для эталонного набора данных.

    Будут добавлены в пакет и настроены следующие два компонента преобразования "Уточняющий запрос":

  • первое преобразование предназначено для уточняющего запроса значений в столбце " CurrencyKey " таблицы измерения " DimCurrency ", сопоставленных со значениями столбца " CurrencyID " плоского файла;
  • второе преобразование предназначено для уточняющего запроса значений в столбце " TimeKey " таблицы измерения " DimTime ", сопоставленных со значениями столбца " CurrencyDate " плоского файла.
  • Добавление и настройка преобразования "Уточняющий запрос CurrencyID"

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

    (рис 16.25) Добавленный компонент "Уточняющий запрос"

    Щелкните источник плоского файла "Получение котировок валют" и перетащите зеленую стрелку на вновь добавленное преобразование "Уточняющий запрос", соединив эти два компонента ().

    (рис 16.26) Соединение компонентов "Получение котировок валют" и "Уточняющий запрос"

    В области конструктора "Поток данных" щелкните элемент "Уточняющий запрос" в преобразовании "Уточняющий запрос" и измените имя на "Уточняющий запрос CurrencyID ".

    Дважды щелкните преобразование "Уточняющий запрос CurrencyID ". На вкладке "Общие" задайте следующие параметры (рисунок 16.27).

  • Выберите "Полное кэширование".
  • В области "Тип соединения" выберите "Диспетчер соединений OLE DB".
  • (рис 16.27) Вкладка "Общие" редактора преобразования "Уточняющий запрос"

    На вкладке "Соединение" задайте следующие параметры (рисунок 16.27):

  • Убедитесь, что в диалоговом окне "Диспетчер соединений OLE DB " отображается " localhost.AdventureWorksDW ".
  • Выберите вариант "Использовать результаты SQL-запроса" и введите или скопируйте следующую инструкцию SQL:
  • select * from (select * from [dbo].[DimCurrency]) as refTable
    where [refTable].[CurrencyAlternateKey] = 'ARS'
    OR
    [refTable].[CurrencyAlternateKey] = 'AUD'
    OR
    [refTable].[CurrencyAlternateKey] = 'BRL'
    OR
    [refTable].[CurrencyAlternateKey] = 'CAD'
    OR
    [refTable].[CurrencyAlternateKey] = 'CNY'
    OR
    [refTable].[CurrencyAlternateKey] = 'DEM'
    OR
    [refTable].[CurrencyAlternateKey] = 'EUR'
    OR
    [refTable].[CurrencyAlternateKey] = 'FRF'
    OR
    [refTable].[CurrencyAlternateKey] = 'GBP'
    OR
    [refTable].[CurrencyAlternateKey] = 'JPY'
    OR
    [refTable].[CurrencyAlternateKey] = 'MXN'
    OR
    [refTable].[CurrencyAlternateKey] = 'SAR'
    OR
    [refTable].[CurrencyAlternateKey] = 'USD'
    OR
    [refTable].[CurrencyAlternateKey] = 'VEB'
    (рис 16.28) Вкладка "Соединение" редактора преобразования "Уточняющий запрос"

    На вкладке "Столбцы" задайте следующие параметры (рисунок 16.29):

  • на панели "Доступные входные столбцы" перетащите "CurrencyID" на панель "Доступные столбцы подстановки" и поместите его на элемент " CurrencyAlternateKey ";
  • в списке "Доступные столбцы подстановки" установите флажок слева от столбца " CurrencyKey ".
  • (рис 16.29) Вкладка "Столбцы" редактора преобразования "Уточняющий запрос"

    Нажмите OK, чтобы вернуться в область конструктора "Поток данных". Щелкните правой кнопкой мыши преобразование "Уточняющий запрос CurrencyID", в контекстном меню выберите пункт "Свойства" (рисунок 16.30).

    (рис 16.30) Свойства компонента "Уточняющий запрос CurrencyID"

    В окне "Свойства" убедитесь, что свойство "LocaleID" установлено в значение " English (USA)" и свойство " DefaultCodePage " установлено в значение "1252".

    Добавление и настройка преобразования "Уточняющий запрос DataID"

    В окне "Панель элементов" перетащите компонент "Уточняющий запрос" в область конструктора "Поток данных". Поместите "Уточняющий запрос" прямо под преобразование "Уточняющий запрос CurrencyID " (рисунок 16.31).

    (рис 16.31) Добавленный компонент "Уточняющий запрос"

    Щелкните преобразование "Уточняющий запрос CurrencyID " и перетащите зеленую стрелку на вновь созданное преобразование "Уточняющий запрос", соединив эти два компонента. В диалоговом окне "Выбор входов и выходов" выберите "Выход совпадений преобразований "Уточняющий запрос"" в раскрывающемся списке "Выход" и нажмите кнопку ОК (рисунок 16.32).

    (рис 16.32) Выбор входов и выходов

    В области конструктора "Поток данных" щелкните элемент "Уточняющий запрос" в только что добавленном преобразовании "Уточняющий запрос" и измените имя на "Уточняющий запрос DataID " (рисунок 16.33).

    (рис 16.33) Связь между компонентами "Уточняющий запрос CurrencyID" и "Уточняющий запрос DataID"

    Дважды щелкните преобразование "Уточняющий запрос DataID ". На вкладке "Общие" выберите "Частичное кэширование" (рисунок 16.34).

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

    На вкладке "Соединение" задайте следующие параметры (рисунок 16.35):

  • убедитесь, что в поле "Диспетчер соединений OLE DB " отображается "localhost.AdventureWorksDW";
  • в поле "Использовать таблицу или представление" введите или выберите " [dbo].[DimTime] ".
  • (рис 16.35) Вкладка "Соединение" редактора преобразования "Уточняющий запрос"

    На вкладке "Столбцы" задайте следующие параметры (рисунок 16.36):

  • на панели "Доступные входные столбцы" перетяните " CurrencyDate " на панель "Доступные столбцы подстановки" и поместите его на элемент "FullDateAlternateKey";
  • в списке "Доступные столбцы подстановки" установите флажок слева от столбца " TimeKey ".
  • (рис 16.36) Вкладка "Столбцы" редактора преобразования "Уточняющий запрос"

    Нажмите OK, чтобы вернуться в область конструктора "Поток данных". Щелкните правой кнопкой мыши преобразование "Уточняющий запрос DateID " и выберите пункт "Свойства".

    В окне "Свойства" убедитесь, что свойство "LocaleID" установлено в значение " English (USA) " и свойство " DefaultCodePage " установлено в значение "1252".

    Добавление и настройка образца назначения OLE DB

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

    На "Панели элементов" раскройте группу компонентов "Назначения потока данных" и перетяните "Назначение OLE DB " в область конструктора вкладки "Поток данных". Поместите компонент "Назначение OLE DB " непосредственно под преобразованием "Уточняющий запрос DateID" (рисунок 16.37).

    (рис 16.37) Добавленный компонент "Назначение OLE DB"

    Щелкните преобразование "Уточняющий запрос DateID " и перетяните зеленую стрелку к добавленному компоненту "Назначение OLE DB ", чтобы соединить эти два компонента. В диалоговом окне "Выбор входов и выходов" щелкните выберите вариант "Выход совпадений преобразования "Уточняющий запрос"" в раскрывающемся списке "Выходы" (рисунок 16.38) и нажмите кнопку ОК.

    (рис 16.38) Выбор входов и выходов при соединении компонентов "Уточняющий запрос DateID" и "Назначение OLE DB"

    В области конструктора "Поток данных" щелкните элемент "Назначение " OLE DB "" в только что добавленном преобразовании "Назначение " OLE DB "" и измените имя на "Образец назначения OLE DB " (рисунок 16.39).

    (рис 16.39) Переименование добавленного компонента

    Дважды щелкните значок "Образец назначения OLE DB ". Убедитесь, что в диалоговом окне "Редактор назначения OLE DB " на закладке "Диспетчер соединений OLE DB " выбрано значение " localhost.AdventureWorksDW ".

    В поле "Имя таблицы или представления" введите или выберите значение " [dbo].[FactCurrencyRate] " (рисунок 16.40).

    (рис 16.40) Закладка "Диспетчер соединений OLE DB" диалогового окна "Редактор назначения "OLE DB""

    Перейдите на закладку "Сопоставления" (рисунок 16.41).

    (рис 16.41) Закладка "Сопоставления" диалогового окна "Редактор назначения "OLE DB""

    Убедитесь, что входные столбцы " AverageRate ", " CurrencyKey ", " EndOfDayRate " и " TimeKey " правильно сопоставлены с целевыми столбцами. Если друг с другом сопоставлены столбцы с одинаковыми именами, то сопоставление правильное. Нажмите кнопку ОК.

    Щелкните правой кнопкой мыши назначение "Образец назначения OLE DB " и в контекстном меню выберите пункт "Свойства". В окне "Свойства" убедитесь, что свойство " LocaleID " установлено в значение " English (USA) " и свойство " DefaultCodePage " имеет значение "1252".

    Добавление заметки к потоку данных

    Щелкните правой кнопкой мыши в области конструктора потока данных и в контекстном меню выберите "Добавить заметку". В окне заметки введите или вставьте копированием следующий текст:

    Поток данных извлекает данные из файла, находит значения в столбце " CurrencyKey " таблицы " DimCurrency " и в столбце " TimeKey " таблицы " DimTime ", после чего записывает данные в таблицу " FactCurrencyRate ".

    Чтобы в окне заметки перенести текст на следующую строку, поместите курсор в место, где должна начинаться новая строка, и нажмите клавиши Ctrl и Enter (рисунок 16.42).

    (рис 16.42) Заметка, добавленная к потоку данных

    Выполнение пакета

    В меню Отладка выберите команду "Начать отладку". Пакет будет запущен, и в таблицу фактов " FactCurrencyRate " из базы данных "AdventureWorksDW" будет добавлено 1097 строк.

    После окончания работы пакета выберите в меню Отладка пункт Остановить отладку.

    Контрольные вопросы

  • Какие функции выполняют SSIS?
  • Какие компоненты содержат службы SSIS?
  • Вернуться к учебному плану