Implantação (deploy) de um projeto do Integration Services no SQL Server
Olá pessoal!
Neste post mostrei como fazer um SSIS para pegar cotações do dólar do webservice do banco central.
Agora vou mostrar roteiro de implantação do Integration Services Catalog para fazer o deploy do projeto criado no visual studio e fazer o agendamento de um job para execução diária. Maiores informações, consulte este link
1 – Instalando a Feature do Integration Services no SQL Server
Para instalar o SQL Server Integration Services, em uma instalação nova ou existente, deve-se executar o setup e seguir os passos abaixo:
1.1 Executar o setup e selecionar a instalação do Integration Services
Execute o setup, abrirá a tela para dar o início ao processo conforme abaixo:
Selecione a primeira opção “New SQL Server stand-alone installation or add features to na existing installation”.
A segunda tela são algumas validações que são feitas, pode avançar clicando em OK.
Na tela seguinte, algumas informações são solicitadas como a Product Key, a aceitação dos temos da licença, Update de produtos e um procedimento de instalação de arquivos de setup, pode se passar por eles aceitando o termo e inserindo a product key (no caso de uma nova instalação)
Na tela seguinte são feitas mais validações do ambiente desta vez antes da instalação, como na tela abaixo:
Após passar pela tela de “Setup Role” é onde importa para habilitar os recursos do SSIS, esta tela chamada de “Feature Selection” além dos recursos do banco de dados “Database Engine Services” deve habilitar. Em uma instalação existente possivelmente várias features já estão preenchidas.
A feature “Integration Services” deve ser habilitada para o funcionamento do processo.
Após este passo, algumas outras informações deverão ser confirmadas para que o processo de setup possa fazer todo o processo de instalação.
Ao final da instalação, já pode ser dada a continuidade conforme segue os demais itens abaixo.
2 – Criando o Catalogo
Depois de criar e testar pacotes no SQL Server Data Tools, você pode implantar os projetos que contêm os pacotes em um servidor do Integration Services. Para poder implantar os projetos no servidor do Integration Services, o servidor deve conter o catálogo do SSISDB. O programa de instalação do SQL Server 2012 não cria o catálogo automaticamente; você precisará criar o catálogo manualmente por meio das instruções a seguir.
2.1 – Criando pelo SQL Server Management Studio
2.1.1 – Abra o SQL Server Management Studio.
2.1.2 – Conecte-se ao Mecanismo de Banco de Dados do SQL Server.
2.1.3 – No Pesquisador de Objetos, expanda o nó servidor, clique com o botão direito do mouse no nó Integration Services e clique em Criar Catálogo.
2.1.4 – Clique em Habilitar Integração CLR se ele estiver disponível e não marcado.
Esse catálogo usa procedimentos armazenados CLR.
2.1.5 Clique em Habilitar a execução automática do procedimento armazenado do Integration Services na inicialização do SQL Server para habilitar o procedimento armazenado catalog.startup a ser executado toda vez que a instância de servidor SSIS for reiniciada.
O procedimento armazenado executa a manutenção do estado das operações para o catálogo SSISDB. Ele corrigirá o status de todos os pacotes que estavam sendo executados se e quando a instância do servidor SSIS ficar inoperante.
2.1.6 – Digite uma senha e clique em Ok.
A senha protege a chave mestra do banco de dados que é usada para criptografar os dados do catálogo. Salve a senha em um local seguro. É recomendado que você também faça backup da chave mestra do banco de dados. Para obter mais informações, consulte Fazer backup da chave mestra de um banco de dados.
3 – Trabalhando o projeto
Até agora, vimos a criação do ambiente, agora vamos trabalhar alguns outros passos para que efetivamente nossos projetos no Integration Services possam ir para produção.
3.1 – Criando o Folder
3.1.1 – Clicando o botão direito do mouse em cima do nosso Catalogo, temos a opção de criação de folder
3.1.2 – Forneça um nome e um breve descritivo sobre o Folder e clique em OK.
4 – Importando Pacotes
4.1 – Após criado o folder, temos então dois subfolders, um para projetos e outros de ambiente. Neste caso daremos foco aos projetos como na figura abaixo.
4.2 – Clicando o botão direito do mouse, vamos proceder a importação de um pacote do Integration Services existente, na opção Import Packages
4.3 – Será aberta uma caixa de dialogo conforme abaixo (clique em next)
4.4 – Marque a opção File system e clique em browser para procurar a pasta em que o(s) pacote(s) está(ão) localizado(s). clique em Next
4.5 – Selecione o(s) pacote(s) que deseja importar. Clique em Next.
4.6 – Será solicitado algumas informações adicionais, porém importantes, como o nome do projeto, o nível de proteção e a descrição do projeto. Clique em next.
4.7 – Deixar em branco as informações, pois não são tratadas neste contexto. Clicar em Next 4 vezes.
4.8 – Revisão de todas as atividades que serão executadas. Clicar em convert.
4.9 – Após todos os passos seguidos, será feito o processamento. Clique em close.
4.10 – Abrirá um novo Guia onde efetivamente será feita a importação do package no Catalogo. Clique em Next.
4.11 – Mais uma revisão de atividades. Clique em Deploy.
4.12 – Após processados com sucesso, clique em Close.
4.13 – Note que o package foi criado no Catalogo do Integration Services com sucesso.
5 – Promovendo o projeto para o Agent do SQL Server como Job
Ao terminar a importação do projeto no Catalogo do Integration Services, podemos promove-lo ao ambiente onde ele irá efetivamente trabalhar, como no Agente do SQL Server como um Job. Para isto basta seguir os passos abaixo.
[…] post eu mostro como configurar o ambiente e fazer o deploy de seu projeto SSIS no SQL […]
Depois desses passos como faço para automatizar uma carga? Exemplo, quero que esse job execute diariamente as 00:30.
Olá Diego,
Para “schedular” o package basta criar um job do SQL Server.
No SQL Server Agent > Jobs clique com o botão direito e vá em new job. Em steps Digite o nome do job em em Type para executar Package do SQL Server Integration Services. Coloque as informações do servidor, o tipo de autenticação e selecione o pacote (package) que será executado ( Na janela que abrir selecione o package).
Em seguida clique em schedule e clique no botão “New…”. Preencha as informações de acordo com sua necessidade de agendamento e clique em ok.
Este é o procedimento básico para agendar a execução de packages.
Muito obrigado!!!! ajudou de maaaais.
Boa tarde,
Após realizar a instalação do SQLServer 2008 R2 Enterprise e ter selecionado a opção do Integration Services. Abro o SQL Server Management conecto no Bando de Dados porem não aparece a opção do “Integration Services Catalog” que deveria ficar acima do SQL Server Agent, ja realizar a reinstalação porem ainda não aparece, ja pesquisei porem não consigo encontrar erro parecido, poderia me ajudar com essa questão?
Obrigado,
David, boa tarde!
Durante a instalação vc selecionou a feature Integration Services conforme imagem abaixo? Essa opção você encontra em no item “Feature Selection” durante a instalação.
No exemplo que descrevi utilizei o SQL Server 2012, pode ser que o processo seja um pouco diferente no 2008 R2. Pelo o que pude na sua versão você encontra essa opção em “SQL Server Integration Services” em “Share Features”.
Referências: https://msdn.microsoft.com/pt-br/library/ms143731(v=sql.105).aspx
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/5742f9ac-f6cc-4e12-b4ef-588b8f78e522/install-ssis-via-sql-server-2008r2-setup?forum=sqlintegrationservices
Oi Tiago, quando vale a pena criar um “integration services catalogs” ou apenas “schedular” um projeto SSIS ? pq pelo que eu vi, você pode agendar um job se baseando diretamente em um projeto SSIS, então qual seria a vantagem de criar um database SSIS?
Fala Leandro! Foi mal a demora na resposta!
O SSIS é vantajoso quando você precisa trabalhar com transformação de dados por ser uma ferramenta de ETL (Extract, transform, load). Existem outras ferramentas como a Pentaho Data Integrator. Projetos de BI fazem grande utilização destas ferramentas.
Mas não é só na área de BI que a ferramenta se restringe. Aqui no blog tem um artigo onde mostro como pegar a cotação do dólar de um webservice do banco central e gravar em uma tabela. Recentemente criei uma rotina para extrair dados de várias tabelas do banco e salvar em um arquivo txt que é consumido por um mainframe, enfim, as aplicações são muitas.
Este artigo https://www.xplenty.com/blog/diy-vs-using-a-saas-tool-for-data-integration/ apresenta 5 razões pela qual você deve usar uma ferramenta de ETL ao invés de fazer o próprio script.
[…] post eu mostro como configurar o ambiente e fazer o deploy de seu projeto SSIS no SQL […]
Oi Tiago, boa tarde… como faço para atualizar o catalogo sempre que altero algo no pacote? Até agora tenho feito de forma não convencional e importo e implanto novamente… mas deve ter um jeito mais fácil né? Vejo que tem um botão “ATUALIZAR”… em todas as subpastas do catalogo… mas não resolve. Poderia me ajudar?
Olá Silvio,
Faz um tempo que não trabalho mais com integration services.
Acredito que há forma de deploy automatizado do SSIS sim. Com o octopus deploy e o azure devops você consegue automatizar essa tarefa.
https://octopus.com/blog/deploying-ssis
abs
Olá Tiago, tudo bem? Meu problema é com relação aos jobs para rodar pacotes em produção. No ambiente de desenvolviment9c os desenvolvedores têm permissões mais abrangentes no SQL Server e eles mesmos fazem o deploy dos pacotes e criam os jobs, então tudo funciona. Mas na produção eles me passam o projeto e eu faço o deploy e crio o job. O deploy é tranquilo, mas quando executo o job ele não roda, dá mensagem de erro “Login failed to user sa”. Alguma dica para trabalhar em ambiente de produção?
Oi Fernanda!
A última vez que trabalhei com SSIS foi em 2016, então to bem “enferrujado” neste tema.
Lembro que no passado tive alguns problemas parecidos. Se não me engano nas propriedades do projeto você pode configurar a autenticação.
Neste tópico vc encontra algumas informações sobre como fazer isso. Dá uma olhada na última resposta desta pergunta: https://dba.stackexchange.com/questions/102570/ssis-package-hits-login-failed-for-user-when-simultaneous-operations-occur-aga
Outro tópico que pode ajudar: https://dba.stackexchange.com/questions/30074/login-failure-when-running-a-ssis-package-from-a-sql-server-job