Conexão dinamica no SSIS

Como muitas pessoas ja devem ter percebido, apesar do trabalho de
DBA, ultimamente tenho utilizado bastante o combo de BI do SQL Server, no caso, Integration Services (SSIS),
Analisys Service (SSAS) e Reporting Services (SSRS).
Como realmente não tinha uma experiencia tão vasta nos mesmos, descobri muitas coisas, alguma da forma mais
facil, outras das mais dificeis.
Um item que ao ter a necessidade e buscar na internet, tive muitas dificuldades de encontrar, foi como parametrizar
de forma dinamica um conection source, seja ele um caminho de um arquivo adicionado do nome do arquivo, como de um servidor e uma base.
Muitas maneiras que encontrei eram bem “HardCore”, tendo que mexer inclusive em programação interna das tasks, depois de mexer um pouco, descobri uma maneira muito mais simples:

Cenario:
Vamos supor que temos um arquivo capturado de um FTP, porem toda hora, temos um nome diferente, então neste cenario, não conseguiriamos fixar uma conexão, o caminho do arquivo, neste cenario sim, mas não o nome.
Bom, a opção mais simples para se realizar essa tarefa depende de alguns passos, que estão listados abaixo:

1 – Encontrar o nome do arquivo.
Não importa qual dinamico seja seu ETL, ainda sim é preciso, obviamente, conhecer qual o arquivo de fonte a ser lido, portanto, como primeiro passo, é criar uma task “SQL Task”, que retorne o nome do arquivo, seja ele capturado da maneira que achar melhor (Eu gosto, apesar dos buracos de segurança caso não utilizado com cautela, de utilizar o xp_cmdshell)

2 – Armazenamento persistente durante execução.
Claro que voce não pode simplismente retornar esse valor e pronto, é necessario grava-lo em algum lugar, portanto, crie uma variavel conforme abaixo, e coloque o result set do Passo 1 para linha simples e jogue-o nesta variavel.

3 – A configuração em si.
Agora, vamos a configuração, primeiro de tudo, crie uma conexão para um arquivo texto qualquer, claro que iremos cortar o passo do caminho, caso este primeiro arquivo de configuração ja esteja no caminho correto.
Com uma conexão fixa ja configurada, para a tornarmos dinamica é bem simples, basta clicar na conexão dentro de Gerenciadores de Conexões, no quadro de propriedades, clique em Expression, teoricamente não tera nada, portanto, clique em “…” e ira aparecer uma tela denominada “Editor de Expressões de Propriedades”, aqui, podemos configurar todos os parametros de uma conexão, como por exemplo caminho, nome do arquivo, usuario de autenticação, entre outras….

As opções de caminho e arquivo:
Nos quadrados a esquerda temos qual parametro da conexão queremos configurar, ja no quadro a direita, qual o valor, é possivel fixar um valor, ou colocarmos uma variavel (No caso, a que obtemos no step 1 e 2)
Name é o nome do arquivo, no caso do nosso exemplo portanto, a variavel sera configurada para este.

Agora, se estivermos falando de uma base de dados aonde a base ou o servidor devam ser dinamicos, é necessario uma modificação do Step 1 e 2, porem agora ao invez de buscar o nome do arquivo, é necessario buscar o servidor e a base, porem o processo de jogar em uma variavel se mantem.
Para conexões com base SQL Server, em Propriedades -> Expression temos:
Initial Catalog sera a base de dados utilizada, basta colocar aqui a variavel que contem sua base.
Server Name sera utilizado para indicar qual o servidor da conexão.

Anúncios
Post a comment or leave a trackback: Trackback URL.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: