Разное

Ms ssis: SQL Server Integration Services (SSIS) для начинающих – часть 1 / Хабр

Содержание

SQL Server Integration Services (SSIS) для начинающих – часть 1 / Хабр

→ Часть 2
→ Часть 3

SSIS – это инструмент, который позволяет в удобном виде реализовать интеграцию, т.е. реализовать процесс переноса данных из одного источника в другой. Этот процесс иногда называют ETL (от англ. Extract, Transform, Load – дословно «извлечение, преобразование, загрузка»).

Думаю, данный практический курс будет полезен тем, кто хочет изучить SSIS и не знает с чего начать. Здесь в режиме Step By Step мы начнем с самого начала, т.е. установки всего необходимого.

Дальше будет очень много картинок!

Необходимые инструменты для изучения SSIS

В данной статье SSIS будет рассматриваться на примере SQL Server 2014 Developer Edition. Службы Integration Services доступны в SQL Server 2014 начиная с редакции Standard.

Дополнительно необходимо будет скачать и установить инструмент разработчика SQL Server Data Tools (SSDT).

SSDT – это расширение для Visual Studio, которое позволит создавать проекты необходимого нам типа.

Для облегчения процесса установки, я воспользуюсь SSDT для Visual Studio 2012 (VS2012), его можно скачать по ссылке (файл «SSDTBI_VS2012_x86_ENU.exe»):
www.microsoft.com/en-US/download/details.aspx?id=36843

По описанию, данная версия SSDT поддерживает следующие версии SQL Server: SQL Server 2014, SQL Server 2012, SQL Server 2008 и 2008 R2.

Если на вашем компьютере не установлен VS данной версии, то установщик SSDT установит минимальную версию оболочки, которая позволит создавать проекты нужного нам типа.

Установка SQL Server и SSDT

Первым делом установим SQL Server со всеми необходимыми компонентами.

Я все устанавливал на чистую Windows 7 SP 1 (x64), ничего дополнительного кроме указанного ниже устанавливать не придется.

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

Запускаем установочный файл SQL Server 2014:

Для работы SSIS достаточно будет выбрать следующие компоненты:

Т. к. мне в дальнейшем понадобится Analysis Services (SSAS), то я отметил и его, если он вам не нужен вы можете не выбирать данный компонент.

У меня нет других установленных SQL Server, и я сделаю этот экземпляр используемым по умолчанию:

Сделаю, чтобы SQL Agent запускался автоматически:

При необходимости можно изменить Collation, который будет использоваться по умолчанию:

Установлю смешанный режим аутентификации, указав свой пароль для пользователя sa:

Т.к. я еще выбрал Analysis Services, то делаю настройки для него:

Нажимая Next и Install запускаем установку SQL Server и его компонент.

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

Следующим шагом установим SSDT – это расширение для Visual Studio, которое даст нам возможность создавать проекты SSIS. Установщик SSDT ставит минимальную версию оболочки VS, поэтому предварительно устанавливать VS отдельно нет надобности.

Запускаем «SSDTBI_VS2012_x86_ENU.exe», и добравшись до следующего шага выбираем следующий пункт:

Нажимая Next запускаем установку.

После завершения установки на всякий случай перезагружаем компьютер.

Это все, что нам понадобится для изучения SSIS.

Создание демонстрационных баз данных

Запустим SQL Server Management Studio (SSMS) и при помощи скрипта создадим 3 базы данных – первые две (DemoSSIS_SourceA и DemoSSIS_SourceB) будут выступать в роли источников данных, а третья (DemoSSIS_Target) в роли получателя данных:

-- первая БД выступающая в роли источника данных
CREATE DATABASE DemoSSIS_SourceA
GO

ALTER DATABASE DemoSSIS_SourceA SET RECOVERY SIMPLE 
GO

-- вторая БД выступающая в роли источника данных
CREATE DATABASE DemoSSIS_SourceB
GO

ALTER DATABASE DemoSSIS_SourceB SET RECOVERY SIMPLE 
GO

-- БД выступающая в роли получателя данных
CREATE DATABASE DemoSSIS_Target
GO

ALTER DATABASE DemoSSIS_Target SET RECOVERY SIMPLE 
GO

В базах источниках создадим тестовые таблицы и наполним их тестовыми данными:

USE DemoSSIS_SourceA
GO

-- продукты из источника A
CREATE TABLE Products(
  ID int NOT NULL IDENTITY,
  Title nvarchar(50) NOT NULL,
  Price money,
CONSTRAINT PK_Products PRIMARY KEY(ID)
)
GO

-- наполняем таблицу тестовыми данными
SET IDENTITY_INSERT Products ON

INSERT Products(ID,Title,Price)VALUES
(1,N'Клей',20),
(2,N'Корректор',NULL),
(3,N'Скотч',100),
(4,N'Стикеры',80),
(5,N'Скрепки',25)

SET IDENTITY_INSERT Products OFF
GO
USE DemoSSIS_SourceB
GO

-- продукты из источника B
CREATE TABLE Products(
  ID int NOT NULL IDENTITY,
  Title nvarchar(50) NOT NULL,
  Price money,
CONSTRAINT PK_Products PRIMARY KEY(ID)
)
GO

-- наполняем таблицу тестовыми данными
SET IDENTITY_INSERT Products ON

INSERT Products(ID,Title,Price)VALUES
(1,N'Ножницы',200),
(2,N'Нож канцелярский',70),
(3,N'Дырокол',220),
(4,N'Степлер',150),
(5,N'Шариковая ручка',15)

SET IDENTITY_INSERT Products OFF
GO

Создадим таблицу в принимающей базе:

USE DemoSSIS_Target
GO

-- принимающая таблица
CREATE TABLE Products(
  ID int NOT NULL IDENTITY,
  Title nvarchar(50) NOT NULL,
  Price money,
  SourceID char(1) NOT NULL, -- используется для идентификации источника
  SourceProductID int NOT NULL, -- ID в источнике
CONSTRAINT PK_Products PRIMARY KEY(ID),
CONSTRAINT UK_Products UNIQUE(SourceID,SourceProductID),
CONSTRAINT CK_Products_SourceID CHECK(SourceID IN('A','B'))
)
GO

Создание SSIS проекта

Запустим Visual Studio 2012 и выберем один из видов предлагаемой нам настройки среды, так здесь же я откажусь от локальной документации:

Создадим новый проект (File -> New -> Project…):

Для последующего облегчения развертывания зайдем в свойства проекта и изменим опцию ProtectionLevel на DontSaveSensitive:

То же самое сделаем в свойствах пакета, который создался по умолчанию:

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

Создадим соединения:

Заполняем параметры соединение с БД:

Боевые параметры соединения в дальнейшем можно будет настроить при создании задачи SQL Server Agent.

Для удобства я переименую название соединения на SourceA:

Таким же образом создадим и переименуем соединения для баз DemoSSIS_SourceB и DemoSSIS_Target:

Переименуем пакет, созданный по умолчанию, в «LoadProducts.dtsx»:

Сначала напишем простую логику, которая будет полностью очищать таблицу Products в базе DemoSSIS_Target и снова загружать в нее данные из двух баз данных DemoSSIS_SourceA и DemoSSIS_SourceB.

Для очистки воспользуемся компонентом «Execute SQL Task», который мы при помощи мыши создадим в области «Control Flow»:

Для наглядности можно переименовать название компонент. Зададим ему имя «Delete All Products From Target»:

Для этой цели используется свойство Name.

Дважды щелкнем на этом элементе и пропишем следующие свойства:

Т.к. TSQL команда «TRUNCATE TABLE Products» ничего не возвращает оставим свойства ResultSet равным None.

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

Теперь скинем в область «Control Flow» компонент «Data Flow Task» и переименуем его в «Load Products From Source A», а также протянем к этому компоненту зеленную стрелку от «Delete All Products From Target»:

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

Щелкнув дважды на «Load Products From Source A» мы попадаем в область «Data Flow» этого элемента.

Data Flow Task – это сложный компонент, который имеет свою область, в которой создаются вложенные элементы для работы с потоком данных.

Скинем в эту область компонент «Source Assistant»:

Этот компонент отвечает за получение данных из источника. Дважды щелкнув по нему, мы сможем настроить его:

Пока воспользуемся режимом «Data access mode» равным «Table or view». Это приведет к получению всех строк из таблицы Products. Посмотреть данные можно нажав на «Preview…».

На закладке Columns мы можем выбрать только необходимые нам колонки и при необходимости переименовать их прописав новое имя в колонке «Output Columns»:

Для получателя нужна еще одна дополнительная колонка SourceID, добавим ее к выходному набору при помощи компонента «Derived Column», который переименуем в «Add SourceID», так же протянем синюю стрелку к данному элементу от «OLE DB Source»:

Дважды щелкнем по элементу «Add SourceID» и пропишем значение «A» в виде константы:

Здесь я воспользовался функцией преобразования типа (DT_STR,1,1251) для того чтобы превратить Unicode строку в ANSI.

Теперь создадим компонент «Destination Assistant»:

Направим в него поток от «Add SourceID»:

Дважды щелкнем по «OLE DB Destination» и произведем настройки:

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

«Keep identity» используется в случае если в принимающей таблице есть поле с флагом IDENTITY и мы хотим, чтобы значения в него тоже записывались из источника (это аналогично включению опции SET IDENTITY_INSERT Products ON).

Перейдя на закладку Mappings осуществим привязку полей источника с полями получателя:

Так как у нас поля источника и приемника именуются одинаково, то привязка осуществилась автоматически.

Можем протестировать работу пакета и убедиться, что данные залились в таблицу Products базы DemoSSIS_Target.

Запускаем пакет на выполнение из Visual Studio нажав Start или клавишу F5:

Так же пакет можно выполнить, воспользовавшись командой из контекстного меню:

При помощи «Set as StartUp Object» можно задать пакет, который будет запускаться по нажатию на Start (F5).

Какой пакет будет запускаться при нажатии на Start (F5) можно переопределить в свойствах проекта:

По умолчанию будет запускаться пакет открытый в текущий момент, об этом говорит значение StartObjectID равное <Active Package>.

Запустив проект мы должны увидеть следующую картину:

Пакет выполнился без ошибок, о чем говорит зеленый значок и текст в нижней части.

В случае наличия ошибок их можно будет увидеть вкладке Progress.

Нажмем на ссылку «Package execution completed…» или на кнопку «Stop Debugging» расположенную на панели инструментов для остановки выполнения пакета.

Выполним запрос:

USE DemoSSIS_Target
GO

SELECT *
FROM Products

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

Перейдем в область «Control Flow» и создадим еще один компонент «Data Task Flow», который назовем «Load Products From Source B», протянем на него зеленную стрелку от «Load Products From Source A»:

Двойным щелчком зайдем в область «Data Flow» этого элемента и создадим «Source Assistant»:

Дважды щелкнув на этом элементе, настроим его по-другому:

Выберем режим «SQL command» и пропишем следующий запрос:

SELECT
  ID SourceProductID,
  'B' SourceID,
  Title,
  Price
FROM Products

Дальше сразу создадим компонент «Destination Assistant» и протянем на него синюю стрелку от «OLE DB Source»:

Двойным щелчком зайдем в редуктор этого элемента и настроим его:

Запустим проект на выполнение и убедимся, что данные с двух источников попали в таблицу в базе Target:

USE DemoSSIS_Target
GO

SELECT *
FROM Products

Дополнительно в контекстном меню стрелки можно активизировать «Data Viewer»:

Теперь при запуске пакета на выполнение в этой точке будет сделана остановка и нам будут показаны данные этого потока:

Для продолжения выполнения пакета нужно нажать на кнопку со стрелкой или просто закрыть окно просмотра данных.

Для отключения этой функции в контекстном меню стрелки выбираем «Disable Date Viewer»:

Для первой части думаю этого будет достаточно.

Создадим сборку:

В результате мы получим файл «C:\SSIS\SSISDemoProject\bin\Development\SSISDemoProject.ispac».

Рассмотрим каким образом делается развертывание этого проекта на SQL Server.

Развертывание SSIS

Все последующие действия будем делать в SSMS.

Создание каталога SSISDB:

Здесь вводим любой пароль.

Теперь создаем папку, в которой будет располагаться наш проект:

Разворачиваем сам проект:

В завершении мы должны увидеть следующую картину:

После обновления (F5) мы увидим наш проект:

Создание задачи в SQL Server Agent

Создадим задачу в SQL Agent, для выполнения пакета по расписанию:

Создаем новый шаг:

На вкладке «Configuration → Parameters» можно задать параметры пакета (их рассмотрим в следующих частях).

На вкладке «Configuration → Connection Manager» мы можем изменить параметры подключения для каждого соединения, которое мы создали в проекте:

На закладке Advanced можно изменить логику, которая будет использоваться при успешном или неуспешном завершении шага:

Шаг создан:

Осталось создать расписание для данной задачи:

Расписание можно задать разнообразным образом. Думаю, здесь все должно быть интуитивно понятно:

Все, задача создана.

Делаем тестовый запуск:

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

Результат выполнения задачи можно увидеть в следующем журнале:

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

Более подробный отчет о выполнении пакета можно посмотреть при помощи следующего отчета:

Заключение по первой части

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

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

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

Надеюсь данный материал поможет многим сделать первые шаги в изучении данного инструмента и в дальнейшем применить свои знания в работе.

Хороших выходных! Удачи!

→ Часть 2

Службы SQL Server Integration Services — SQL Server Integration Services (SSIS)



  • Чтение занимает 2 мин

В этой статье

Применимо к: SQL Server (все поддерживаемые версии) Azure-SSIS Integration Runtime в Фабрике данных Azure

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

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

Службы Integration Services содержат в себе широкий набор встроенных задач и преобразований, а также графические средства для создания пакетов. Кроме того, Службы Integration Services включают базу данных каталога для хранения, выполнения и администрирования пакетов.

Вы можете использовать графические средства, входящие в Службы Integration Services, для создания решений без необходимости писать код. Службы Integration Services также позволяют вам настроить подробную объектную модель для создания пакетов программным способом, а также написания пользовательских задач и других объектов пакета.

Получение MSSQL Integration Services

См. дополнительные сведения об установке MSSQL Integration Services с помощью SQL Server, а также о дополнительных скачиваемых компонентах, которые могут вам понадобиться.

Ресурсы

Служба Microsoft SQL Server 2008 R2 Integration Services SSIS

1 Общие сведения о службе Integration Services

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

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

Службы Integration Services заменили службы DTS, которые были первоначально представлены как компоненты SQL Server 7.0.

Пакет – это организованная коллекция подключений, элементов потока управления, элементов потока данных, обработчиков событий, переменных и конфигураций, которая собирается либо с помощью графических средств конструирования, предоставляемых SQL Server 2008 R2 Integration Services (SSIS), либо программно. Затем собранный пакет сохраняется в SQL Server 2008 R2, в хранилище пакетов SSIS или в файловой системе. Пакет – это рабочий блок, который можно получить, выполнить и сохранить.

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

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

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

2 Создание пакета выполнения задачи из sql-файла

В среде Business Intelligence Development Studio надо создать новый пустой пакет с использованием шаблона пакета, включающего в себя Integration Services пользовательского пакета, назначенного шаблоном, или скопировать существующий пакет. Вызов среды осуществляется из меню «Пуск Программы MS SQL Server 2008 R2 SQL Server Business Intelligence Development Studio». Тип проекта Integration Services Project (рис. 2.1).

Стратегия развертывания SSIS для SQL Server 2012 | Windows IT Pro/RE

SQL Server Integration Services (SSIS) – решение для извлечения, преобразования и загрузки данных, наиболее эффективное для многих организаций. Хотя это замечательное средство для решения таких задач, как перемещение данных между различными источниками и применения преобразований, существуют некоторые трудности, связанные с развертыванием и настройкой пакетов. Поскольку пакеты SSIS на самом деле представляют собой файлы XML, многие организации избрали подход к развертыванию по принципу «копируй и настраивай». В этом случае пакеты, как правило, копируются вручную или с помощью сценариев в общие места хранения или базу данных msdb, где они выполняются. Информация о конфигурации затем хранится в файлах настройки или специальных таблицах базы данных, предназначенных исключительно для хранения значений настроек SSIS.

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

Пытаясь разрешить подобные проблемы, SSIS 2012 предусматривает новые свойства развертывания пакетов, включая новый каталог и базу данных SSISDB. SSIS 2012 хранит все пакеты, проекты, параметры, разрешения, свойства сервера и историю операций в базе данных SSISDB, объединяя все «подвижные элементы» для любого развертывания SSIS. База данных SSISDB доступна в SQL Server Management Studio (SSMS), если развернуть узел Databases в панели Object Explorer.

Каталог SSISDB дает список проектов, папок, пакетов и информацию о настройках на одном экране. Он находится в отдельной папке под названием Integration Services Catalogs, которая доступна в Object Explorer в SSMS.

Я покажу, как создать и установить каталог SSISDB и базу данных, но сперва вам необходимо узнать о других важных изменениях в SSIS. Начиная с SQL Server 2012, служба SSIS доступна как сервер Integration Services, который является экземпляром механизма базы данных для управления хранилищем пакетов, выполнением и т.д. Служба Integration Services доступна только для обратной совместимости. Рекомендуется использовать сервер Integration Services, чтобы управлять выполнением пакета.

Создание каталога и базы данных SSISDB

Первая задача – создать каталог и базу данных SSISDB. Для начала откройте SSMS и укажите путь к папке Integration Services Catalogs в панели инструментов Object Explorer. Если папка Integration Services Catalogs пуста, потребуется создать каталог и базу данных SSISDB. Для этого правой кнопкой мыши щелкните на папке Integration Services Catalogs и выберите Create Catalog.

Появится диалоговое окно Create Catalog, показывающее, что название базы данных будет SSISDB. Вы можете его изменить. В диалоговом окне укажите пароль, который будет применяться механизмом шифрования для этой базы данных, и выберите флажок Enable CLR Integration. По желанию, вы также можете выбрать Enable automatic execution («Разрешить автоматическое выполнение») хранимых процедур Integration Services в SQL at Server startup check box. Щелкнув OK, вы увидите, что каталог SSISDB теперь доступен в папке Integration Services Catalogs в панели Object Explorer.

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

 

Рисунок. Структура каталога SSISDB

Для наглядности давайте создадим папку. Правой кнопкой мыши щелкните SSISDB и выберите Create Folder. Назовите папку MyTest и добавьте значимое описание, если считаете нужным.

Создание пакета и проекта SSIS

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

  1. Запустите SQL Server Data Tools. Это инструмент, заменяющий Business Intelligence Development Studio (BIDS) в SQL Server 2012. Из меню File выберите New и затем Project. Выделите Integration Services Project и назовите его Test_Project. Так вы создадите новый проект SSIS, уже содержащий пакет под названием Package.dtsx.
  2. Если пакет Package.dtsx еще не открыт, откройте его. Найдите область Connection Managers внизу дизайнера пакетов. Правой кнопкой мыши щелкните на области Connection Managers и выберите New OLE DB Connection. В появившемся окне нажмите New, чтобы запустить диалоговое окно Connection Manager.
  3. В окне Connection Manager, показанном на экране 1, введите имя своего экземпляра базы данных SQL Server в поле Server name. Выберите способ подключения пакета к экземпляру базы данных SQL Server. Вы можете использовать Windows Authentication или SQL Server Authentication, в этом случае необходимо предоставить информацию о регистрации SQL Server. В разделе Connect to a database выберите главную базу данных (master database). Щелкните Test Connection, чтобы убедиться, что все настроено правильно.
  4. После того, как соединение создано, вернитесь к области Connection Managers в SQL Server Data Tools. Правой кнопкой мыши щелкните на только что созданном соединении, выберите Rename и введите новое имя MyTest_CM.

 

Экран 1. Указание информации о соединении

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

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

1. Откройте инструмент SSIS в SQL Server Data Tools, выбрав SSIS, затем щелкните на SSIS Toolbox.

2. В SSIS Toolbox найдите значок Data Flow Task и перетащите его в область конструктора пакетов. Откройте задачу Data Flow, дважды щелкнув по значку, чтобы открылось представление Data Flow.

3. Перетащите значок OLE DB Source из панели инструментов SSIS Toolbox в область конструктора пакетов. Правой кнопкой мыши щелкните на OLE DB Source и выберите пункт меню Edit.

4. В OLE DB Source Editor выберите MyTest_CM в раскрывающемся списке OLE DB connection manager. В списке режима доступа к данным Data access mode выберите SQL command. В поле SQL command text введите запрос

SELECT table_name FROM information_schema.tables

Этот запрос возвращает список всех таблиц в главной базе данных. Нажмите Preview, чтобы удостовериться, что запрос работает. Если это так, нажмите OK, чтобы закрыть OLE DB Source Editor.

5. Перетащите значок OLE DB Destination из SSIS Toolbox в область конструктора пакетов. Подключите вывод данных компонента OLE DB Source к компоненту OLE DB Destination.

6. Дважды щелкните на компоненте OLE DB Destination и выберите Edit. В OLE DB Destination Editor выберите MyTest_CM в раскрывающемся списке OLE DB connection manager. В списке Data access mode выберите Table or view — fast load. Нажмите кнопку New рядом с раскрывающимся списком Name of the table or the view. Появится диалоговое окно Create Table. Оно будет содержать код для создания таблицы OLE DB Destination на вашем экземпляре SQL Server. Нажмите OK.

7. Щелкните OK, чтобы закрыть OLE DB Source Editor и создайте таблицу в основной базе данных. На экране 2 показано, как выглядит завершенная задача Data Flow.

 

Экран 2. Просмотр созданной задачи Data Flow

8. Убедитесь, что таблица OLE DB Destination создана, выполнив следующий запрос в SSMS:

SELECT * FROM [OLE DB Destination]

Создание параметров

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

SSIS позволяет создавать параметры, с помощью которых можно задать временные значения рабочего процесса. Создавать параметры можно на уровне пакета или проекта в SSIS. Типичный случай, когда вы хотите использовать общую переменную в многочисленных запросах в проекте. Например, вы можете создать параметр для переменной и значения конечной даты последнего квартала. Когда меняется квартал, вы обновляете значение переменной; все запросы, которые должны применять этот параметр, начнут использовать новую дату. Другой пример – когда вы хотите сделать строки подключения базы данных настраиваемыми. В этом случае вам нужно связать значения строки подключения с параметрами, которые вы можете изменять в зависимости от того, в какой среде находитесь – разработки, тестовой или операционной.

Чтобы узнать, как это работает, давайте создадим параметр для менеджера соединений MyTest_CM в тестовом пакете. В области Connection Managers в SQL Server Data Tools правой кнопкой мыши щелкните на менеджере соединений MyTest_CM и выберите Parameterize. Появится диалоговое окно, показанное на экране 3.

 

Экран 3. Создание параметра в свойстве ConnectionString в Connection Manager

Давайте рассмотрим различные параметры в диалоговом окне.

  • Property. Вы можете использовать эту область, чтобы выбрать свойство менеджера подключений, которое хотите параметризовать. Для этого выберите строку ConnectionString, чтобы заменить строку подключения менеджера соединений любым значением, заданным в параметре. Помимо строк соединений, вы можете параметризовать и другие свойства, такие как имя сервера, имя пользователя и пароль. Обратите внимание, что свойства, которые могут быть параметризованы, будут изменяться в зависимости от компонента SSIS. Так, свойства, которые вы можете параметризовать для менеджера подключений, будут отличаться от свойств для задачи Data Flow.
  • Do not use parameter. Если вы выберете этот вариант, менеджер подключений будет игнорировать любые параметры и вместо них использовать значения, которые были заданы, когда был создан пакет.
  • Use existing parameter. Если вы выберете этот вариант, менеджер подключений будет использовать указанные существующие параметры.
  • Create new parameter. Этот вариант понадобится, если вы захотите создать новый параметр. Вы можете задать имя параметра и диапазон. Хотя это и необязательно, вы можете уточнить описание и значение. В данном случае имя параметра – MyTest_CM_ConnectionString, поскольку менеджер соединения называется MyTest_CM. Поле Value будет автоматически заполнено по умолчанию строкой подключения для MyTest_CM, ее можно изменить позже. Вы можете добавить параметр к пакету или проекту, в зависимости от выбранной области. В основном, если вы устанавливаете опцию Scope к Project, параметр будет доступен во всем проекте, так что другие пакеты в проекте тоже могут его использовать. Если вы устанавливаете переключатель Scope в Package, параметр будет доступен только внутри пакета и не на уровне проекта. В данном случае установите переключатель Scope в режим Project.
  • Sensitive. Если вы установите этот флажок, важные значения параметра будут шифроваться в каталоге и выводиться как значение NULL в SSMS или результатах запроса T-SQL. Используйте эту функцию, параметризируя пароль. В данном случае флажок Sensitive устанавливать не нужно.
  • Required. Если вы установите этот флажок, значение параметра должно быть задано прежде, чем пакет будет выполнен. В нашем случае флажок Required устанавливать не нужно.

После внесения информации в диалоговом окне Parameterize, нажмите OK. Проверьте файл Project.params в своем решении, чтобы убедиться, что ваши параметры успешно созданы, как показано на экране 4.

 

Экран 4. Проверка созданных параметров в файле Project.params

Файл Project.params будет содержать все параметры уровня проекта. Для просмотра содержимого данного файла XML правой кнопкой мыши щелкните на нем в панели Solution Explorer и выберите View Code.

На этой стадии вы можете нажать F5, чтобы построить и протестировать пакет. Затем проверьте таблицу OLE DB Destination в своей главной базе данных, чтобы убедиться в получении ожидаемых результатов.

Развертывание проекта

SSIS 2012 предусматривает два варианта развертывания пакета: режим развертывания пакета для отдельных пакетов и режим развертывания проекта для того, чтобы развернуть весь проект целиком. Для пакетов, созданных с помощью SQL Server Data Tools, установка по умолчанию – режим развертывания проекта, который вам и предстоит использовать. Возможно развертывание пакета из SQL Server Data Tools или из командной строки. Обратите внимание, что SSIS 2012 не поддерживает MSBuild, поэтому вы не можете его применять для построения или управления своими проектами SSIS 2012.

Развертывание из SQL Server Data Tools. В панели Solution Explorer правой кнопкой мыши щелкните на своем проекте и выберите Deploy, чтобы вызвать мастер Integration Services Deployment Wizard. Нажмите Next на странице Introduction. На странице Select Destination введите имя экземпляра SQL Server в текстовом окне Server name. В текстовом окне Path укажите место, где вы хотите развернуть пакет. В данном примере вы хотите развернуть его в папке MyTest, созданной в разделе «Создание каталога и базы данных SSISDB». Как показано на экране 5, вы можете указать имя проекта (Test_Project) как часть пути. Нажмите Next.

 

Экран 5. Указание места назначения для проекта SSIS

На странице Review просмотрите выбранные элементы и нажмите Deploy. После того, как мастер завершит развертывание, вернитесь к Object Explorer в SSMS и удостоверьтесь, что ваш пакет развернут в папке MyTest в каталоге SSISDB.

Развертывание из командной строки. В большинстве крупных организаций развертывание выполняет администратор базы данных или системный администратор. В подобных средах принято использовать сценарии развертывания, насколько это возможно, для того, чтобы сделать развертывание более управляемым, когда количество пакетов SSIS увеличивается. В SQL Server 2012 возможно развертывание пакетов SSIS с помощью инструмента командной строки ISDeploymentWizard.exe. Этот инструмент работает с файлом. ispac, который создается в каталоге проекта BIN, когда вы разрабатываете проект в SQL Server Data Tools. В файле. ispac проекта обычно содержится следующее:

  • манифест проекта;
  • все пакеты, принадлежащие проекту;
  • файл параметров Project.params.

Если вы хотите просмотреть содержимое файла, вы можете изменить расширение с .ispac на .zip и после этого открыть его в Windows Explorer.

Чтобы развернуть проект Test_Project из командной строки, в первую очередь необходимо скопировать файл. ispac в общую папку. Затем в окне командной строки Windows пройдите к папке, содержащей файл. ispac и выполните команду ISDeploymentWizard:

«%ProgramFiles%\Microsoft SQL Server\110\DTS\Binn
\isdeploymentwizard.exe» /S /ST:File
/SP:Test_Project.ispac /DS:
/DP:/SSISDB/MyTest/Test_Project

В приведенной таблице описан каждый параметр команды ISDeploymentWizard.

 

После ввода команды проект (наряду с содержащимися в нем пакетами) будет развернут на вашем экземпляре SQL Server. По желанию, вы можете ввести эту команду в пакетный файл и запустить пакетный файл для развертывания пакетов в различных папках в SSISDB на данном экземпляре или на различных экземплярах.

Создание переменных окружения и среды

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

Важно понимать различие между параметрами и переменными в данном контексте. Вы устанавливаете параметры на уровне пакета или проекта, когда создаете пакет или проект в SQL Server Data Tools. Переменные являются частью среды в SSISDB. Параметры находятся в вашем проекте SQL Server Data Tools, тогда как переменные находятся в SSISDB.

Давайте создадим среду для тестового проекта. В панели Object Explorer в SSMS пройдите к папке MyTest каталога SSISDB и раскройте ее. Правой кнопкой мыши щелкните на папке Environments и выберите Create Environment, как показано на экране 6. Назовите среду MyTest.

 

Экран 6. Создание окружения

Теперь, когда окружение создано, вы создаете переменные среды. Для этого дважды щелкните на окружении MyTest, чтобы раскрыть диалоговое окно Environment Properties. На панели слева выберите страницу Variables. Создайте новую переменную под названием Environment_Dev с типом данных String, как показано на экране 7. Оставьте поле Description пустым. В поле Value введите строку подключения для экземпляра разработчика SQL Server.

 

Экран 7. Создание переменной окружения

На экране 7 обратите внимание на ссылку на страницу Permissions. С ее помощью вы можете предоставлять права Read или Modify учетным записям или ролям SQL Server в окружении. Таким образом, вы можете защитить строки подключения, пароли и другие элементы в своем окружении. Для этого вам не требуется устанавливать других прав.

Сопоставление параметров проекта с переменными среды

После создания среды и переменных среды в ней вы можете сопоставить параметры проекта с переменными. Таким образом, при выполнении в SSISDB пакет использует переменную для присвоения значений параметрам пакета. Если сопоставление уже выполнено, изменение настроек проекта (например, добавление ссылок во всех пакетах проекта на другую базу данных) потребует всего лишь изменения значения переменной, без повторного развертывания пакетов целиком.

Далее показано, как сопоставить параметры проекта с переменными среды для проекта MyTest.

  1. В панели Object Explorer в SSMS правой кнопкой мыши щелкните на проекте MyTest и выберите Configure, чтобы открыть окно Project Configuration.
  2. На панели слева выберите References. На странице References щелкните Add. В появившемся диалоговом окне Browse Environments выберите окружение MyTest, как показано на экране 8. Нажмите OK.
  3. На панели слева выберите Parameters. На странице Parameters обратите внимание, что появился параметр пакета MyTest_CM_ConnectionString. Нажмите на знак многоточия (…) рядом с параметром, чтобы вызвать диалоговое окно Set Parameter Value.
  4. В разделе Value диалогового окна Set Parameter Value выберите вариант Use environment variable и выберите Environment_Dev из раскрывающегося списка доступных переменных окружения, как показано на экране 9. Нажмите OK.

 

Экран 8. Выбор окружения при сопоставлении параметра проекта переменной окружения

 

Экран 9. Выбор переменной среды для сопоставления

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

Несколько советов

Я показал вам шаги, которые необходимо выполнить, реализуя решение SSISDB. Вот еще несколько советов:

  • Используйте параметры уровня проекта для всех строк подключения и других объектов конфигурации в вашем проекте.
  • Развертывайте проект SSIS в отдельной папке каждого экземпляра SSISDB, затем создавайте раздельные окружения (и переменные в этих окружениях). С данной установкой вы можете сопоставить параметры проекта с различными переменными окружения, чтобы настроить выполнение пакета. Защитите свои окружения, предоставив права Modify исключительно администраторам базы данных (DBA) или системным администраторам. Предоставьте разработчикам права Read.
  • Убедитесь, что вы сопоставили переменные среды с параметрами проекта. Если вы забудете это сделать, ваши пакеты будут выполняться с теми значениями, которые были определены при развертывании пакета.

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

Таблица. Параметры команды ISDeploymentWizard

Опция Описание

«%ProgramFiles%\Microsoft SQL Server\110\DTS\Binn\isdeploymentwizard.exe» Определяет путь к ISDeploymentWizard.exe. Если вы установили SQL Server в местоположении не по умолчанию, соответственно, вам нужно изменить путь

/S Указывает на автоматическую установку (т.е. без вывода диалогового окна)

/ST:File Указывает, что источник пакета развертывание проекта — файл. Источником также может быть экземпляр SQL Server, и в этом случае вы используете /ST:Server

/SP:Test_Project.ispac Определяет файл развертывания. ispac.

/DS: Определяет сервер назначения, где развертываете проект. Вам нужно изменить на имя экземпляра SQL Server

/DP:/SSISDB/MyTest/Test_Project Определяет путь назначения, где развертывается проект

Поделитесь материалом с коллегами и друзьями

SQL Server Integration Services (SSIS) для начинающих – часть 1

SSIS – это инструмент, который позволяет в удобном виде реализовать интеграцию, т.е. реализовать процесс переноса данных из одного источника в другой. Этот процесс иногда называют ETL (от англ. Extract, Transform, Load – дословно «извлечение, преобразование, загрузка»).

Думаю, данный практический курс будет полезен тем, кто хочет изучить SSIS и не знает с чего начать. Здесь в режиме Step By Step мы начнем с самого начала, т.е. установки всего необходимого.

Дальше будет очень много картинок!

Необходимые инструменты для изучения SSIS

В данной статье SSIS будет рассматриваться на примере SQL Server 2014 Developer Edition. Службы Integration Services доступны в SQL Server 2014 начиная с редакции Standard.

Дополнительно необходимо будет скачать и установить инструмент разработчика SQL Server Data Tools (SSDT).

SSDT – это расширение для Visual Studio, которое позволит создавать проекты необходимого нам типа.

Для облегчения процесса установки, я воспользуюсь SSDT для Visual Studio 2012 (VS2012), его можно скачать по ссылке (файл «SSDTBI_VS2012_x86_ENU.exe»):
www.microsoft.com/en-US/download/details.aspx?id=36843

По описанию, данная версия SSDT поддерживает следующие версии SQL Server: SQL Server 2014, SQL Server 2012, SQL Server 2008 и 2008 R2.

Если на вашем компьютере не установлен VS данной версии, то установщик SSDT установит минимальную версию оболочки, которая позволит создавать проекты нужного нам типа.

Установка SQL Server и SSDT

Первым делом установим SQL Server со всеми необходимыми компонентами.

Я все устанавливал на чистую Windows 7 SP 1 (x64), ничего дополнительного кроме указанного ниже устанавливать не придется.

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

Запускаем установочный файл SQL Server 2014:

Для работы SSIS достаточно будет выбрать следующие компоненты:

Т.к. мне в дальнейшем понадобится Analysis Services (SSAS), то я отметил и его, если он вам не нужен вы можете не выбирать данный компонент.

У меня нет других установленных SQL Server, и я сделаю этот экземпляр используемым по умолчанию:

Сделаю, чтобы SQL Agent запускался автоматически:

При необходимости можно изменить Collation, который будет использоваться по умолчанию:

Установлю смешанный режим аутентификации, указав свой пароль для пользователя sa:

Т.к. я еще выбрал Analysis Services, то делаю настройки для него:

Нажимая Next и Install запускаем установку SQL Server и его компонент.

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

Следующим шагом установим SSDT – это расширение для Visual Studio, которое даст нам возможность создавать проекты SSIS. Установщик SSDT ставит минимальную версию оболочки VS, поэтому предварительно устанавливать VS отдельно нет надобности.

Запускаем «SSDTBI_VS2012_x86_ENU.exe», и добравшись до следующего шага выбираем следующий пункт:

Нажимая Next запускаем установку.

После завершения установки на всякий случай перезагружаем компьютер.

Это все, что нам понадобится для изучения SSIS.

Создание демонстрационных баз данных

Запустим SQL Server Management Studio (SSMS) и при помощи скрипта создадим 3 базы данных – первые две (DemoSSIS_SourceA и DemoSSIS_SourceB) будут выступать в роли источников данных, а третья (DemoSSIS_Target) в роли получателя данных:

-- первая БД выступающая в роли источника данных
CREATE DATABASE DemoSSIS_SourceA
GO

ALTER DATABASE DemoSSIS_SourceA SET RECOVERY SIMPLE 
GO

-- вторая БД выступающая в роли источника данных
CREATE DATABASE DemoSSIS_SourceB
GO

ALTER DATABASE DemoSSIS_SourceB SET RECOVERY SIMPLE 
GO

-- БД выступающая в роли получателя данных
CREATE DATABASE DemoSSIS_Target
GO

ALTER DATABASE DemoSSIS_Target SET RECOVERY SIMPLE 
GO

В базах источниках создадим тестовые таблицы и наполним их тестовыми данными:

USE DemoSSIS_SourceA
GO

-- продукты из источника A
CREATE TABLE Products(
  ID int NOT NULL IDENTITY,
  Title nvarchar(50) NOT NULL,
  Price money,
CONSTRAINT PK_Products PRIMARY KEY(ID)
)
GO

-- наполняем таблицу тестовыми данными
SET IDENTITY_INSERT Products ON

INSERT Products(ID,Title,Price)VALUES
(1,N'Клей',20),
(2,N'Корректор',NULL),
(3,N'Скотч',100),
(4,N'Стикеры',80),
(5,N'Скрепки',25)

SET IDENTITY_INSERT Products OFF
GO
USE DemoSSIS_SourceB
GO

-- продукты из источника B
CREATE TABLE Products(
  ID int NOT NULL IDENTITY,
  Title nvarchar(50) NOT NULL,
  Price money,
CONSTRAINT PK_Products PRIMARY KEY(ID)
)
GO

-- наполняем таблицу тестовыми данными
SET IDENTITY_INSERT Products ON

INSERT Products(ID,Title,Price)VALUES
(1,N'Ножницы',200),
(2,N'Нож канцелярский',70),
(3,N'Дырокол',220),
(4,N'Степлер',150),
(5,N'Шариковая ручка',15)

SET IDENTITY_INSERT Products OFF
GO

Создадим таблицу в принимающей базе:

USE DemoSSIS_Target
GO

-- принимающая таблица
CREATE TABLE Products(
  ID int NOT NULL IDENTITY,
  Title nvarchar(50) NOT NULL,
  Price money,
  SourceID char(1) NOT NULL, -- используется для идентификации источника
  SourceProductID int NOT NULL, -- ID в источнике
CONSTRAINT PK_Products PRIMARY KEY(ID),
CONSTRAINT UK_Products UNIQUE(SourceID,SourceProductID),
CONSTRAINT CK_Products_SourceID CHECK(SourceID IN('A','B'))
)
GO

Создание SSIS проекта

Запустим Visual Studio 2012 и выберем один из видов предлагаемой нам настройки среды, так здесь же я откажусь от локальной документации:

Создадим новый проект (File -> New -> Project…):

Для последующего облегчения развертывания зайдем в свойства проекта и изменим опцию ProtectionLevel на DontSaveSensitive:

То же самое сделаем в свойствах пакета, который создался по умолчанию:

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

Создадим соединения:

Заполняем параметры соединение с БД:

Боевые параметры соединения в дальнейшем можно будет настроить при создании задачи SQL Server Agent.

Для удобства я переименую название соединения на SourceA:

Таким же образом создадим и переименуем соединения для баз DemoSSIS_SourceB и DemoSSIS_Target:

Переименуем пакет, созданный по умолчанию, в «LoadProducts.dtsx»:

Сначала напишем простую логику, которая будет полностью очищать таблицу Products в базе DemoSSIS_Target и снова загружать в нее данные из двух баз данных DemoSSIS_SourceA и DemoSSIS_SourceB.

Для очистки воспользуемся компонентом «Execute SQL Task», который мы при помощи мыши создадим в области «Control Flow»:

Для наглядности можно переименовать название компонент. Зададим ему имя «Delete All Products From Target»:

Для этой цели используется свойство Name.

Дважды щелкнем на этом элементе и пропишем следующие свойства:

Т.к. TSQL команда «TRUNCATE TABLE Products» ничего не возвращает оставим свойства ResultSet равным None.

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

Теперь скинем в область «Control Flow» компонент «Data Flow Task» и переименуем его в «Load Products From Source A», а также протянем к этому компоненту зеленную стрелку от «Delete All Products From Target»:

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

Щелкнув дважды на «Load Products From Source A» мы попадаем в область «Data Flow» этого элемента.

Data Flow Task – это сложный компонент, который имеет свою область, в которой создаются вложенные элементы для работы с потоком данных.

Скинем в эту область компонент «Source Assistant»:

Этот компонент отвечает за получение данных из источника. Дважды щелкнув по нему, мы сможем настроить его:

Пока воспользуемся режимом «Data access mode» равным «Table or view». Это приведет к получению всех строк из таблицы Products. Посмотреть данные можно нажав на «Preview…».

На закладке Columns мы можем выбрать только необходимые нам колонки и при необходимости переименовать их прописав новое имя в колонке «Output Columns»:

Для получателя нужна еще одна дополнительная колонка SourceID, добавим ее к выходному набору при помощи компонента «Derived Column», который переименуем в «Add SourceID», так же протянем синюю стрелку к данному элементу от «OLE DB Source»:

Дважды щелкнем по элементу «Add SourceID» и пропишем значение «A» в виде константы:

Здесь я воспользовался функцией преобразования типа (DT_STR,1,1251) для того чтобы превратить Unicode строку в ANSI.

Теперь создадим компонент «Destination Assistant»:

Направим в него поток от «Add SourceID»:

Дважды щелкнем по «OLE DB Destination» и произведем настройки:

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

«Keep identity» используется в случае если в принимающей таблице есть поле с флагом IDENTITY и мы хотим, чтобы значения в него тоже записывались из источника (это аналогично включению опции SET IDENTITY_INSERT Products ON).

Перейдя на закладку Mappings осуществим привязку полей источника с полями получателя:

Так как у нас поля источника и приемника именуются одинаково, то привязка осуществилась автоматически.

Можем протестировать работу пакета и убедиться, что данные залились в таблицу Products базы DemoSSIS_Target.

Запускаем пакет на выполнение из Visual Studio нажав Start или клавишу F5:

Так же пакет можно выполнить, воспользовавшись командой из контекстного меню:

При помощи «Set as StartUp Object» можно задать пакет, который будет запускаться по нажатию на Start (F5).

Какой пакет будет запускаться при нажатии на Start (F5) можно переопределить в свойствах проекта:

По умолчанию будет запускаться пакет открытый в текущий момент, об этом говорит значение StartObjectID равное <Active Package>.

Запустив проект мы должны увидеть следующую картину:

Пакет выполнился без ошибок, о чем говорит зеленый значок и текст в нижней части.

В случае наличия ошибок их можно будет увидеть вкладке Progress.

Нажмем на ссылку «Package execution completed…» или на кнопку «Stop Debugging» расположенную на панели инструментов для остановки выполнения пакета.

Выполним запрос:

USE DemoSSIS_Target
GO

SELECT *
FROM Products

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

Перейдем в область «Control Flow» и создадим еще один компонент «Data Task Flow», который назовем «Load Products From Source B», протянем на него зеленную стрелку от «Load Products From Source A»:

Двойным щелчком зайдем в область «Data Flow» этого элемента и создадим «Source Assistant»:

Дважды щелкнув на этом элементе, настроим его по-другому:

Выберем режим «SQL command» и пропишем следующий запрос:

SELECT
  ID SourceProductID,
  'B' SourceID,
  Title,
  Price
FROM Products

Дальше сразу создадим компонент «Destination Assistant» и протянем на него синюю стрелку от «OLE DB Source»:

Двойным щелчком зайдем в редуктор этого элемента и настроим его:

Запустим проект на выполнение и убедимся, что данные с двух источников попали в таблицу в базе Target:

USE DemoSSIS_Target
GO

SELECT *
FROM Products

Дополнительно в контекстном меню стрелки можно активизировать «Data Viewer»:

Теперь при запуске пакета на выполнение в этой точке будет сделана остановка и нам будут показаны данные этого потока:

Для продолжения выполнения пакета нужно нажать на кнопку со стрелкой или просто закрыть окно просмотра данных.

Для отключения этой функции в контекстном меню стрелки выбираем «Disable Date Viewer»:

Для первой части думаю этого будет достаточно.

Создадим сборку:

В результате мы получим файл «C:SSISSSISDemoProjectbinDevelopmentSSISDemoProject.ispac».

Рассмотрим каким образом делается развертывание этого проекта на SQL Server.

Развертывание SSIS

Все последующие действия будем делать в SSMS.

Создание каталога SSISDB:

Здесь вводим любой пароль.

Теперь создаем папку, в которой будет располагаться наш проект:

Разворачиваем сам проект:

В завершении мы должны увидеть следующую картину:

После обновления (F5) мы увидим наш проект:

Создание задачи в SQL Server Agent

Создадим задачу в SQL Agent, для выполнения пакета по расписанию:

Создаем новый шаг:

На вкладке «Configuration -> Parameters» можно задать параметры пакета (их рассмотрим в следующих частях).

На вкладке «Configuration -> Connection Manager» мы можем изменить параметры подключения для каждого соединения, которое мы создали в проекте:

На закладке Advanced можно изменить логику, которая будет использоваться при успешном или неуспешном завершении шага:

Шаг создан:

Осталось создать расписание для данной задачи:

Расписание можно задать разнообразным образом. Думаю, здесь все должно быть интуитивно понятно:

Все, задача создана.

Делаем тестовый запуск:

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

Результат выполнения задачи можно увидеть в следующем журнале:

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

Более подробный отчет о выполнении пакета можно посмотреть при помощи следующего отчета:

Заключение по первой части

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

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

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

Надеюсь данный материал поможет многим сделать первые шаги в изучении данного инструмента и в дальнейшем применить свои знания в работе.

Хороших выходных! Удачи!

Продолжение следует…

Автор: Сергей Меньшов

Источник

Что такое MsDtsSrvr.exe?

РЕКОМЕНДУЕМ: Нажмите здесь, чтобы исправить ошибки Windows и оптимизировать производительность системы

Процесс MsDtsSrvr.exe в диспетчере задач Windows

Процесс, известный как служба SQL Server Integration Services, принадлежит программному обеспечению Microsoft SQL Server (версия 2008, 2005 Tools) или Microsoft SQL Server VSS Writer или собственному клиенту Microsoft SQL Server или собственному клиенту Microsoft SQL Server или SQL Server (службы интеграции Integration Services версии 2012) от Microsoft. (www.microsoft.com).

Описание: MsDtsSrvr.exe не является необходимым для ОС Windows и вызывает относительно мало проблем. MsDtsSrvr.exe находится в подпапках «C: \ Program Files (x86)» — обычно это C: \ Program Files (x86) \ Microsoft SQL Server \ 90 \ DTS \ Binn \ или C: \ Program Files \ Microsoft SQL Server \ 100 \ DTS \ Binn \ . Известные размеры файлов в Windows 10/8/7 / XP составляют 218 200 байт (12% всех случаев), 199 520 байт и еще 6 вариантов.

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

Удаление этого варианта. У вас есть возможность безопасно удалить программу, используя программу удаления Microsoft SQL Server Native или Microsoft SQL Server Native Client (Панель управления ⇒ Удаление программы).

Важно: некоторые вредоносные программы маскируют себя как MsDtsSrvr.exe, особенно если они находятся в папке C: \ Windows или C: \ Windows \ System32. Таким образом, вы должны проверить файл MsDtsSrvr.exe на вашем ПК, чтобы убедиться, что это угроза. Мы рекомендуем Security Task Manager для проверки безопасности вашего компьютера. Это был один из лучших вариантов загрузки The Washington Post и PC World .

Аккуратный и опрятный компьютер — это главное требование для избежания проблем с MsDtsSrvr. Это означает запуск сканирования на наличие вредоносных программ, очистку жесткого диска с использованием 1 cleanmgr и 2 sfc / scannow, 3 удаления ненужных программ, проверку наличия программ автозапуска (с использованием 4 msconfig) и включение автоматического обновления Windows 5. Всегда не забывайте выполнять периодическое резервное копирование или, по крайней мере, устанавливать точки восстановления.

Если вы столкнулись с реальной проблемой, попробуйте вспомнить последнее, что вы сделали, или последнее, что вы установили до того, как проблема появилась впервые. Используйте команду 6 resmon, чтобы определить процессы, которые вызывают вашу проблему. Даже для серьезных проблем, вместо переустановки Windows, лучше восстановить вашу установку или, для Windows 8 и более поздних версий, выполнить команду 7 DISM.exe / Online / Cleanup-image / Restorehealth. Это позволяет восстанавливать операционную систему без потери данных.

Security Task Manager показывает все запущенные сервисы Windows, включая внедренные скрытые приложения (например, мониторинг клавиатуры или браузера, авто вход). Уникальный рейтинг риска безопасности указывает на вероятность того, что процесс является потенциальным шпионским ПО, вредоносным ПО или трояном. B Malwarebytes Anti-Malware обнаруживает и удаляет спящие шпионские, рекламные программы, трояны, клавиатурные шпионы, вредоносные программы и трекеры с вашего жесткого диска.

Связанный файл:

