Artigo do tipo Tutorial
Recursos especiais neste artigo:
Conteúdo sobre boas práticas, Artigo no estilo Curso Online.
Autores: Jean Cristian Ferreira Machado e Elton de Freitas

Automatização de dados com o SSIS
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.

...

Quer ler esse conteúdo completo? Tenha acesso completo