Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 ETL(SSIS) на dev и prod БД  [new]
Michail A.
Member

Откуда:
Сообщений: 63
Добрый день!

Коллеги, подскажите, пож-та тезисно, как правильно организовать процесс разработки, тестирования и деплоя SSIS пакетов на dev и prod серверах/БД?
8 апр 19, 13:32    [21855850]     Ответить | Цитировать Сообщить модератору
 Re: ETL(SSIS) на dev и prod БД  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6532
Michail A.,

в общем случае выносите все настоечные параметры в переменные пакета. Насколько мне известно, переопределять эти параметры средствами студии не возможно. но проще будет изменять вручную. Кроме того, значения переменных не изменяются по месту развертывания, т.е. как укажете вручную после развертывания в параметрах (или шагах джоба), так и сохранится.
8 апр 19, 13:37    [21855867]     Ответить | Цитировать Сообщить модератору
 Re: ETL(SSIS) на dev и prod БД  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3061
Владислав Колосов,

Вы слегка отстали от жизни. В SSIS, начиная с 2012 что ли версии можно делать Server Environments, через которые можно задавать значения для параметров как проекта, так и отдельных пакетов. Что привяжете, то и подхватится. Таким образом можно, например, развернуть проект на одном сервере и создать для него 2 разных окружения, допустим DEV и TEST (продакшн лучше все-таки держать отдельно, но в принципе почему бы и нет). В этом случае в свойствах джоб степа достаточно будет выбрать из списка тот environment, значения параметров которого вам нужны. Поскольку параметризовать в SSIS можно практ. все, то данные окружения могут указывать на разные папки с исходными файлами, разные серверы / БД назначения, и т.д. Неплохо упрощают администрирование.

Автор,

Ангельским владеете? Тогда вперед: https://docs.microsoft.com/en-us/sql/integration-services/packages/deploy-integration-services-ssis-projects-and-packages

Но лучше б вы конкретные вопросы задавали. Иначе складывается впечатление, что вы про SSIS вчера первый раз услышали, и теперь вам надо чтоб все заверте
8 апр 19, 13:53    [21855903]     Ответить | Цитировать Сообщить модератору
 Re: ETL(SSIS) на dev и prod БД  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 28723
Michail A.
Добрый день!

Коллеги, подскажите, пож-та тезисно, как правильно организовать процесс разработки, тестирования и деплоя SSIS пакетов на dev и prod серверах/БД?
Тезисно...

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

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

В общем, тезисно, изучаются бизнес-требования, потом проектируется концепция процесса разработки, потом проектируется и разрабатываются шаги этого процесса.
8 апр 19, 13:58    [21855911]     Ответить | Цитировать Сообщить модератору
 Re: ETL(SSIS) на dev и prod БД  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 3926
Не думаю, что стоит для SSIS пакетов делать тот же процесс разработки, как и для разработки C# или Java. Ставку нужно делать на хорошее логирование и ручное тестирование. При чем на стандартное логирование SSIS фреймвока я бы не полагался.
8 апр 19, 14:29    [21855961]     Ответить | Цитировать Сообщить модератору
 Re: ETL(SSIS) на dev и prod БД  [new]
Michail A.
Member

Откуда:
Сообщений: 63
Ennor Tiegael
Владислав Колосов,

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



Примерно так и есть :)


Вопрос, я хочу сделать TEST БД, которая будет копией PROD БД, и на ней тестировать SSIS пакеты, перед размещением на PROD.


Есть ли в этом смысл? Делают ли так ? Как и какие построить алгоритмы тестирования на TEST БД?
8 апр 19, 14:46    [21855997]     Ответить | Цитировать Сообщить модератору
 Re: ETL(SSIS) на dev и prod БД  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 31739
Блог
- имена серверов, логины и пароли выносите в параметры проекта, для паролей ставите свойство скрытости
- для каждой системы-источника - отдельный проект импорта
- по возможности используете win-авторизацию - будет проще
- на тестовом сервере в окружении прописываете одни параметры, на боевом другие
- эти пааметры прописывает тот специальный человек, который знает пароли к технологическим логинам
- проект после первого деплоя привязывается один раз к нужному окружению, запускать пакеты можно только после привязки
- работа при разработке идет под персональными логинами и паролями, которые вбиваются каждым разработчиком в параметры проекта руками один раз, из-за чего нужно исключить параметры проекта из tfs
- для импорта данных из систем источников используются только технологический логин/логины
- на стороне систем-источников должны быть определены роли, куда должны входить как технологический логин, так и логины разработчиков, это важно, иначе разраб может сделать пакет под более широкими правами, и такой пакет на бою не запустится
- разработку непосредственно под технологическими логинами вести нельзя из соображений безопасности

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

Обязательно нужно, чтобы была деплойная ветка в tfs, ибо иначе можно задеплоить на бой то, что не нужно (то, что еще разрабатывается)

После билда можно деплоить проекты батником в автоматическом режиме, но между командами на запуск утилиты деплоя нужна пауза в 5-7 секунд, т.к. сервер не переваривает практически одновременные команды на деплой и процесс падает.

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

Пробовали вести разработку, когда система-источник представлена ее тестовым сервером (из соображений снижения нагрузки на источники). Не рекомендую так делать, т.к. нам там пару раз поднимали старую базу, где не было используемых полей, в результате SSIS молча рубил связи маппинга при открытии пакета и в приемнике оказывались null-поля.
8 апр 19, 15:05    [21856029]     Ответить | Цитировать Сообщить модератору
 Re: ETL(SSIS) на dev и prod БД  [new]
Ferdipux
Member

Откуда: Москва
Сообщений: 497
Критик
имена серверов, логины и пароли выносите в параметры проекта, для паролей ставите свойство скрытости
Если Connection Manager уровня проекта - параметры вида CM.<Conn Manager Name>.ConnectionString или CM.<Conn Manager Name>.ServerName добавляются автоматически в Visual Studio.

Остальное - верно и достаточно исчерпывающе.

Критик
- на стороне систем-источников должны быть определены роли, куда должны входить как технологический логин, так и логины разработчиков, это важно, иначе разраб может сделать пакет под более широкими правами, и такой пакет на бою не запустится
Это нужно делать на всех средах. Иначе будет проблема - ошибка воспроизводится только в Prod/PreProd, нужно запустить пакет в дебагере, а для получения данных -- разрабу нужно передать сервисный логин/пароль. И тогда схема безопасности идет к лесу... Если нужно - учетка разработчика в Prod заблокирована и разблокируется на период отладки.
8 апр 19, 16:28    [21856172]     Ответить | Цитировать Сообщить модератору
 Re: ETL(SSIS) на dev и prod БД  [new]
tunknown
Member

Откуда:
Сообщений: 647
Michail A.
Коллеги, подскажите, пож-та тезисно, как правильно организовать процесс разработки, тестирования и деплоя SSIS пакетов на dev и prod серверах/БД?
Просто учтите эти особенности с поправкой на версию и потом будет несколько проще.
9 апр 19, 09:14    [21856718]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить