top of page
  • Foto do escritorGabriel Quintella

SQL Server Integration Services, Trabalhando com componente Conditional Split


Fala grande amigo, pronto para mais uma aventura? Vamos iniciar o segundo post da nossa fantástica série Não Mexa Nos Meus Componentes!


Nesse tópico vamos abordar um componente chamado Conditional Split. Caso alguém pergunte qual a melhor definição para esse componente, podemos dizer que ele funciona conforme a cláusula Case e com base nos resultados, direciona a linha de dados para a saída especificada, uma espécie de filtro!


Vamos avaliar como que funciona na prática, segue comigo!


Antes de iniciar vou fazer um briefing do que iremos para realizar a importação de um arquivo...


1 - Criação de um projeto SSIS - Sempre que trabalhamos com SSIS, existe a necessidade de realizar a criação de um projeto no Visual Studio. Dentro desse projeto vamos armazenar todos os pacotes de ETL;

2 - Criação de um pacote de ETL - Quando falamos em pacotes de ETL, estamos nos referindo ao conjunto de fluxos que será usado para trafegar com a nossa informação da sua origem até seu destino;

3 - Criando/Configurando as conexões - Vamos utilizar nesse nosso projeto apenas uma conexão com o Microsoft SQL Server (Origem e Destino). Esse é o passo onde definimos as conexão;

4 - Criando nosso Fluxo de Dados

4.1 - Componentes que serão usados - Nesse primeiro exemplo, vamos trabalhar com Três componentes: Source Assistant, responsável pela conexão com a origem. Vamos aproveitar a tabela criada no post anterior, vamos usar também o componente Conditional Split pois iremos carregar apenas os dados de um determinado município e o componente Destination Assistant que será usado para definir o destino dos dados.

4.2 - Criando nosso destino dos dados (Tabela) - Vamos criar uma tabela para receber os dados;

5 - Visualizando os dados carregados - E por último, vamos visualizar como que ficaram os dados carregados em nossa tabela.


Bora parar de blá-blá-blá e começar então!


Caso você tenha criado o seu projeto no post anterior, caso não tenha lido, clique aqui, pode avançar para o item 2, caso não tenha, inicie no item 1.


1 - Criando um Projeto no SQL Server Integration Services


Vou considerar que você não tem nenhum projeto criado no Visual Studio do SQL Server Integration Service. Um ponto bem importante desse estudo é que não irei falar como que você realiza a configuração do seu ambiente, entenderei que você já tenha feito isso em outro momento.


Para criar um projeto é bem simples. Vamos abrir o Visual Studio e seguir os próximos passos.


(1) Selecionar File;

(2) New;

(3) Project;

(4) Caso tenha um projeto criado basta clicar em Open Project.



Após clicar em New Project, a tela abaixo será apresentada.


(1) Escolher Integration Services;

(2) Integration Services Project;

(3) Informar um nome para o Projeto;

(4) Definir o local (diretório) que o projeto será gerado;

(5) Informar uma nomenclatura para a sua solução;

(6) Caso queira que um diretório para o projeto seja criado basta marcar essa opção;

(7) Clicar em OK para realizar a criação;



2 - Criando nosso Pacote de ETL


Primeiro ação será a criação de um pacote do SSIS. Essa criação é bem simples, acompanha comigo.


(1) Clicar com o botão direito do mouse sobre SSIS Package;

(2) Clicar em New SSIS Package;


Além dessa possibilidade, outras ações podem ser realizadas.


  • Importar um Arquivo dtsx - basta clicar em Add Existng Package;

  • Realizar o Upgrade dos seus pacotes - basta clicar sobre Convert Deployment Model ou Upgrade All Package;

  • Realizar um Import and Export - basta clicar sobre SSIS Import and Export Wizard;

  • Ordenar seus pacotes - basta clicar em Sort by name.



Após a criação do nosso arquivo dtsx, vamos para o desenho do nosso fluxo.


(1) Nome do arquivo dtsx;


Para alterar basta clicar sobre ele e apertar o botão F4 e em file name informar o nome do seu pacote.



Ou clicar sobre o pacote e apertar F2



(2) Aba Control Flow;

(3) Inserir um componente de Data Flow Task;

(4) Realizar duplo clique ou clicar em Data Flow.



Ao clicar em Data Flow, vamos começar a brincadeira! Dessa vez vamos fazer iguais aos filmes de Hollywood começando do final. Apresento para você como que será o resultado final desse nosso trabalho (1).



Vamos trabalhar então para produzir mais esse conteúdo.


3 - Criando as Conexões


Primeiro passo será realizar a configuração das nossas conexões.


(1) Aba Connection Manage;

(2) Clicar com o botão direito do mouse e escolher New OLE DB Connection;



Na próxima tela vamos trabalhar na configuração da nossa conexão. Como estaremos trabalhando com banco de dados como origem, as informações que vamos precisar definir consistem basicamente em: Qual servidor\instância, modo de autenticação, dependendo de qual for, usuário e senha devem ser definidos e qual o banco de dados.


Vamos analisar como que fica.


(1) Na aba Connection Manager, vamos clicar com o botão direito e selecionar New OLE DB Connection Manager. Na tela que será apresentada, vamos clicar em New;

(2) Selecionar Native OLE DB\SQL Server Native Client 11.0;

(3) Informar o nome do servidor\instância;

(4) Selecionar o método de conexão;

(5) Selecionar o banco de dados. Clicando na setinha pra baixo é possível visualizar todos os bancos existentes em nosso servidor;

(6) Clicar em Test Connection para validar a conexão (Sempre comento que esse passo é desnecessário, pois ela já foi validada no passo anterior);

(7) Clicar em OK para finalizar.



Como a origem e o destino do nosso fluxo será o mesmo servidor\instância e banco, não existe a necessidade de criar uma outra conexão para o destino.


Vamos avançar para a criação do fluxo da informação.


4 - Criando o Fluxo de Dados


Na aba Control Flow, vamos seguir os seguintes passos da imagem abaixo.


(0) Podemos observar que a conexão criada está configurada e disponível;

(1) Em SSIS Toolbox vamos selecionar o componente Data Flow Task;

(2) Sobre o componente Data Flow Task, vamos clicar com o botão direito;

(3) Clicar em Rename.





Vou deixar nesse momento uma dica muito importante! Sempre que construir seu fluxo de ETL, POR FAVOR, de um nome para cada passo, parece um ato simples, mais na hora que ocorre um erro, você não imagina como que ajuda na análise!




Bora avançar!



Na próxima tela conseguimos visualizar o esqueleto (1) do nosso motor.





Os próximos 3 passos constituem na configuração dos três componentes que iremos utilizar: Source Assistante, Conditional Split e Destination Assistant.


4.1 - Configurando o Componente Source Assistant


Conforme imagem anterior, vamos fazer uso de 3 componentes! Um para a nossa origem de dados, uma para o destino dos dados e um que permite que façamos a definição do fluxo, ou seja, ele é o objetivo desse post.


Vamos analisar a próxima tela...


(1) Em SSIS Toolbox, vamos selecionar o componente Source Assistant;

(2) Feito isso a tela ao centro será carregada;

(3) Como nossa origem será um arquivo, vamos selecionar SQL Server;

(4) Selecionar a conexão que criamos;

(5) Observe que algumas informações referente a origem dos dados é apresentada;

(6) Clicar em OK para confirmar.



Após a inclusão do componente de Source, o próximo passo é selecionar de onde (em nosso caso uma tabela) os dados deverão ser carregados.


(1) Clicar duas vezes sobre o componente OLE DB Source;

(2) Na aba Connection Manager;

(3) Selecionar a conexão que criamos anteriormente;

(4) Nesse passo também é possível realizar a criação de uma nova conexão;

(5) Nesse ponto podemos selecionar se a nossa origem será uma table ou view, caso escolha, no passo seguinte você deverá selecionar em uma lista qual a origem e também pode ser selecionado um script, caso seja escolhida essa opção, no passo seguinte você deverá informar o script de consulta;

(6) Selecionar a origem, dependendo da escolha no passo (5), pode ser ou tabela ou script;

(7) É possível visualizar uma prévia dos dados;

(8) E clicar em OK para finalizar.



Agora vamos configurar a nossa cereja do bolo.


4.2 - Configurando o Componente Conditional Split


Esse post é dedicado ao componente Conditional Split. Caso alguém lhe pergunte para que esse componente serve, você pode falar que ele trabalha igual a um filtro ou como falamos no inicio do post, ele também apresenta o comportamento de um Case.


Observe a imagem abaixo.


(1) Nesse passo podemos selecionar uma variável ou parâmetro e até mesmo selecionar uma coluna definida em nosso Source;

(2) Configuração do nosso filtro;

(2.1) É possível nomear um fluxo;

(2.2) Regra que é aplicada;

(3) Por default, o SSIS define que pode ter um fluxo que não atende a sua regra, você pode definir ele ou deixar da forma que está;

(4) Podemos definir algum fluxo caso ocorra algum erro durante a aplicação da regra definida;

(5) Caso esteja tudo certo, basta clicar em OK para finalizar.



Agora vamos fazer a inclusão do nosso Destination.


4.3 - Configurando o Componente Destination Assistant


Bora partir agora para configurar o destino dos nossos dados. O objetivo do nosso post é realizar uma carga de todos os cargos existentes para o município Capixaba.


Antes de iniciar a configuração do Destino, vamos criar a nossa tabela.



CREATE TABLE [dbo].[cargo](
	[CD_CARGO] [varchar](200) NULL,
	[DS_CARGO] [varchar](200) NULL
) 
GO

Pronto, tabela criada, vamos prosseguir para a configuração do Destino. Acompanhe na tela abaixo os passos que vamos precisar seguir.


(1) Em SSIS Toolbox, vamos selecionar o componente Destination Assistant;

(2) Feito isso a tela ao centro será carregada;

(3) Como nossa origem será um arquivo, vamos selecionar SQL Server;

(4) Selecionar a conexão que criamos;

(5) Observe que algumas informações referente ao destino do arquivo é apresentada;

(6) Clicar em OK para confirmar.



Depois da criação do nosso de filtragem, vamos associa-lo ao nosso processo.


(1) Nosso fluxo;

(2) Quando "ligamos" os dois pontos, uma tela é apresentada para que possamos selecionar como que será feito;

(3) Vamos clicar na setinha pra baixo e selecionar o fluxo "Filtra Município";

(4) Clicar em OK;



Um outro passo importante, é que podemos visualizar os dados durante o processo de carga.


Para tal, vamos ver como que realizamos isso com o auxilio do componente Data Viewer.


(1) Nosso fluxo;

(2) Clicar com o botão direito sobre a linha e selecionar Data Viewer;

(3) Na próxima tela, vamos clicar na aba Data Viewer;

(4) Clicar em Enable data viewer;

(5) Selecionar as colunas que precisamos visualizar;

(6) Clicar em OK para finalizar.



Da mesma forma que no Source selecionamos a origem da informação, nesse passo vamos selecionar o nosso Destino.


(1) Duplo clique no componente OLE DB Destination;

(2) Na aba Connection Manager;

(3) Selecionar a conexão com o banco de dados;

(4) Nesse passo é possível realizar a criação de uma nova conexão;

(5) Selecionar o modo de carga de dados;

(6) Selecionar em qual tabela os dados serão gravados;

(7) É possível criar uma tabela caso não exista;

(8) Podemos visualizar se existe algum registros em nosso destino;

(9) Clicar em OK para finalizar a configuração.



O próximo passo é realizar o mapeamento da origem com o destino.


(1) Componente OLE DB Destination;

(2) Na aba Mappings;

(3) Origem e destino;

(4) Origem dos dados;

(5) Destino dos dados;

(6) Colunas da origem e destino;

(7) Clicar em OK para confirmar.



Para finalizar nossa configuração, vamos incluir um componente que será usado por limpar sempre o nosso destino antes da carga.


4.4 - Configurando o Componente Execute SQL Task


Vamos voltar em nossa aba Control Flow. Esse componente que estaremos incluindo será responsável por limpar a nossa tabela sempre antes da carga.


Isso não é uma boa prática, mais para apresentar o componente seguiremos dessa forma. Mais a frente quando abordarmos o componente Lookup, você conseguirá visualizar outra forma de abordagem.


(1) Clicar na aba Control Flow, depois clicar em SSIS Toolbox e selecionar o componente Execute SQL Task;

(2) Nome do componente;

(3) Nesse passo vamos configurar apenas a aba General do componente Execute SQL Task;

(4) Informar o nome desse passo dentro do nosso fluxo;

(5) Selecionar a conexão, vamos usar a que criamos anteriormente;

(6) Incluir um script de TRUNCATE TABLE;

(7) Clicar em OK para finalizar.



Vamos testar nosso fluxo.


(1) Fluxo em execução;

(2) Data Viewer;

(3) Prévia dos dados capturados pelo Data Viewer.



Pronto, configuração realizada, fluxo testado, vamos agora visualizar os dados carregados na tabela.


(1) Fluxo dos dados;

(2) Vamos conectar em nosso servidor;

(3) Selecionar nosso banco de dados;

(4) Tabela em que os dados foram carregados;

(5) Comando de consulta dos dados.





5 - Conclusão


Bem meu amigo, chegamos no final de mais um post, o segundo passo da nossa grande série.


Conseguimos com isso trazer para você mais um componente e apresentar tanto a sua configuração e a sua aplicabilidade. O componente Conditional Split é bem simples, muito útil e bastante usado dentro de um fluxo de dados.


Podemos utilizar ele para definir regras, usando como se fosse um CASE WHEN e também podemos usá-lo para filtrar registros, exemplo do nosso post, onde carregamos apenas registros de um determinado município.


Espero que tenha gostado e aguardo você no próximo...


Grande abraços e fique com Deus!

64 visualizações0 comentário

Posts recentes

Ver tudo

Comments


bottom of page