iastorf.sys guardit.exe vkontakteservice.exe MsDtsSrvr.exe 5mbrstub.dll tbincr.dll cteshostsvc.exe ts3overlay_hook_win32.dll switcher.exe w32s.386 a2srchas.dll

Пакеты служб интеграции

(SSIS) — службы интеграции SQL Server (SSIS)

  • 8 минут на чтение

В этой статье

Применимо к: SQL Server (все поддерживаемые версии) Среда выполнения интеграции SSIS в фабрике данных Azure

Пакет — это организованный набор соединений, элементов потока управления, элементов потока данных, обработчиков событий, переменных, параметров и конфигураций, которые вы собираете либо с помощью инструментов графического дизайна, которые предоставляет SQL Server Integration Services, либо создаете программно.Затем вы сохраняете готовый пакет на SQL Server, в хранилище пакетов SSIS или в файловой системе или можете развернуть проект ssISnoversion на сервере SSIS. Пакет — это единица работы, которая извлекается, выполняется и сохраняется.

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

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

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

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

Содержимое упаковки

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

Источники и места назначения данных (поток данных). Поток данных состоит из источников и мест назначения, которые извлекают и загружают данные, преобразований, которые изменяют и расширяют данные, и путей, связывающих источники, преобразования и места назначения. Прежде чем вы сможете добавить поток данных в пакет, поток управления пакетом должен включать задачу потока данных. Задача потока данных — это исполняемый файл в пакете SSIS, который создает, упорядочивает и запускает поток данных.Для каждой задачи потока данных в пакете открывается отдельный экземпляр механизма потока данных. Дополнительные сведения см. В разделах Задача потока данных и Поток данных.

Диспетчеры соединений (соединения). Пакет обычно включает по крайней мере один диспетчер соединений. Диспетчер соединений — это связь между пакетом и источником данных, определяющая строку подключения для доступа к данным, которые используются задачами, преобразованиями и обработчиками событий в пакете. Службы Integration Services включают типы соединений для источников данных, таких как текстовые и XML-файлы, реляционные базы данных, а также базы данных и проекты служб Analysis Services.Дополнительные сведения см. В разделе Подключения служб Integration Services (SSIS).

Объекты, расширяющие функциональность пакета

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

Обработчики событий

Обработчик событий — это рабочий процесс, который запускается в ответ на события, вызванные пакетом, задачей или контейнером. Например, вы можете использовать обработчик событий для проверки места на диске при возникновении события перед выполнением или в случае возникновения ошибки и отправки сообщения электронной почты с отчетом о доступном пространстве или информации об ошибке администратору.Обработчик событий построен как пакет с потоком управления и дополнительными потоками данных. Обработчики событий могут быть добавлены к отдельным задачам или контейнерам в пакете. Дополнительные сведения см. В разделе «Обработчики событий служб Integration Services (SSIS)».

Конфигурации

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

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

Журналы и поставщики журналов

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

Переменные

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

Переменные уровня пакета включают предварительно определенные системные переменные, доступные для пакета, и определяемые пользователем переменные с областью действия пакета.Дополнительные сведения см. В разделе Переменные служб Integration Services (SSIS).

Параметры

Параметры

Integration Services позволяют назначать значения свойствам в пакетах во время выполнения пакета. Вы можете создать параметры проекта на уровне проекта и параметры пакета на уровне пакета. Параметры проекта используются для предоставления любых внешних входных данных, получаемых проектом, в один или несколько пакетов в проекте. Параметры пакета позволяют изменять выполнение пакета без необходимости редактировать и повторно развертывать пакет.Дополнительные сведения см. В разделе Параметры служб Integration Services (SSIS).

Свойства пакета, поддерживающие расширенные функции

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

Пакеты перезапуска

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

Защитные пакеты

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

Поддерживающие транзакции

Установка атрибута транзакции в пакете позволяет задачам, контейнерам и соединениям в пакете присоединиться к транзакции. Атрибуты транзакции гарантируют, что пакет и его элементы успешно или не пройдут как единое целое.Пакеты также могут запускать другие пакеты и регистрировать другие пакеты в транзакциях, так что вы можете запускать несколько пакетов как одну единицу работы. Дополнительные сведения см. В разделе Транзакции служб Integration Services.

Пользовательские записи журнала доступны в пакете

В следующей таблице перечислены пользовательские записи журнала для пакетов. Дополнительные сведения см. В разделе Ведение журнала служб Integration Services (SSIS).

Запись в журнале Описание
PackageStart Указывает, что пакет начал выполняться.

Примечание. Эта запись журнала автоматически записывается в журнал. Вы не можете этого исключить.

Конец упаковки Указывает, что пакет завершен.

Примечание. Эта запись журнала автоматически записывается в журнал. Вы не можете этого исключить.

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

Установить свойства пакета

Вы можете установить свойства в окне Properties SQL Server Data Tools (SSDT) ​​или программно.

Для получения информации о том, как установить эти свойства с помощью SQL Server Data Tools (SSDT), см. Установка свойств пакета.

Для получения информации о программной настройке этих свойств см. Пакет.

Повторно использовать существующий пакет в качестве шаблона

Пакеты часто используются в качестве шаблонов для создания пакетов с общими базовыми функциями.Вы создаете базовый пакет, а затем копируете его, или можете указать, что пакет является шаблоном. Например, пакет, который загружает и копирует файлы, а затем извлекает данные, может включать задачи FTP и файловой системы в цикле по каждому элементу, который перечисляет файлы в папке. Он также может включать менеджеры соединений с плоскими файлами для доступа к данным и источники с плоскими файлами для уточнения данных. Место назначения данных меняется, и место назначения добавляется к каждому новому пакету после копирования из базового пакета.Вы также можете создавать пакеты, а затем использовать их в качестве шаблонов для новых пакетов, которые вы добавляете в проект служб Integration Services. Дополнительные сведения см. В разделе Создание пакетов в SQL Server Data Tools.

При первом создании пакета программным способом или с помощью конструктора служб SSIS GUID добавляется к его свойству ID , а имя — к его свойству Name . Если вы создаете новый пакет путем копирования существующего пакета или с помощью пакета шаблона, имя и GUID также копируются.Это может быть проблемой, если вы используете ведение журнала, потому что GUID и имя пакета записываются в журналы, чтобы идентифицировать пакет, к которому принадлежит регистрируемая информация. Поэтому вам следует обновить имя и GUID новых пакетов, чтобы отличить их от пакета, из которого они были скопированы, и друг от друга в данных журнала.

Чтобы изменить GUID пакета, необходимо повторно создать GUID в свойстве ID в окне «Свойства» в SQL Server Data Tools (SSDT).Чтобы изменить имя пакета, вы можете обновить значение свойства Name в окне «Свойства». Вы также можете использовать командную строку dtutil или программно обновить GUID и имя. Дополнительные сведения см. В разделах «Настройка свойств пакета» и «Утилита dtutil».

Integration Services включает два графических инструмента, конструктор SSIS и мастер импорта и экспорта SQL Server, в дополнение к объектной модели SSIS для создания пакетов. Подробнее см. В следующих разделах.

Развертывание проекта SSIS с SSMS — Службы интеграции SQL Server (SSIS)

  • 5 минут на чтение

В этой статье

Применимо к: SQL Server (все поддерживаемые версии) Среда выполнения интеграции SSIS в фабрике данных Azure

Это краткое руководство, как использовать SQL Server Management Studio (SSMS) для подключения к базе данных каталога SSIS, а затем запустить мастер развертывания служб Integration Services для развертывания проекта SSIS в каталоге SSIS.

SQL Server Management Studio — это интегрированная среда для управления любой инфраструктурой SQL, от SQL Server до базы данных SQL. Дополнительные сведения о SSMS см. В разделе SQL Server Management Studio (SSMS).

Предварительные требования

Перед тем как начать, убедитесь, что у вас установлена ​​последняя версия SQL Server Management Studio. Чтобы загрузить SSMS, см. Раздел Загрузка SQL Server Management Studio (SSMS).

Для проверки, описанной в этой статье, для развертывания в базе данных SQL Azure требуются инструменты данных SQL Server (SSDT) ​​версии 17.4 или новее. Чтобы получить последнюю версию SSDT, см. Раздел Загрузка средств данных SQL Server (SSDT).

Сервер базы данных SQL Azure прослушивает порт 1433. Если вы пытаетесь подключиться к серверу базы данных SQL Azure из корпоративного брандмауэра, для успешного подключения этот порт должен быть открыт в корпоративном брандмауэре.

Поддерживаемые платформы

Информацию из этого краткого руководства можно использовать для развертывания проекта SSIS на следующих платформах:

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

Для базы данных SQL Azure: получить информацию о подключении

Чтобы развернуть проект в базе данных SQL Azure, получите информацию о подключении, необходимую для подключения к базе данных каталога SSIS (SSISDB). Вам потребуется полное имя сервера и информация для входа в следующие процедуры.

  1. Войдите на портал Azure.
  2. Выберите Базы данных SQL в левом меню, а затем выберите базу данных SSISDB на странице Базы данных SQL .
  3. На странице Overview вашей базы данных проверьте полное имя сервера. Чтобы увидеть вариант Нажмите, чтобы скопировать , наведите указатель мыши на имя сервера.
  4. Если вы забыли данные для входа на сервер базы данных SQL Azure, перейдите на страницу сервера базы данных SQL, чтобы просмотреть имя администратора сервера. При необходимости вы можете сбросить пароль.

Методы аутентификации для развертывания

При развертывании на SQL Server с помощью мастера развертывания необходимо использовать проверку подлинности Windows; вы не можете использовать аутентификацию SQL Server.

При развертывании на сервере базы данных SQL Azure необходимо использовать проверку подлинности SQL Server или проверку подлинности Azure Active Directory; вы не можете использовать проверку подлинности Windows.

Подключиться к базе данных SSISDB

Используйте SQL Server Management Studio, чтобы установить соединение с каталогом SSIS.

  1. Откройте SQL Server Management Studio.

  2. В диалоговом окне Connect to Server введите следующую информацию:

    Настройка Рекомендуемое значение Подробнее
    Тип сервера Ядро базы данных Это значение обязательно.
    Имя сервера Полное имя сервера Если вы подключаетесь к серверу базы данных SQL Azure, имя имеет следующий формат: <имя_сервера> .database.windows.net .
    Аутентификация Проверка подлинности SQL Server С помощью проверки подлинности SQL Server вы можете подключиться к SQL Server или к базе данных SQL Azure. См. Методы проверки подлинности в развертывании в этой статье.
    Логин Учетная запись администратора сервера Эта учетная запись — это учетная запись, которую вы указали при создании сервера.
    Пароль Пароль для учетной записи администратора сервера Этот пароль является паролем, который вы указали при создании сервера.
  3. Щелкните Подключите . Окно обозревателя объектов откроется в SSMS.

  4. В обозревателе объектов разверните Каталоги служб Integration Services , а затем разверните SSISDB , чтобы просмотреть объекты в базе данных каталога служб SSIS.

Запустить мастер развертывания служб Integration Services

  1. В обозревателе объектов разверните узел каталогов служб интеграции и узел SSISDB и разверните папку.

  2. Выберите узел Projects .

  3. Щелкните правой кнопкой мыши узел Projects и выберите Deploy project . Откроется мастер развертывания служб Integration Services. Вы можете развернуть проект из текущего каталога или из файловой системы.

Развертывание проекта с помощью мастера

  1. На странице мастера Introduction просмотрите введение. Щелкните Далее , чтобы открыть страницу Выбрать источник .

  2. На странице Select Source выберите существующий проект SSIS для развертывания.

    • Чтобы развернуть файл развертывания проекта, созданный при создании проекта в среде разработки, выберите Файл развертывания проекта и введите путь к файлу.ispac файл.
    • Чтобы развернуть проект, который уже развернут в базе данных каталога SSIS, выберите Integration Services catalog , а затем введите имя сервера и путь к проекту в каталоге.
      Щелкните Далее , чтобы открыть страницу Выбор места назначения .
  3. На странице Select Destination выберите место назначения для проекта.

    • Введите полное имя сервера. Если целевой сервер является сервером базы данных SQL Azure, имя имеет следующий формат: <имя_сервера>.database.windows.net .
    • Введите информацию для аутентификации, а затем выберите Connect . См. Методы проверки подлинности в развертывании в этой статье.
    • Затем выберите Обзор , чтобы выбрать целевую папку в SSISDB.
    • Затем выберите Далее , чтобы открыть страницу Просмотр . (Кнопка Next активируется только после выбора Connect .)
  4. На странице Просмотр проверьте выбранные настройки.

    • Вы можете изменить свой выбор, щелкнув Предыдущий или щелкнув любой из шагов на левой панели.
    • Щелкните Развернуть , чтобы начать процесс развертывания.
  5. При развертывании на сервере базы данных SQL Azure открывается страница Проверить и проверяет пакеты в проекте на наличие известных проблем, которые могут помешать ожидаемому запуску пакетов в среде выполнения интеграции Azure-SSIS. Дополнительные сведения см. В разделе Проверка пакетов SSIS, развернутых в Azure.

  6. После завершения процесса развертывания откроется страница Результаты . На этой странице отображается успех или неудача каждого действия.

    • Если действие не удалось, щелкните Ошибка в столбце Результат , чтобы отобразить объяснение ошибки.
    • При желании нажмите Сохранить отчет … , чтобы сохранить результаты в файл XML.
    • Нажмите Закрыть , чтобы выйти из мастера.

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

  • Рассмотрите другие способы развертывания пакета.
  • Запустить развернутый пакет. Чтобы запустить пакет, вы можете выбрать один из нескольких инструментов и языков. Дополнительные сведения см. В следующих статьях:

Что нового в службах Integration Services в SQL Server 2016 — Службы интеграции SQL Server (SSIS)

  • 16 минут на чтение

В этой статье

Применимо к: SQL Server (все поддерживаемые версии) Среда выполнения интеграции SSIS в фабрике данных Azure

В этом разделе описаны функции, которые были добавлены или обновлены в службах интеграции SQL Server 2016.Он также включает функции, добавленные или обновленные в пакете компонентов Azure для служб интеграции (SSIS) в течение периода времени SQL Server 2016.

Новое для служб SSIS в фабрике данных Azure

В общедоступной предварительной версии фабрики данных Azure версии 2 в сентябре 2017 г. теперь вы можете выполнять следующие действия:

  • Развертывание пакетов в базе данных каталога служб SSIS (SSISDB) в базе данных SQL Azure.
  • Выполнять пакеты, развернутые в Azure, в среде выполнения интеграции Azure и SSIS, компоненте фабрики данных Azure версии 2.

Дополнительные сведения см. В разделе «Перенос и перенос рабочих нагрузок служб интеграции SQL Server в облако».

Эти новые возможности требуют SQL Server Data Tools (SSDT) ​​версии 17.2 или более поздней, но не требуют SQL Server 2017 или SQL Server 2016. При развертывании пакетов в Azure мастер развертывания пакетов всегда обновляет пакеты до последнего формата пакета.

Улучшения 2016 г. по категориям

  • Управляемость

    • Лучшее развертывание

    • Лучшая отладка

    • Лучшее управление пакетами

  • Возможности подключения

    • Расширенные возможности подключения в помещениях

    • Расширенное подключение к облаку

  • Удобство использования и производительность

    • Более удобная установка

    • Лучший опыт проектирования

    • Улучшенный опыт управления в SQL Server Management Studio

    • Прочие улучшения

Управляемость

Лучшее развертывание

Мастер обновления SSISDB

Запустите мастер обновления SSISDB, чтобы обновить базу данных каталога SSIS, SSISDB, если база данных старше текущей версии экземпляра SQL Server.Это происходит, когда выполняется одно из следующих условий.

  • Вы восстановили базу данных из более старой версии SQL Server.

  • Вы не удалили базу данных из группы доступности AlwaysOn перед обновлением экземпляра SQL Server. Это предотвращает автоматическое обновление базы данных. Дополнительные сведения см. В разделе Обновление SSISDB в группе доступности.

Дополнительные сведения см. В каталоге служб SSIS (SSISDB).

Поддержка Always On в каталоге служб SSIS

Функция «Группы доступности AlwaysOn» — это решение для обеспечения высокой доступности и аварийного восстановления, которое представляет собой альтернативу зеркальному отображению базы данных на уровне предприятия.Группа доступности поддерживает среду аварийного переключения для дискретного набора пользовательских баз данных, известных как базы данных доступности, которые одновременно выполняют аварийное переключение. Дополнительные сведения см. В разделе Группы доступности AlwaysOn.

В SQL Server 2016 SSIS представляет новые возможности, которые позволяют легко развертывать в централизованном каталоге SSIS (т. Е. Пользовательской базе данных SSISDB). Чтобы обеспечить высокую доступность базы данных SSISDB и ее содержимого — проектов, пакетов, журналов выполнения и т. Д. — вы можете добавить базу данных SSISDB в группу доступности AlwaysOn, как и любую другую базу данных пользователей.Когда происходит аварийное переключение, один из вторичных узлов автоматически становится новым первичным узлом.

Подробный обзор и пошаговые инструкции по включению Always On для SSISDB см. В каталоге SSIS.

Инкрементное развертывание пакета

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

  • Мастер развертывания

  • SQL Server Management Studio (который использует мастер развертывания)

  • SQL Server Data Tools (Visual Studio) (который также использует мастер развертывания)

  • Хранимые процедуры

  • API объектной модели управления (MOM)

Дополнительные сведения см. В разделе «Развертывание проектов и пакетов служб Integration Services (SSIS)».

Поддержка постоянного шифрования в каталоге служб SSIS

SSIS

уже поддерживает функцию постоянного шифрования в SQL Server. Для получения дополнительной информации см. Следующие сообщения в блоге.

Лучшая отладка

Новая роль уровня базы данных ssis_logreader в каталоге служб SSIS

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

Также есть новая роль ssis_monitor . Эта роль поддерживает Always On и предназначена только для внутреннего использования каталогом SSIS.

Новый уровень ведения журнала RuntimeLineage в каталоге служб SSIS

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

Новый настраиваемый уровень ведения журнала в каталоге служб SSIS

Предыдущие версии каталога SSIS позволяли выбирать один из четырех встроенных уровней ведения журнала при запуске пакета: None, Basic, Performance или Verbose . SQL Server 2016 добавляет уровень ведения журнала RuntimeLineage . Кроме того, теперь вы можете создавать и сохранять несколько настраиваемых уровней ведения журнала в каталоге служб SSIS и выбирать уровень ведения журнала для использования при каждом запуске пакета. Для каждого настраиваемого уровня ведения журнала выберите только статистику и события, которые вы хотите фиксировать.При необходимости включите контекст события, чтобы увидеть значения переменных, строки подключения и свойства задачи. Дополнительные сведения см. В разделе «Включение ведения журнала для выполнения пакета на сервере SSIS».

Имена столбцов для ошибок в потоке данных

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

  • При настройке ведения журнала выберите событие DiagnosticEx для ведения журнала. Это событие записывает в журнал карту столбцов потока данных. Затем вы можете найти имя столбца в этой карте столбцов, используя идентификатор столбца, полученный при выводе ошибки. Для получения дополнительной информации см. Обработка ошибок в данных.

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

  • Чтобы увидеть имена столбцов, в которых произошла ошибка, прикрепите средство просмотра данных к выводу ошибки. Средство просмотра данных теперь отображает как описание ошибки, так и имя столбца, в котором произошла ошибка.

  • В компоненте сценария или компоненте пользовательского потока данных вызовите новый метод GetIdentificationStringByID интерфейса IDTSComponentMetadata100.

Дополнительные сведения об этом улучшении см. В следующем сообщении в блоге разработчика SSIS Бо Фана: Улучшения столбца ошибок для потока данных SSIS.

Расширенная поддержка имен столбцов ошибок

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

Метод GetIdentificationStringByLineageID был переименован в GetIdentificationStringByID. Для получения дополнительной информации см. Имена столбцов для ошибок в потоке данных.

Дополнительные сведения об этом изменении и улучшении столбца ошибок см. В следующем обновленном сообщении блога.Улучшения столбца ошибок для потока данных служб SSIS (обновлено для CTP3.3)

Поддержка уровня ведения журнала по умолчанию на сервере

В свойствах сервера SQL Server в свойстве Уровень ведения журнала сервера теперь можно выбрать уровень ведения журнала по умолчанию на уровне сервера. Вы можете выбрать один из встроенных уровней ведения журнала — базовый, нет, подробный, производительность или происхождение во время выполнения — или вы можете выбрать существующий настраиваемый уровень ведения журнала. Выбранный уровень ведения журнала применяется ко всем пакетам, развернутым в каталоге SSIS.Он также применяется по умолчанию к шагу задания агента SQL, который запускает пакет SSIS.

Новый интерфейс IDTSComponentMetaData130 в API

Новый интерфейс IDTSComponentMetaData130 добавляет новые функции в SQL Server 2016 к существующему интерфейсу IDTSComponentMetaData100, особенно методу GetIdentificationStringByID. (Метод GetIdentificationStringByID перемещен в новый интерфейс из интерфейса IDTSComponentMetaData100.) Также есть новые интерфейсы IDTSInputColumn130 и IDTSOutputColumn130, оба из которых предоставляют свойство LineageIdentificationString .Для получения дополнительной информации см. Имена столбцов для ошибок в потоке данных.

Лучшее управление пакетами

Улучшен интерфейс для обновления проекта

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

Свойство AutoAdjustBufferSize автоматически вычисляет размер буфера для потока данных

Когда вы устанавливаете для нового свойства AutoAdjustBufferSize значение true , подсистема потока данных автоматически вычисляет размер буфера для потока данных.Для получения дополнительной информации см. Характеристики производительности потока данных.

Многоразовые шаблоны потока управления

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

Новые шаблоны переименованы в детали

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

Возможности подключения

Расширенные возможности подключения в помещении

Поддержка источников данных OData v4

Источник OData и диспетчер подключений OData теперь поддерживают протоколы OData v3 и v4.

  • Для протокола OData V3 компонент поддерживает форматы данных ATOM и JSON.

  • Для протокола OData V4 компонент поддерживает формат данных JSON.

Для получения дополнительной информации см. Источник OData.

Явная поддержка источников данных Excel 2013

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

Поддержка файловой системы Hadoop (HDFS)

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

Расширенная поддержка Hadoop и HDFS
  • Hadoop Connection Manager теперь поддерживает как базовую аутентификацию, так и проверку подлинности Kerberos. Для получения дополнительной информации см. Hadoop Connection Manager.

  • Источник файла HDFS и место назначения файла HDFS поддерживают как текстовый, так и формат Avro. Дополнительные сведения см. В разделах Источник файла HDFS и Место назначения файла HDFS.

  • Задача файловой системы Hadoop теперь поддерживает параметр CopyWithinHadoop в дополнение к параметрам CopyToHadoop и CopyFromHadoop.Дополнительные сведения см. В разделе Задача файловой системы Hadoop.

Место назначения файла HDFS теперь поддерживает формат файла ORC

Место назначения файла HDFS теперь поддерживает формат файла ORC в дополнение к тексту и Avro. (Источник файлов HDFS поддерживает только текст и Avro.) Дополнительные сведения об этом компоненте см. В разделе «Назначение файла HDFS».

Компоненты ODBC обновлены для SQL Server 2016

Компоненты источника и назначения ODBC обновлены для обеспечения полной совместимости с SQL Server 2016.Нет новых функций и изменений в поведении.

Явная поддержка источников данных Excel 2016

Диспетчер подключений Excel, источник Excel и место назначения Excel теперь явно поддерживают источники данных Excel 2016.

Коннектор

для SAP BW для SQL Server 2016 выпущен

Соединитель Microsoft® для SAP BW для Microsoft SQL Server® 2016 выпущен как часть пакета дополнительных компонентов SQL Server 2016. Чтобы загрузить компоненты пакета дополнительных компонентов, см. Пакет дополнительных компонентов Microsoft® SQL Server® 2016.

Выпущено

Connectors v4.0 для Oracle и Teradata

Выпущены соединители Microsoft версии 4.0 для Oracle и Teradata. Чтобы загрузить коннекторы, см. Microsoft Connectors v4.0 для Oracle и Teradata.

Connectors for Analytics Platform System (PDW) Appliance Update 5 выпущено

Выпущены целевые адаптеры для загрузки данных в PDW с AU5. Чтобы загрузить адаптеры, см. Документацию по обновлению 5 для системного устройства Analytics Platform и клиентские инструменты.

Расширенное подключение к облаку

Пакет дополнительных компонентов Azure для SSIS выпущен для SQL Server 2016

Пакет дополнительных компонентов Azure для служб интеграции выпущен для SQL Server 2016. Пакет функций содержит диспетчеры соединений для подключения к источникам данных Azure и задачи для выполнения общих операций Azure. Дополнительные сведения см. В разделе Пакет дополнительных компонентов Azure для служб интеграции (SSIS).

Поддержка онлайн-ресурсов Microsoft Dynamics, выпущенная в пакете обновления 1

