Automatização de dados com o SSIS – Parte 1
Recursos especiais neste artigo:
Conteúdo sobre boas práticas, Artigo no estilo Curso Online.
Autores: Jean Cristian Ferreira Machado e Elton de Freitas
Neste artigo são explorados conceitos sobre o módulo SSIS presente na ferramenta BIDS (Business Intelligence Developer Studio) da empresa Microsoft. Após definições sobre os principais conceitos e aplicabilidades da ferramenta e seus componentes no artigo anterior sobre extração de dados, serão detalhados conceitos sobre a transformação de dados, a segunda fase do ETL. Por fim, teremos uma conclusão descrevendo a importância e os benefícios em conhecer a automatização da manipulação de dados no processo de ETL.
Em
que situação o tema útil
A aplicação de conceitos sobre tratamento de dados com
ETL (Extract, Transform and Load), Extração, Transformação e Carga, é
recomendada para empresas de todos os segmentos, em especial, empresas com
diversas fontes de dados, para que possam fazer o tratamento e manipulação dos
dados de forma automatizada e organizá-los para popular o seu data warehouse (armazém
de dados) ou seu datamart (repositório de dados que pode formar um data
warehouse), facilitando o processo, aumentando a produtividade e diminuindo a
margem de erro.
Atualmente a produção de informação é incessante. Além disso, inúmeras empresas possuem várias fontes de dados em diversos formatos. Para obter informações desses dados armazenados em fontes diversas, surge a necessidade de integrá-los de forma prática, ágil e produtiva.
Diversas técnicas para ordenação, agrupamento e padronização de dados podem ser utilizadas para isso. Além disso, é fundamental que este processo seja automatizado de forma a alimentar mais rapidamente a base de dados de apoio às tomadas de decisões gerenciais.
Para fins de exemplificação, foram utilizadas bases de dados de um concurso público da UFJF. As bases de dados são públicas e podem ser encontradas no site da Universidade Federal de Juiz de Fora.
No artigo anterior, foi demonstrado o processo de extração de dados, que tem como fonte arquivos no formato PDF. Os mesmos precisam ser convertidos para texto e posteriormente armazenados no banco de dados relacional. Assim, através do primeiro artigo foi possível demonstrar como realizar o processo de extração de dados (primeira fase do ETL) de forma automatizada. A ferramenta utilizada foi o BIDS, que possui o módulo SSIS que é específico para este tipo de operação.
Neste artigo será demonstrada a segunda fase do processo de ETL, a transformação dos dados. Serão realizadas diversas modificações nos dados brutos, transformando os mesmos em dados lapidados, fazendo uso novamente do SSIS. Para tanto será necessário tomar conhecimento de diversos componentes e saber suas respectivas aplicabilidades. Através das técnicas de transformação será possível separar, modificar e categorizar os dados de forma simples, rápida e automatizada.
Transformação dos dados
O processo de ETL consiste em três etapas, o foco deste artigo é a fase de transformação. Depois de realizada a fase de extração dos dados no artigo anterior, tem-se os dados dos arquivos que estavam no formato PDF carregados em tabelas dentro do banco Importa no SQL Server 2008 R2.
Os dados extraídos dos arquivos PDF estão na forma bruta, há a necessidade de realizar diversas transformações, por exemplo: retirar os cabeçalhos, separar campos, criar novas variáveis, criar novas tabelas, tratar data de nascimento entre outros. Esta fase irá gerar uma nova tabela que o usuário não terá acesso, apenas o desenvolvedor ou a equipe de desenvolvimento terá conhecimento da mesma, geralmente a mesma é conhecida como área de Stage (uma área de armazenamento temporário para os dados tratados).
Para prosseguir com o projeto, será necessário criar uma nova tabela que receberá os dados que serão retirados das tabelas importadas anteriormente. Essa tabela será chamada de tab_tratada, ela irá receber os itens tratados e separados de acordo com a relevância de cada um. O item referente à data de nascimento será do tipo date, os demais itens serão do tipo String varchar. Para realizar este procedimento deve-se executar o script contido na Listagem 1. Ele tem a função de verificar se a tabela já existi, e se existir, a mesma será removida e criada novamente.
Listagem 1. Cria a tabela tab_tratada.
USE [Importa]
IF EXISTS (SELECT * FROM sys.objects WHERE
object_id = OBJECT_ID(N'[dbo].[tab_tratada]')
AND type in (N'U'))
DROP TABLE [dbo].[tab_tratada]
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
SET ANSI_PADDING ON
CREATE TABLE [dbo].[tab_tratada](
[classificacao] [varchar](255) NULL,
[nome] [varchar](255) NULL,
[total] [varchar](255) NULL,
[ling_port] [varchar](255) NULL,
[rac_loc_quant] [varchar](255) NULL,
[legislacao] [varchar](255) NULL,
[con_esp] [varchar](255) NULL,
[pr_pratica] [varchar](255) NULL,
[cidade] [varchar](255) NULL,
[cargo] [varchar](255) NULL,
[insc] [varchar](255) NULL,
[data_nasc] [date] NULL
) ON [PRIMARY]
SET ANSI_PADDING OFF
Com o intuito de organizar melhor os dados, será utilizada a subpasta chamada scripts, que está contida na pasta devmedia, D:\devmedia\Scripts. A mesma conterá todos os scripts necessários ao projeto, então é aconselhável que tanto o script de criação do banco de dados (demonstrado no artigo anterior) quanto o script de criação da tabela tab_tratada estejam nessa pasta para que possam ser localizados facilmente.
...Confira outros conteúdos:
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.