Automatização de dados com o SSIS - Revista SQL Magazine 107

O artigo descreve conceitos fundamentais e exemplos bem simples sobre o tema Automatização da Extração de Dados com o Integration Services.

Artigo do tipo Tutorial
Recursos especiais neste artigo:
Contém nota Quickupdate, Conteúdo sobre boas práticas.
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 Integration Services (SSIS) presente na ferramenta Business Intelligence Development Studio (BIDS) da empresa Microsoft. Após definições sobre os principais conceitos e aplicabilidades da ferramenta e seus componentes, são detalhados conceitos da extração de dados, a primeira fase do ETL. Por fim, é feita uma conclusão descrevendo a importância e os benefícios em conhecer a automatização da extração de dados no processo de ETL.

Em que situação o tema é útil
A aplicação de conceitos de extração do processo de ETL (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 recebimento e carregamento de dados de forma automatizada e popule o seu armazém de dados (data warehouse) ou datamart, facilitando o processo, aumentando a produtividade e diminuindo a margem de erro.

Atualmente vivemos em uma era onde a produção de informação é constante, diversas empresas possuem muitas fontes de dados nos mais diversos formatos. Mediante tal situação surge a necessidade de integrá-los de forma rápida, prática e produtiva.

Trabalhar com dados de diferentes fontes e formatos pode ser uma tarefa complicada, principalmente quando há necessidade de integrá-los para utilizá-los como uma única base de consulta.

Saber automatizar este processo é de vital importância para as empresas, pois há um grande ganho de tempo nas consultas e obtenção das informações que por sua vez são importantes nas tomadas de decisões gerenciais.

Neste artigo apresentaremos na prática o uso da extração de dados. O projeto foi desenvolvido a partir de uma necessidade real de uma empresa. O mesmo resolveu o problema de recebimento de informações que chegavam de forma manual, aumentou a produtividade e demonstrou-se muito eficaz.

Para tanto, será demonstrado como realizar o processo de extração de forma automatizada. Será utilizada a ferramenta BIDS que possui o módulo SSIS, específico para este tipo de operação.

Para fins de ilustração, foram utilizadas bases de dados de um concurso público da Universidade Federal de Juiz de Fora (UFJF) e seus resultados foram divulgados em formato PDF, conforme cargo e localidade. As bases de dados são públicas e podem ser encontradas no site da Universidade Federal de Juiz de Fora, o caminho pode ser obtido no endereço indicado na seção Links.

Para que o processo possa ser feito corretamente, depois de baixar todos os arquivos, deverão ser retirados todos os seus acentos e caracteres especiais (ç) e incluir um adendo ao final do nome do arquivo que irá referenciar a cidade que o candidato escolheu para concorrer ao cargo. Para a cidade de Juiz de Fora, os arquivos receberam “_jf” e para a cidade de Governador Valadares “_gv”. Isso foi feito devido ao fato de que o nome do arquivo será o nome da tabela que irá abrigar os dados.

Conceitos iniciais sobre o Integration Services

O SSIS é parte integrante do BIDS desde o SQL Server 2005. No SQL Server 2008 R2 é encontrado a partir da versão Standard, que permite trabalhar com os conceitos de ETL nos dados a partir de uma fonte de dados qualquer para outra qualquer, mesmo que sejam distintas.

O uso do SSIS vem para solucionar problemas de integração de dados complexos, com a finalidade de copiar ou baixar arquivos, enviar mensagens de e-mail em resposta a eventos, atualizar data warehouses ou datamarts, fazer limpeza, mineração e gerenciamento de dados do SQL Server.

Os pacotes podem funcionar sozinhos ou integrados ao gerenciador de tarefas do SQL Server para resolver necessidades complexas de tratamento de dados. O SSIS pode manipular uma ampla variedade de fontes de dados, como arquivos XML, arquivos TXT, CSV, RAW e fontes de dados de bancos relacionais e transferir dados para um ou mais destinos.

O SSIS inclui um conjunto variado de tarefas e componentes para extração, transformação e carga de dados contidos em pacotes de manipulação de dados. Pode-se usar as ferramentas gráficas do SSIS para criar soluções sem utilizar uma única linha de código, ou pode-se fazer uso de scripts que trabalham com SQL e as linguagens de programação VB.Net e C#.

Passo inicial

Para seguir em frente é necessário que o SQL Server 2008 R2 esteja instalado e configurado adequadamente na máquina em que será feito o projeto de integração de dados.

Outro item necessário é criar uma pasta para receber e guardar os arquivos do projeto, se possível numa segunda unidade do disco rígido, caso a mesma exista. No exemplo será usada a unidade D, de acordo com a configuração da máquina do usuário pode ser E ou F. Caso ocorra algum problema de segurança se a pasta for criada diretamente na unidade C, é bom assegurar que esse tipo de questão não prejudique o funcionamento do projeto, então é necessário ajustar as propriedades de segurança da unidade C caso seja necessário.

Na unidade escolhida para se trabalhar, deve-se criar a pasta devmedia e a subpasta SSIS, provavelmente o seu caminho ficará da seguinte forma: D:\devmedia\SSIS. Também é necessário criar uma pasta dentro de devmedia com o nome de Scripts que irá conter o script necessário para criar o banco que vai receber os dados. Crie também uma pasta chamada database para conter o banco de dados.

Criadas as pastas, agora é necessário criar o banco de dados no SQL Server para armazenar os dados que serão obtidos nos arquivos PDF. Tal banco será criado a partir do script contido na Listagem 1. Copie o código para o SQL Server, atualize a unidade de trabalho contida no script e depois salve-o dentro de D:\devmedia\Scripts.

Listagem 1. Cria o banco de dados Importa.

USE master GO CREATE DATABASE Importa ON ( NAME = Importa_dat, --Atualizar a unidade abaixo de acordo com a que --está sendo trabalhada FILENAME='D:\devmedia\database\importadat.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON ( NAME ='Importa_log', --Atualizar a unidade abaixo de acordo com a que --está sendo trabalhada FILENAME='D:\devmedia\database\importalog.mdf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ) GO " [...] continue lendo...

Artigos relacionados