С установленным пакетом обновления 1 для SQL Server 2016, источник OData и диспетчер подключений OData теперь поддерживают подключение к каналам OData Microsoft Dynamics AX Online и Microsoft Dynamics CRM Online.

Выпущена поддержка Azure Data Lake Store

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

.

Выпущена поддержка Azure Synapse Analytics

Последняя версия пакета дополнительных компонентов Azure включает задачу отправки Azure SQL DW для заполнения данных Azure Synapse Analytics. Дополнительные сведения см. В разделе Пакет дополнительных компонентов Azure для служб интеграции (SSIS)

.

Удобство использования и производительность

Лучшая установка

Обновление заблокировано, если SSISDB принадлежит группе доступности

Если база данных каталога SSIS (SSISDB) принадлежит к группе доступности AlwaysOn, необходимо удалить SSISDB из группы доступности, обновить SQL Server, а затем снова добавить SSISDB в группу доступности.Дополнительные сведения см. В разделе Обновление SSISDB в группе доступности.

Лучший опыт проектирования

Поддержка нескольких целей и нескольких версий в конструкторе служб SSIS

Теперь вы можете использовать конструктор SSIS в SQL Server Data Tools (SSDT) ​​для Visual Studio 2015 для создания, обслуживания и запуска пакетов, предназначенных для SQL Server 2016, SQL Server 2014 или SQL Server 2012. Чтобы получить SSDT, см. Загрузка последней версии SQL Инструменты данных сервера.

В обозревателе решений щелкните правой кнопкой мыши проект служб Integration Services и выберите Свойства , чтобы открыть страницы свойств для проекта.На вкладке Общие окна Свойства конфигурации выберите свойство TargetServerVersion , а затем выберите SQL Server 2016, SQL Server 2014 или SQL Server 2012.

Улучшенный опыт управления в SQL Server Management Studio

Повышенная производительность для представлений каталога служб SSIS

Большинство представлений каталога SSIS теперь работают лучше, когда они запускаются пользователем, не являющимся членом роли ssis_admin.

Другие улучшения

Преобразование сбалансированного распределителя данных теперь является частью SSIS

Преобразование сбалансированного распределителя данных, которое требовало отдельной загрузки в предыдущих версиях SQL Server, теперь устанавливается при установке служб Integration Services.Для получения дополнительной информации см. Преобразование сбалансированного распределителя данных.

Компоненты публикации канала данных

теперь являются частью SSIS

Компоненты публикации веб-канала данных, которые требовали отдельной загрузки в предыдущих версиях SQL Server, теперь устанавливаются при установке служб Integration Services. Для получения дополнительной информации см. Назначение потоковой передачи данных.

Поддержка хранилища BLOB-объектов Azure в мастере импорта и экспорта SQL Server

Мастер импорта и экспорта SQL Server теперь может импортировать и сохранять данные из хранилища BLOB-объектов Azure.Дополнительные сведения см. В разделах Выбор источника данных (мастер импорта и экспорта SQL Server) и Выбор места назначения (мастер импорта и экспорта SQL Server).

Выпущен конструктор и служба отслеживания измененных данных для Oracle для Microsoft SQL Server 2016

Конструктор отслеживания измененных данных Microsoft® и служба для Oracle от Attunity для Microsoft SQL Server® 2016 были выпущены как часть пакета дополнительных компонентов SQL Server 2016. Эти компоненты теперь поддерживают Oracle 12c в классической установке.(Многопользовательская установка не поддерживается) Чтобы загрузить компоненты пакета дополнительных компонентов, см. Пакет дополнительных компонентов Microsoft® SQL Server® 2016.

Компоненты

CDC обновлены для SQL Server 2016

Компоненты задачи управления CDC (отслеживание измененных данных), источника и разделителя были обновлены для обеспечения полной совместимости с SQL Server 2016. Новых функций и изменений в поведении нет.

Службы Analysis Services выполняют задачу DDL обновлено

Задача «Выполнение DDL в службах Analysis Services» была обновлена ​​для приема команд языка сценариев табличной модели.

Задачи служб Analysis Services поддерживают табличные модели

Теперь вы можете использовать все задачи и места назначения SSIS, которые поддерживают службы SQL Server Analysis Services (SSAS) с табличными моделями SQL Server 2016. Задачи SSIS были обновлены для представления табличных объектов вместо многомерных объектов. Например, когда вы выбираете объекты для обработки, задача обработки служб Analysis Services автоматически обнаруживает табличную модель и отображает список табличных объектов вместо отображения групп мер и измерений.В пункте назначения обработки раздела теперь также отображаются табличные объекты и поддерживается передача данных в раздел.

Назначение обработки измерений не работает для табличных моделей с уровнем совместимости SQL 2016. Задача обработки служб Analysis Services и место назначения обработки разделов — это все, что вам нужно для табличной обработки.

Поддержка встроенных служб R

SSIS

уже поддерживает встроенные службы R в SQL Server. Вы можете использовать SSIS не только для извлечения данных и загрузки результатов анализа, но и для построения, запуска и периодического переобучения R-моделей.Дополнительные сведения см. В следующем сообщении журнала. Вводите в действие свой проект машинного обучения с помощью SQL Server 2016 SSIS и R Services.

Выходные данные проверки Rich XML в задаче XML

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

В SSIS

появилось свойство ValidationDetails в SQL Server 2012 (11.x) с пакетом обновления 2 (SP2). В то время это новое свойство не было объявлено или задокументировано. Свойство ValidationDetails также доступно в SQL Server 2014 (12.x) и в SQL Server 2016 (13.x).

Получить помощь

Внесите вклад в документацию по SQL

Знаете ли вы, что вы можете редактировать контент самостоятельно? Если вы это сделаете, наша документация не только улучшится, но и вы станете соавтором страницы.

См. Также

Что нового в SQL Server 2016
Editions и поддерживаемые функции для SQL Server 2016

SSIS Как создать пакет ETL — Службы интеграции SQL Server (SSIS)

  • 3 минуты на чтение

В этой статье

Применимо к: SQL Server (все поддерживаемые версии) Среда выполнения интеграции SSIS в фабрике данных Azure

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

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

Что такое службы интеграции SQL Server (SSIS)?

MicrosoftSQL Server Integration Services (SSIS) — это платформа для создания высокопроизводительных решений для интеграции данных, включая пакеты извлечения, преобразования и загрузки (ETL) для хранилищ данных. SSIS включает графические инструменты и мастера для создания и отладки пакетов; задачи для выполнения функций рабочего процесса, таких как операции FTP, выполнение операторов SQL и отправка сообщений электронной почты; источники данных и места назначения для извлечения и загрузки данных; преобразования для очистки, агрегирования, объединения и копирования данных; база данных управления, SSISDB , для администрирования выполнения и хранения пакетов; и интерфейсы прикладного программирования (API) для программирования объектной модели служб Integration Services.

Что вы изучаете

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

Предварительные требования

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

Для запуска этого руководства у вас должны быть установлены следующие компоненты:

  • SQL Server и службы интеграции. Чтобы установить SQL Server и SSIS, см. Установка служб Integration Services.

  • Образец базы данных AdventureWorksDW2012 . Чтобы загрузить базу данных AdventureWorksDW2012 , загрузите AdventureWorksDW2012.bak из образцов баз данных AdventureWorks и восстановите резервную копию.

  • Пример данных , файлов.Образцы данных включены в пакеты уроков SSIS. Чтобы загрузить образцы данных и пакеты уроков в виде Zip-файла, см. Учебные файлы служб SQL Server Integration Services.

    • Большинство файлов в Zip-файле доступны только для чтения, чтобы предотвратить непреднамеренные изменения. Чтобы записать вывод в файл или изменить его, вам может потребоваться отключить атрибут только для чтения в свойствах файла.
    • Примеры пакетов предполагают, что файлы данных находятся в папке C: \ Program Files \ Microsoft SQL Server \ 100 \ Samples \ Integration Services \ Tutorial \ Creating a Simple ETL Package .Если вы разархивируете загрузку в другое место, вам, возможно, придется обновить путь к файлу в нескольких местах в образцах пакетов.

уроков в этом руководстве

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

Урок 2: Добавление цикла с помощью SSIS
На этом уроке вы расширяете пакет, созданный на уроке 1, чтобы воспользоваться преимуществами новых функций цикла для извлечения нескольких плоских файлов в один процесс потока данных.

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

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

Урок 5: Добавление конфигураций пакетов SSIS для модели развертывания пакетов
На этом уроке вы расширяете пакет, созданный на уроке 4, чтобы воспользоваться преимуществами новых параметров конфигурации пакета.

Урок 6: Использование параметров с моделью развертывания проекта в SSIS
На этом уроке вы расширяете пакет, созданный на уроке 5, чтобы воспользоваться преимуществами использования новых параметров в модели развертывания проекта.

Учебное пособие по

SSIS для начинающих: что такое, архитектура, пакеты

Что такое SSIS?

Служба интеграции SQL Server (SSIS) — это компонент программного обеспечения базы данных Microsoft SQL Server, который можно использовать для выполнения широкого спектра задач миграции данных.SSIS — это быстрый и гибкий инструмент для хранения данных, используемый для извлечения, загрузки и преобразования данных, таких как очистка, агрегирование, объединение данных и т. Д.

Он позволяет легко перемещать данные из одной базы данных в другую. SSIS может извлекать данные из самых разных источников, таких как базы данных SQL Server, файлы Excel, базы данных Oracle и DB2 и т. Д.

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

В этом руководстве по SSIS для начинающих вы узнаете:

Почему мы используем SSIS?

Вот основные причины использования инструмента SSIS:

  • Инструмент SSIS помогает объединить данные из различных хранилищ данных
  • Автоматизирует административные функции и загрузку данных
  • Заполняет витрины данных и хранилища данных
  • Помогает очистить и стандартизировать data
  • Встраивание бизнес-аналитики в процесс преобразования данных
  • Автоматизация административных функций и загрузки данных
  • SIS содержит графический интерфейс, который помогает пользователям легко преобразовывать данные, а не писать большие программы
  • Он может загружать миллионы строк из одного источника данных в другой всего за несколько минут
  • Выявление, сбор и обработка изменений данных
  • Координация обслуживания, обработки или анализа данных
  • SSIS устраняет необходимость в серьезных программистах
  • SSIS предлагает надежную обработку ошибок и событий

История SIS

До SSIS, SQL Server, службы преобразования данных ices (DTS), который был частью SQL Server 7 и 2000

Версия Деталь
SQL Server 2005 Команда Microsoft решила обновить DTS.Однако вместо обновления DTS они решили назвать продукт Службы интеграции (SSIS).
Версия сервера SQL 2008 В SSIS внесено множество улучшений производительности. Также были введены новые источники.
SQL Server 2012 Это был самый большой выпуск для SSIS. В этой версии представлена ​​концепция модели развертывания проекта. Он позволяет развертывать целые проекты и их пакеты на сервере вместо определенных пакетов.
SQL Server 2014 В этой версии для SSIS сделано не так много изменений. Но были добавлены новые источники или преобразования, которые выполнялись отдельными загрузками через CodePlex или SQL Server Feature Pack.
В SQL Server 2016 Версия позволяет развертывать целые проекты вместо отдельных пакетов. Есть дополнительные источники, особенно облачные, и источники больших данных, и в каталог были внесены некоторые изменения.
  • Преобразования нечеткого поиска и группирования
  • Преобразования извлечения терминов и поиска терминов
  • Компоненты высокоскоростной передачи данных, такие как подключение к SAP или Oracle
  • Архитектура SSIS

    Архитектура SSIS

    Ниже приведены компоненты архитектуры SSIS:

    • Поток управления ( Хранит контейнеры и задачи)
    • Поток данных (источник, назначение, преобразования)
    • Обработчик событий (отправка сообщений, электронные письма)
    • Проводник пакетов (предлагает единое представление для всех в пакете)
    • Параметры (взаимодействие с пользователем)
    • 9001 1

      Разберемся подробно с каждым компонентом:

      1.Поток управления

      Поток управления — это мозг пакета SSIS. Это помогает вам организовать порядок выполнения для всех его компонентов. Компоненты содержат контейнеры и задачи, которые управляются ограничениями приоритета.

      2. Ограничения приоритета

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

      3. Задача

      «Задача» — это отдельная единица работы. Это то же самое, что метод / функция, используемые в языке программирования. Однако в SSIS вы не используете методы кодирования. Вместо этого вы будете использовать технику перетаскивания для создания поверхностей и их настройки.

      4. Контейнеры

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

      Четыре типа контейнеров в SSIS:

      • A Контейнер последовательности
      • A Контейнер цикла
      • Контейнер цикла Foreach

      Контейнер последовательности : позволяет организовывать вспомогательные задачи, группируя их, и позволяет вам применить транзакции или назначить ведение журнала контейнеру.

      Для контейнера цикла: Обеспечивает те же функции, что и контейнер последовательности, за исключением того, что он также позволяет запускать задачи несколько раз.Однако он основан на условии оценки, например, в цикле от 1 до 100.

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

      5. Поток данных

      Основное использование инструмента SSIS — извлечение данных в память сервера, их преобразование и запись в другое место назначения. Если поток управления — это мозг, поток данных — это сердце SSIS

      6.Пакеты служб SSIS

      Еще одним основным компонентом служб SSIS является понятие пакета. Это набор задач, которые выполняются упорядоченно. Здесь ограничения президента помогают управлять порядком, в котором будет выполняться задача.

      Пакет может помочь вам сохранить файлы на SQL Server, в базе данных msdb или каталога пакетов. Его можно сохранить как файл .dtsx, который представляет собой структурированный файл, очень похожий на файлы .rdl в службах Reporting Services.

      7. Параметры

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

      Типы задач SSIS

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

      Некоторые важные задачи SSIS упомянуты ниже:

      Имя задачи Описания
      Выполнение задачи SQL Как следует из названия, он будет выполнять оператор SQL для реляционной базы данных.
      Задача потока данных Эта задача может считывать данные из одного или нескольких источников. Преобразуйте данные, когда они находятся в памяти, и запишите их по одному или нескольким адресатам.
      Задача обработки служб Analysis Services Эта задача используется для обработки объектов табличной модели или куба SSAS.
      Выполнить задачу пакета Используйте эту задачу SSIS для выполнения других пакетов из того же проекта.
      Выполнить задачу процесса С помощью этой задачи вы можете указать параметры командной строки.
      Задача файловой системы Выполняет манипуляции с файловой системой. Как перемещение, переименование, удаление файлов и создание каталогов.
      Задачи FTP Позволяет выполнять основные функции FTP.
      Задача сценария Это пустая задача. Вы можете написать NET-код, который выполняет любую задачу; вы хотите выступить.
      Задача отправки почты Вы можете отправить электронное письмо пользователям с уведомлением о том, что ваш пакет завершен или произошла какая-то ошибка.
      Задача массовой вставки Использование может загружать данные в таблицу с помощью команды массовой вставки.
      Задача сценария Выполняет набор кодов VB.NET или C # в среде Visual Studio.
      Задача веб-службы Выполняет метод веб-службы.
      Задача отслеживания событий WMI Эта задача позволяет пакету SSIS ожидать и отвечать на определенные события WMI.
      Задача XML Эта задача помогает объединить, разделить или переформатировать любой файл XML.

      Другие важные инструменты ETL

      • SAP Data Services
      • SAS Data Management
      • Oracle Warehouse Builder (OWB)
      • PowerCenter Informatica
      • IBM Infosphere Information Server
      • Elixir SAS Data Flow
      • 0006 Data ETL

      Преимущества и недостатки использования SSIS

      Инструмент SSIS предлагает следующие преимущества:

      • Обширная документация и поддержка
      • Простота и скорость внедрения
      • Тесная интеграция с SQL Server и Visual Studio
      • Стандартизированная интеграция данных
      • Предложения возможности в реальном времени на основе сообщений
      • Поддержка модели распространения
      • Помогает устранить сеть как узкое место для вставки данных SSIS в SQL
      • SISS позволяет использовать место назначения SQL Server вместо OLE DB для загрузки данные быстрее

      Недостатки SSIS

      Несколько недостатков использования инструментов SIS:

      • Иногда создают проблемы в средах, отличных от Windows
      • Неясное видение и стратегия
      • SSIS не поддерживает альтернативные стили интеграции данных
      • Проблемная интеграция с другими продуктами

      Пример передового опыта SSIS

      • SSIS — это конвейер в памяти.Вот почему важно убедиться, что все преобразования происходят в памяти
      • Старайтесь минимизировать регистрируемые операции
      • Планируйте емкость, понимая использование ресурсов
      • Оптимизируйте преобразование поиска SQL, источник данных и место назначения
      • Планирование и правильное распределение

      Сводка

      • Полная форма SSIS — это службы интеграции SQL Server
      • Инструмент SSIS помогает объединять данные из различных хранилищ данных
      • Важными версиями службы интеграции SQL Server являются 2005, 2008, 2012, 2014 и 216
      • Среды Studio, соответствующие функции интеграции данных и эффективная скорость внедрения — вот некоторые важные особенности SSIS
      • Поток управления, поток данных, обработчик событий, проводник пакетов и параметры являются важными компонентами архитектуры SSIS
      • Выполнение задачи SQL, задачи потока данных, анализа Задача обработки служб, Выполнить задачу пакета, Выполнить P Задача rocess, Задача файловой системы, Задачи FTP, Задача отправки почты, Задача веб-службы — вот некоторые важные аспекты
      • Обширная документация и поддержка
      • Самый большой недостаток SSIS — отсутствие поддержки альтернативных стилей интеграции данных
      • SAP Data Services, SAS Управление данными, Oracle Warehouse Builder (OWB), PowerCenter Informatica, IBM Infosphere Information Server
      • SSIS — это конвейер в памяти.Поэтому важно убедиться, что все преобразования происходят в памяти

      Что такое SSIS — службы интеграции SQL Server (введение)

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

      SSIS — это обновленная версия службы преобразования данных (DTS), которая была старым решением преобразования данных, включенным в SQL Server. Инструмент поставляется с базой данных Microsoft SQL Server и используется для извлечения данных из реляционных баз данных и файлов, чтобы их можно было преобразовать.

      Типы файлов, поддерживаемые SSIS, включают XML, плоские файлы и Microsoft Excel. Многие предприятия используют это программное обеспечение в качестве хранилища данных. Некоторые из задач, которые вы можете выполнять с помощью SSIS, включают:

      • Анализируем
      • Очищение
      • Загрузка
      • Преобразование
      • Агрегация
      • Объединение
      • Добыча

      История версий SSIS

      SSIS

      , возможно, существует уже много лет, но на самом деле он является преемником другой программы под названием Data Transformation Services ( DTS ).DTS был компонентом SQL Server 7 и 2000 до того, как Microsoft решила обновить платформу до платформы SSIS, которую используют сегодня предприятия. Версии SSIS следующие:

      Версия Описание
      SSIS 2005 Первый выпуск SSIS, заменивший DTS.
      SSIS 2008/2008 R2 Повышена производительность предыдущей версии и добавлены новые исходные коды.
      SSIS 2012 Представлена ​​модель развертывания проекта, позволяющая пользователям развертывать целые проекты и пакеты на сервере, а не ограничиваться отдельными пакетами.
      SSIS 2014 Без изменений, но добавлены новые источники и преобразования с помощью CodePlex и пакета дополнительных компонентов SQL Server.
      SSIS 2016 SSIS обновлен, чтобы пользователь мог развертывать целые пакеты и добавлять дополнительные облачные и большие источники данных.

      Почему SSIS важны?

      SSIS

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

      Одна из причин, по которой SSIS так широко используются, заключается в ее универсальности. Программа поддерживает ряд баз данных и ее простой графический пользовательский интерфейс (GUI) помогает новым пользователям выполнять преобразования и задачи хранения данных.Пользователи имеют полный контроль над проектированием процесса ETL в соответствии со своими требованиями.

      Связанное сообщение: Инструменты мониторинга SQL Server

      Основной компонент служб SSIS

      Существует ряд основных компонентов, которые составляют графический интерфейс SSIS в конструкторе служб SSIS. К ним относятся:

      • Поток управления Вкладка — Потоки управления — это части пакета, которые обеспечивают структуру, задачи и ограничения приоритета.
      • Вкладка «Поток данных» — извлечение и преобразование данных из различных источников на устройстве.Компоненты потока данных включают источники, преобразования и места назначения.
      • Обработчики событий Вкладка — Создание задач в ответ на события во время выполнения.
      • Вкладка «Проводник пакетов» — просмотр элементов пакета сверху вниз.

      Поток управления

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

      Типы задач, которые вы можете выполнять: выполнить задачи SQL , задачи потока данных , выполнить пакетные задачи , задачи сценария , задачи отправки почты и другие (мы обсудили задачи более подробно ниже). Потоки управления также включают ограничения приоритета, которые соединяют исполняемые файлы, контейнеры и задачи вместе, определяя порядок выполнения задач.

      Поток данных

      Поток данных — это, по сути, элемент, который позволяет вам брать данные из источника, преобразовывать их и помещать в другое место назначения. Например, вы можете использовать задачу потока данных, чтобы взять данные из базы данных и преобразовать их в файл Microsoft Excel. Вы можете управлять потоками данных через вкладку Data Flow и добавлять их в поток управления.

      Поток данных состоит из трех компонентов:

      • Источники — Извлечение данных из источников, включая файлы, базы данных и другие места.
      • Преобразования — Обработка данных после их извлечения из источника.
      • Назначения — Записывает данные в конечный пункт назначения.

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

      Обработчики событий

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

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

      Проводник пакетов

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

      Связанное сообщение: Настройка производительности SQL

      Пакеты служб SSIS

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

      • Поток управления (задачи и контейнеры) — Поток управления включает задачи и контейнеры, которые выполняются при запуске пакета.
      • Поток данных (Источники и места назначения данных) — Поток данных определяет, как данные обрабатываются и преобразуются от источника к месту назначения.
      • Диспетчеры соединений — Связь между пакетом и источником данных, определяющая строку соединения, которую другие компоненты пакета используют для взаимодействия с исходными данными.

      Задачи служб SSIS

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

      • Execute SQL Task — позволяет запускать один или несколько операторов SQL из пакета.
      • Задача потока данных — Извлечение, преобразование и загрузка данных из одного или нескольких источников. Очищает и изменяет данные в пути.
      • Службы Analysis Services Обработка Tas k — Обрабатывает объекты служб Analysis Services (табличные модели, кубы, измерения и т. Д.). Обрабатывает один или несколько объектов за раз.
      • Задача «Выполнить пакет» — позволяет одному пакету запускать другой пакет как часть рабочего процесса.Часто используется для разбивки сложных рабочих процессов на несколько пакетов.
      • Задача выполнения процесса — Используется для запуска приложения или пакетного файла как части пакета SSIS.
      • Задача FTP — загрузка и выгрузка файлов данных с помощью FTP. Также позволяет пользователю копировать файлы в целевой каталог.
      • Задача сценария — Введите код для выполнения задачи, которая не включена в SSIS. Можно объединить несколько задач в одном скрипте.
      • Задача отправки почты — отправляет электронное письмо пользователю, если рабочий процесс пакета завершился успешно, не удалось или произошло событие (например, при сбое резервного копирования базы данных).
      • Задача XML — Доступ, объединение, проверка и изменение файлов XML. Может использоваться для объединения нескольких источников данных XML в один документ.

      Преимущества и недостатки SSIS

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

      Основные преимущества SSIS

      Гибкость

      SSIS

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

      Простота использования

      Разобраться с пользовательским интерфейсом и настроить SSIS просто.Все, что вам нужно, легко найти, и вы можете перейти на вкладки потока управления и потока данных без бесконечного поиска. Если вы не уверены в структуре, вы можете проверить это в проводнике пакетов.

      Документация

      SSIS

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

      Недостатки SSIS

      Ограниченная поддержка операционной системы

      Одним из самых больших ограничений SSIS является то, что он поддерживает только Microsoft Windows. Даже при интеграции отсутствие поддержки SSIS для других операционных систем ограничивает возможности интеграции данных во многих средах. Если ваша среда в основном основана на Windows, этот недостаток будет менее значительным.

      Отсутствие возможностей интеграции

      Ограниченная поддержка ОС усугубляется ограниченной интеграцией SSIS с другими инструментами.Хотя есть расширения, вы можете использовать их бледно по сравнению с универсальностью инструментов с открытым исходным кодом, таких как Python. SSIS не обязательно подходит для каждой среды, особенно если вы не хотите ограничиваться службами Windows.

      SSIS — обязательный инструмент ETL

      Если вы хотите передавать данные через процесс ETL, то SSIS просто необходим. Извлечение данных из источников и их преобразование для загрузки в другое место назначения — это основа SSIS. Программное обеспечение подходит для компаний независимо от того, хотят ли они интегрировать один или несколько источников данных.

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

      Технический документ по основам SSIS

      | SolarWinds