top of page
  • Foto do escritorGabriel Quintella

SQL Server Integration Services, Trabalhando com componente Data Conversion

Atualizado: 21 de nov. de 2021

Fala grande amigo, espero que esteja bem! É com grande satisfação que trago no dia de hoje a terceira parte da nossa fantástica série Não Mexa Nos Meus Componentes!


Durante o processo de carga de dados, muita coisa acontece. Alguns dados são tratados e modificados, outros são descartados, tudo vai depender muito do contexto do seu fluxo de dados.


Dando um passo atrás e voltando no que foi comentado, imagina que durante etapa de transformação exista a necessidade de converter um dado que na origem veio como String para um datatype numérico, chuchu beleza, muito fácil!


Pois bem nesse post, trago para ti um componente do SSIS chamado Data Conversion. Sem tirar nem por, o seu objetivo é converter dados, alterar datatypes! Tá bom, já sei, existe outras formas, concordo e entendo você caso esteja pensando por exemplo no componente Derived Column ou até mesmo no Script Componente, combinando por exemplo com C#. Você está com 110% de razão, mais nesse momento vamos abordar como podemos realizar essa atividade com o Data Conversion, os demais serão abordados mais a frente! Acompanha comigo aqui!


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


Como de praxe, venho praticado isso nos outros posts, antes de iniciar preciso fazer um briefing de como iremos trabalhar. Os passos são quase os mesmos, o que vai mudar em resumo são os componentes.


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, caso tenha criado nos posts anteriores, pode utilizar sem problemas, porém caso não tenha trate de criar pois é um item obrigatório! 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. Recomento que caso esteja acompanhando nossa série, crie um pacote para cada item, fica mais fácil o entendimento;

3 - Criando/Configurando as conexões - Vamos utilizar nesse nosso post duas conexões. A conexão para o Source será do tipo Flat File pois iremos consumir um arquivo CSV e a do Destination, será com o Microsoft SQL Server, pois vamos gravar o resultado da nossa carga dentro de uma tabela. 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 importar um arquivo CSV, iremos usar também o componente Data Conversion pois vamos converter a coluna QT_VAGAS que está como String para Inteiro e por último 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.


Bora começar então!


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 Flat File Connection;



Após selecionar esse tipo de conexão, vamos partir para configuração.


(1) Informar um nome para a conexão;

(2) Primeira configuração será na aba General;

(3) Selecionar o local onde está o nosso arquivo;

(4) Configurações referente ao nosso arquivo (Se ele é delimitado ou não, se possui um qualificador de texto, se a primeira linha do arquivo contém ou não o cabeçalho das colunas etc);

(4) Clicar em OK para confirmar.



Agora vamos para outra aba.


(1) O nome que você informou na tela anterior é carregado em todas as abas seguintes, não precisa informar;

(2) Vamos configurar a aba Columns;

(3) Selecionar o delimitador de linhas;

(4) Selecionar o delimitador de colunas;

(5) Uma prévia dos dados. Observe que o cabeçalho foi carregado pois na tela anterior informamos que a primeira linha do arquivo contém o cabeçalho;

(6) Caso nenhuma configuração a mais precise ser feita, podemos concluir a configuração clicando em OK.



Seguindo na configuração do nosso Source...


(1) O nome que você informou na tela anterior é carregado em todas as abas seguintes, não precisa informar;

(2) Vamos configurar a aba Advanced;

(3) Nome da colunas;

(4) Nesse passo conseguimos visualizar informações referente ao nome da coluna, datatype, tamanho, tudo isso pode ser alterado;

(5) Nesse ponto é possível incluir ou eliminar uma coluna;

(6) Caso nenhuma configuração a mais precise ser feita, podemos concluir a configuração clicando em OK.



Agora vamos para o último ponto da configuração. Na aba Preview como o próprio nome diz, é uma prévia dos dados e além disso você pode também definir a quantidade de linhas que serão descartadas.


(1) O nome que você informou na tela anterior é carregado em todas as abas seguintes, não precisa informar;

(2) Vamos configurar a aba Advanced;

(3) Podemos definir a quantidade de linhas que serão descartadas;

(4) Prévia dos dados;

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



A próxima configuração será referente ao nosso destino, ou seja, onde os dados serão gravados.


Como destino, escolhemos o Microsoft SQL Server, é bem simples esse ponto, realizamos esse procedimento nos outros posts, acompanha comigo aqui...


(1) Na aba Connection Manager, vamos clicar com o botão direito e selecionar 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 autenticaçã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.



