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


Урок 1. Создание проекта и базового пакета с помощью служб SQL Server Integration Services (SSIS)

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

На этом занятии вы создадите простой пакет извлечения, преобразования и загрузки (ETL). Пакет извлекает данные из одного источника плоского файла, преобразует данные с помощью двух подстановочных преобразований и записывает преобразованные данные в копию таблицы фактов в FactCurrencyRate образце базы данных. В рамках этого урока вы создаете новые пакеты, добавляете и настраиваете подключения к источнику данных и назначению, а также работаете с новыми компонентами потока управления и потока данных.

Перед созданием пакета необходимо ознакомиться с форматированием в источнике данных и назначении. Затем вы готовы определить преобразования, необходимые для сопоставления исходных данных с назначением.

Необходимые компоненты

Для выполнения упражнений в этом учебнике требуются средства Microsoft SQL Server Data Tools, набор примеров пакетов и образец базы данных.

Замечание

Примеры кода в этой статье используют базу данных образца AdventureWorks2025 или AdventureWorksDW2025, которую можно скачать с домашней страницы образцов и проектов сообщества Microsoft SQL Server и.

Сведения об установке sql Server Data Tools см. в статье "Установка SQL Server Data Tools (SSDT) для Visual Studio.

Чтобы скачать все пакеты занятий этого учебника, выполните указанные ниже действия.

  1. Перейдите к учебным файлам для служб Integration Services.
  2. Нажмите кнопку "Скачать ".
  3. Creating a Simple ETL Package.zip Выберите файл, а затем нажмите кнопку "Далее".
  4. Когда файл скачается, распакуйте его содержимое в локальный каталог.

Обзор исходных данных

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

Ниже приведен пример исходных данных в SampleCurrencyData.txt файле:

1.00070049USD9/3/05 0:001.001201442
1.00020004USD9/4/05 0:001
1.00020004USD9/5/05 0:001.001201442
1.00020004USD9/6/05 0:001
1.00020004USD9/7/05 0:001.00070049
1.00070049USD9/8/05 0:000.99980004
1.00070049USD9/9/05 0:001.001502253
1.00070049USD9/10/05 0:000.99990001
1.00020004USD9/11/05 0:001.001101211
1.00020004USD9/12/05 0:000.99970009

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

Обзор данных назначения

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

Имя столбца Тип данных Таблица подстановки Столбец подстановки
AverageRate float нет нет
CurrencyKey int (FK) 1 DimCurrency CurrencyKey (PK) 2
DateKey int (FK) 1 DimDate DateKey (PK) 2
EndOfDayRate float нет нет

1 FK: Внешний ключ

2 PK: первичный ключ

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

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

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

Задачи занятия

Следующий шаг