Службы Microsoft SQL Server Integration Services (
FTP, выполнение инструкций SQL и отправка сообщений по электронной почте;В данной лабораторной работе при помощи конструктора служб FactCurrencyRate образца базы данных AdventureWorksDW.
Данные источника представлены в виде набора курсов валют, содержащегося в плоском файле SampleCurrencyData.txt. Данные источника в этом файле имеют четыре столбца: средний курс валюты, ключ валюты, ключ даты и курс на конец дня.
(рис 16.1) Фрагмент файла SampleCurrencyData.txtПри работе с данными источника плоских файлов важно понимать, как диспетчер соединений с плоскими файлами интерпретирует данные плоских файлов. Если плоский файл является документом в кодировке Unicode, диспетчер соединений с плоскими файлами определяет все столбцы как [DT_WSTR] с шириной, по умолчанию равной 50. Если же исходный файл является документом в кодировке ANSI, столбцы определяются как [DT_STR] с шириной 50. Возможно, потребуется изменить эти настройки, чтобы оптимизировать столбцы для конкретных данных. Чтобы сделать это, необходимо узнать тип данных в назначении, куда будут заноситься эти данные, а затем выбрать правильный тип данных в диспетчере соединений с плоскими файлами.
Конечным назначением источника данных является таблица фактов FactCurrencyRate в базе данных AdventureWorksDW (Таблица 16.1).
| Имя столбца | Тип данных | Таблица уточняющих запросов | Столбец подстановки |
|---|---|---|---|
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 |
Запустите BI Dev Studio. В меню "Файл" выберите пункт "Создать" и подпункт "Проект", чтобы создать новый проект служб
(рис 16.2) Создание нового проекта в BI Dev StudioВ диалоговом окне "Создать проект" в области "Шаблоны" выберите вариант "Проект служб
(рис 16.3) Настройка параметров создаваемого проектаПо умолчанию будет создан пустой пакет с именем Package.dtsx, который будет добавлен к проекту (рисунок 16.4)
(рис 16.4) Созданный по умолчанию проектНа панели инструментов "Обозреватель решений" щелкните правой кнопкой мыши файл Package.dtsx, выберите команду "Переименовать" и переименуйте пакет по умолчанию в "Lab11.dtsx".
Получив предупреждение о переименовании объекта пакета, нажмите кнопку "Да" (рисунок 16.5)
(рис 16.5) Предупреждение о переименовании объекта пакета
В меню "Вид" выберите пункт "Окно свойств". В окне "Свойства" присвойте свойству LocaleID значение Английский (США) (рисунок 16.6)
(рис 16.6) Окно свойств пакета
Далее к созданному пакету будет добавлен диспетчер соединений с плоскими файлами. Диспетчер соединений с плоскими файлами позволяет пакету извлекать данные из плоских файлов. С помощью диспетчера соединений с плоскими файлами можно указать имя и расположение файла, языковые стандарты и кодовую страницу, а также формат файла, включая разделители столбцов. Эти данные будут использованы при извлечении пакета из плоского файла. Кроме того, можно вручную указать тип данных для каждого столбца или в диалоговом окне "Предлагаемые типы столбцов" указать автоматическое сопоставление столбцов извлекаемых данных с типами данных в службах
В данной лабораторной работе предстоит настроить следующие свойства диспетчера соединений с плоскими файлами:
Щелкните правой кнопкой область "Диспетчеры соединений" и в контекстном меню выберите команду "Создать соединение с плоским файлом" (рисунок 16.7)
(рис 16.7) Контекстное меню области "Диспетчер соединений"В диалоговом окне "Редактор диспетчера соединений с плоскими файлами" в поле "Имя диспетчера соединений" введите " DS Sample ". Нажмите кнопку "Обзор". В диалоговом окне "Открыть" найдите папку, содержащую образец данных, а затем откройте файл SampleCurrencyData.txt. По умолчанию образцы данных устанавливаются в папку C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Tutorial\Creating a Simple
(рис 16.8) Редактор диспетчера соединений с плоскими файламиУбедитесь, что в диалоговом окне "Редактор диспетчера соединений с плоскими файлами" свойство "Языковой стандарт" установлено в значение "Русский (Россия)", а свойство "Кодовая страница" - в значение 1251.
В левой части редактора нажмите пункт "Дополнительно". В области свойств измените свойство "Имя" для столбца 0 на AverageRate, для столбца 1 - на "CurrencyID", для столбца 2 на " CurrencyDate ", а для столбца 3 на " EndOfDayRate " (рисунок 16.9)
(рис 16.9) Задание имен столбцовПо умолчанию для всех четырех столбцов указан строковый тип данных [DT_STR] со значением параметра " OutputColumnWidth ", равным 50.
В диалоговом окне "Редактор диспетчера соединений с плоскими файлами" нажмите кнопку "Предложить типы". Службы
(рис 16.10) Диалоговое окно "Предполагаемые типы столбцов"Вернется область "Дополнительно" диалогового окна "Редактор диспетчера соединений с плоскими файлами", где можно просмотреть
(рис 16.11) Предложенные SSIS типы данных столбцовВ данной лабораторной работе для данных из файла SampleCurrencyData.txt в службах
| Столбец плоских файлов | Предложенный тип | Целевой столбец | Целевой тип |
|---|---|---|---|
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, использующий проверку подлинности 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) Добавленная задача потока данныхВ области конструктора "Поток управления" щелкните правой кнопкой мыши добавленный элемент "Задача потока данных", выберите команду "Переименовать" и измените имя на "Получение курса валют".
Рекомендуется давать уникальное имя каждому компоненту, добавляемому в область конструктора. Для удобства применения и обслуживания имена компонентов должны описывать их функции. Следование этим правилам именования обеспечивает самодокументируемость пакетов служб
Щелкните правой кнопкой мыши задачу потока данных, выберите "Свойства", в окне "Свойства" убедитесь, что свойство " 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 " плоского файла.В окне "Панель элементов" раскройте группу компонентов "Преобразования потока данных" и перетащите компонент "Уточняющий запрос" в область конструктора на вкладку "Поток данных". Поместите "Уточняющий запрос" прямо под источником "Получение котировок валют" (рисунок 16.25).
(рис 16.25) Добавленный компонент "Уточняющий запрос"Щелкните источник плоского файла "Получение котировок валют" и перетащите зеленую стрелку на вновь добавленное преобразование "Уточняющий запрос", соединив эти два компонента ().
(рис 16.26) Соединение компонентов "Получение котировок валют" и "Уточняющий запрос"В области конструктора "Поток данных" щелкните элемент "Уточняющий запрос" в преобразовании "Уточняющий запрос" и измените имя на "Уточняющий запрос CurrencyID ".
Дважды щелкните преобразование "Уточняющий запрос CurrencyID ". На вкладке "Общие" задайте следующие параметры (рисунок 16.27).
(рис 16.27) Вкладка "Общие" редактора преобразования "Уточняющий запрос" На вкладке "Соединение" задайте следующие параметры (рисунок 16.27):
OLE DB " отображается " localhost.AdventureWorksDW ".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):
CurrencyAlternateKey ";CurrencyKey ".
(рис 16.29) Вкладка "Столбцы" редактора преобразования "Уточняющий запрос"Нажмите OK, чтобы вернуться в область конструктора "Поток данных". Щелкните правой кнопкой мыши преобразование "Уточняющий запрос CurrencyID", в контекстном меню выберите пункт "Свойства" (рисунок 16.30).
(рис 16.30) Свойства компонента "Уточняющий запрос CurrencyID"В окне "Свойства" убедитесь, что свойство "LocaleID" установлено в значение " English (USA)" и свойство " DefaultCodePage " установлено в значение "1252".
В окне "Панель элементов" перетащите компонент "Уточняющий запрос" в область конструктора "Поток данных". Поместите "Уточняющий запрос" прямо под преобразование "Уточняющий запрос 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 " непосредственно под преобразованием "Уточняющий запрос 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 строк.
После окончания работы пакета выберите в меню Отладка пункт Остановить отладку.
Службы Microsoft SQL Server Integration Services (
FTP, выполнение инструкций SQL и отправка сообщений по электронной почте;В данной лабораторной работе при помощи конструктора служб FactCurrencyRate образца базы данных AdventureWorksDW.
Данные источника представлены в виде набора курсов валют, содержащегося в плоском файле SampleCurrencyData.txt. Данные источника в этом файле имеют четыре столбца: средний курс валюты, ключ валюты, ключ даты и курс на конец дня.
(рис 16.1) Фрагмент файла SampleCurrencyData.txtПри работе с данными источника плоских файлов важно понимать, как диспетчер соединений с плоскими файлами интерпретирует данные плоских файлов. Если плоский файл является документом в кодировке Unicode, диспетчер соединений с плоскими файлами определяет все столбцы как [DT_WSTR] с шириной, по умолчанию равной 50. Если же исходный файл является документом в кодировке ANSI, столбцы определяются как [DT_STR] с шириной 50. Возможно, потребуется изменить эти настройки, чтобы оптимизировать столбцы для конкретных данных. Чтобы сделать это, необходимо узнать тип данных в назначении, куда будут заноситься эти данные, а затем выбрать правильный тип данных в диспетчере соединений с плоскими файлами.
Конечным назначением источника данных является таблица фактов FactCurrencyRate в базе данных AdventureWorksDW (Таблица 16.1).
| Имя столбца | Тип данных | Таблица уточняющих запросов | Столбец подстановки |
|---|---|---|---|
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 |
Запустите BI Dev Studio. В меню "Файл" выберите пункт "Создать" и подпункт "Проект", чтобы создать новый проект служб
(рис 16.2) Создание нового проекта в BI Dev StudioВ диалоговом окне "Создать проект" в области "Шаблоны" выберите вариант "Проект служб
(рис 16.3) Настройка параметров создаваемого проектаПо умолчанию будет создан пустой пакет с именем Package.dtsx, который будет добавлен к проекту (рисунок 16.4)
(рис 16.4) Созданный по умолчанию проектНа панели инструментов "Обозреватель решений" щелкните правой кнопкой мыши файл Package.dtsx, выберите команду "Переименовать" и переименуйте пакет по умолчанию в "Lab11.dtsx".
Получив предупреждение о переименовании объекта пакета, нажмите кнопку "Да" (рисунок 16.5)
(рис 16.5) Предупреждение о переименовании объекта пакета
В меню "Вид" выберите пункт "Окно свойств". В окне "Свойства" присвойте свойству LocaleID значение Английский (США) (рисунок 16.6)
(рис 16.6) Окно свойств пакета
Далее к созданному пакету будет добавлен диспетчер соединений с плоскими файлами. Диспетчер соединений с плоскими файлами позволяет пакету извлекать данные из плоских файлов. С помощью диспетчера соединений с плоскими файлами можно указать имя и расположение файла, языковые стандарты и кодовую страницу, а также формат файла, включая разделители столбцов. Эти данные будут использованы при извлечении пакета из плоского файла. Кроме того, можно вручную указать тип данных для каждого столбца или в диалоговом окне "Предлагаемые типы столбцов" указать автоматическое сопоставление столбцов извлекаемых данных с типами данных в службах
В данной лабораторной работе предстоит настроить следующие свойства диспетчера соединений с плоскими файлами:
Щелкните правой кнопкой область "Диспетчеры соединений" и в контекстном меню выберите команду "Создать соединение с плоским файлом" (рисунок 16.7)
(рис 16.7) Контекстное меню области "Диспетчер соединений"В диалоговом окне "Редактор диспетчера соединений с плоскими файлами" в поле "Имя диспетчера соединений" введите " DS Sample ". Нажмите кнопку "Обзор". В диалоговом окне "Открыть" найдите папку, содержащую образец данных, а затем откройте файл SampleCurrencyData.txt. По умолчанию образцы данных устанавливаются в папку C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Tutorial\Creating a Simple
(рис 16.8) Редактор диспетчера соединений с плоскими файламиУбедитесь, что в диалоговом окне "Редактор диспетчера соединений с плоскими файлами" свойство "Языковой стандарт" установлено в значение "Русский (Россия)", а свойство "Кодовая страница" - в значение 1251.
В левой части редактора нажмите пункт "Дополнительно". В области свойств измените свойство "Имя" для столбца 0 на AverageRate, для столбца 1 - на "CurrencyID", для столбца 2 на " CurrencyDate ", а для столбца 3 на " EndOfDayRate " (рисунок 16.9)
(рис 16.9) Задание имен столбцовПо умолчанию для всех четырех столбцов указан строковый тип данных [DT_STR] со значением параметра " OutputColumnWidth ", равным 50.
В диалоговом окне "Редактор диспетчера соединений с плоскими файлами" нажмите кнопку "Предложить типы". Службы
(рис 16.10) Диалоговое окно "Предполагаемые типы столбцов"Вернется область "Дополнительно" диалогового окна "Редактор диспетчера соединений с плоскими файлами", где можно просмотреть
(рис 16.11) Предложенные SSIS типы данных столбцовВ данной лабораторной работе для данных из файла SampleCurrencyData.txt в службах
| Столбец плоских файлов | Предложенный тип | Целевой столбец | Целевой тип |
|---|---|---|---|
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, использующий проверку подлинности 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) Добавленная задача потока данныхВ области конструктора "Поток управления" щелкните правой кнопкой мыши добавленный элемент "Задача потока данных", выберите команду "Переименовать" и измените имя на "Получение курса валют".
Рекомендуется давать уникальное имя каждому компоненту, добавляемому в область конструктора. Для удобства применения и обслуживания имена компонентов должны описывать их функции. Следование этим правилам именования обеспечивает самодокументируемость пакетов служб
Щелкните правой кнопкой мыши задачу потока данных, выберите "Свойства", в окне "Свойства" убедитесь, что свойство " 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 " плоского файла.В окне "Панель элементов" раскройте группу компонентов "Преобразования потока данных" и перетащите компонент "Уточняющий запрос" в область конструктора на вкладку "Поток данных". Поместите "Уточняющий запрос" прямо под источником "Получение котировок валют" (рисунок 16.25).
(рис 16.25) Добавленный компонент "Уточняющий запрос"Щелкните источник плоского файла "Получение котировок валют" и перетащите зеленую стрелку на вновь добавленное преобразование "Уточняющий запрос", соединив эти два компонента ().
(рис 16.26) Соединение компонентов "Получение котировок валют" и "Уточняющий запрос"В области конструктора "Поток данных" щелкните элемент "Уточняющий запрос" в преобразовании "Уточняющий запрос" и измените имя на "Уточняющий запрос CurrencyID ".
Дважды щелкните преобразование "Уточняющий запрос CurrencyID ". На вкладке "Общие" задайте следующие параметры (рисунок 16.27).
(рис 16.27) Вкладка "Общие" редактора преобразования "Уточняющий запрос"На вкладке "Соединение" задайте следующие параметры (рисунок 16.27):
OLE DB " отображается " localhost.AdventureWorksDW ".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):
CurrencyAlternateKey ";CurrencyKey ".
(рис 16.29) Вкладка "Столбцы" редактора преобразования "Уточняющий запрос"Нажмите OK, чтобы вернуться в область конструктора "Поток данных". Щелкните правой кнопкой мыши преобразование "Уточняющий запрос CurrencyID", в контекстном меню выберите пункт "Свойства" (рисунок 16.30).
(рис 16.30) Свойства компонента "Уточняющий запрос CurrencyID"В окне "Свойства" убедитесь, что свойство "LocaleID" установлено в значение " English (USA)" и свойство " DefaultCodePage " установлено в значение "1252".
В окне "Панель элементов" перетащите компонент "Уточняющий запрос" в область конструктора "Поток данных". Поместите "Уточняющий запрос" прямо под преобразование "Уточняющий запрос 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 " непосредственно под преобразованием "Уточняющий запрос 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 строк.
После окончания работы пакета выберите в меню Отладка пункт Остановить отладку.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.