Conexões criadas com sucesso, vamos avançar na construção do nosso fluxo de dados;


4 - Criando o Fluxo de Dados


Na aba Control Flow, vamos selecionar seguir os seguintes passos.


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

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

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

(3) Clicar em Rename.



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



Pronto, agora vamos selecionar os componentes que iremos utilizar.


Como o foco do nosso post é abordar o componente Data Conversion, estaremos usando como origem das informações um arquivo CSV, para conexão vamos usar o componente Source Assistant e selecionar a opção Flat File Connection, estaremos usando o componente Data Conversion para converter a coluna QT_VAGAS para um inteiro e utilizaremos o Destionation Assistant combinado com o OLE DB Conncetion para estabelecer uma conexão com o Microsoft SQL Server.


Vamos avançar e visualizar como que será tranquilo esse fluxo.


4.1 - Configurando o Componente Source Assistant


Na próxima tela vamos selecionar na nossa paleta o componente Source Assistant. Veja como que fica a configuração.


(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 Flat File;

(4) Selecionar a conexão que criamos;

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

(6) Clicar em OK para confirmar.



E agora a nossa cereja do bolo. Vamos falar um pouco de como podemos trabalhar com esse componente fantástico chamado Data Conversion.


4.2 - Configurando o Componente Data Conversion


O nosso querido componente ele terá o mesmo comportamento do comando Cast ou Convert, isso mesmo, caso exista em seu fluxo a necessidade de converter alguma coluna, essa ação deverá ser feita no componente Data Conversion, mais ela também pode ser feita com o auxilio do componente Derived Column, mais calma ai, esse componente será abordado em outro fórum, segura ai a marimba e controle a ansiedade!


Na paleta SSIS Toolbox, você irá selecionar o componente e inclui-lo no seu fluxo. Após isso siga os passos abaixo.


(1) Duplo clique no componente;

(2) Selecionar qual coluna estaremos utilizando para a conversão;

(3) Coluna selecionada. Na coluna Input Column é o nome da coluna no Source, Output Alias é o nome que ela irá receber pois é realizada a criação de uma nova coluna nesse processo e em Data Type é onde selecionamos o novo data type dessa coluna;

(4) Podemos definir algum fluxo caso ocorra algum erro durante a aplicação da regra definida (mais a frente em outro post esse ponto será abordado);

(5) E caso esteja tudo OK, basta clicar para finalizar.



Agora vamos fazer a inclusão do nosso Destination.


4.3 - Configurando o Componente Destination Assistant


De mesmo modo, na paleta SSIS Toolbox vamos selecionar o nosso componente Destination Assistant e após isso seguir os próximos passos...


(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.



Dando continuação na configuração, o próximo passo é realizar o mapeamento das colunas em nosso Destination, acompanha comigo...


(1) Após dois cliques no componente Destination, uma tela semelhante a de baixo será carregada, vamos clicar em Mappings;

(2) A origem e destino serão apresentadas;

(3) Origem dos dados;

(4) Destino dos dados;

(5) Alterei o mapeamento para carregar as colunas criadas no passo anterior

(6) Clicar em OK para finalizar.


Observem que quando clicamos na aba Mappings, as colunas já serão carregadas com o mapeamento feito. Isso ocorre justamente porque por default, o mapeamento é feito sempre por igualdade de nome. Mais ele pode ser alterado a qualquer momento.



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 dar um passo atrás e retornar em nosso Control Flow, para fazer isso basta clicar na aba acima e seguir os passos abaixo...


(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.



Pronto, configuração realizada, vamos agora executar e visualizar os dados.


(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


Muito bem amigão! Fechamos aqui o terceiro post da nossa fantástica série. Fico muito feliz por estar conseguindo trazer para você um pouco do que aprendi ao longo da minha carreira profissional.


Nesse post conseguimos visualizar como que é possível tratar dados, melhor dizendo, como converter o seu tipo (datatype) para um outro.


No próximo post vamos abordar um componente chamado Derived Column, esse sim dá pra fazer bastante coisa. Conseguimos criar um nova coluna, limpar um dado (retirar espaços, caracteres indesejados), pegar apenas um pedaço de uma informação, combinar duas ou mais colunas, em resumo, não perca o próximo post de terça, será fantástico!


Um excelente dia e fique com Deus!


Ah qualquer dúvida pode mandar, terei o maior prazer em responder!

84 visualizações0 comentário

Posts recentes

Ver tudo

Comments


bottom of page