Esse artigo faz parte da revista SQL Magazine edição 48. Clique aqui para ler todos os artigos desta edição

img

 

SQL Server

Microsoft SQL SERVER 2005 – Integration Services

Construindo pacotes SSIS

 

As rotinas de ETL (Extract/Transform/Load ou ETL) definem, dentro de um mesmo ambiente, ações heterogêneas envolvendo operações de banco de dados, operações com scripts, importação/exportação de arquivos, operações envolvendo o sistema operacional, ações de FTP, envio de mensagens por email, entre outras opções. Tudo isso estruturado dentro de um fluxo de trabalho.

Chamamos de pacotes os “programas” que definem e contêm estas ações e o fluxo de trabalho correspondente.

Para ilustrar, imagine que precisemos ter um pacote para executar um backup no banco de dados, rodar um script VB para validação, exportar uma consulta em formato de planilha, enviar a planilha para um servidor FTP e mover arquivos de um diretório para outro. As ações são realizadas nesta seqüência e, caso alguma operação falhe, o processo será abortado e o pacote enviará um e-mail e um pager para o DBA de plantão.

A ferramenta que a família SQL Server 2005 oferece para construir e administrar rotinas como a que descrevemos acima é o SQL Server Integration Services 2005, conhecido pela sigla SSIS.

Neste artigo exploramos aspectos básicos da operação do SSIS e os conceitos relacionados à criação de pacotes.

Novo enfoque sobre ETL

O SSIS é um serviço independente do SQL Server. A intenção é oferecer um ambiente robusto para gerenciamento, agendamento e execução dos pacotes. Falaremos sobre a criação dos pacotes logo a seguir.

A Figura 1, extraída do SQL Server 2005 Books Online, mostra a integração do SSIS com outros componentes da suíte 2005.

 

img

Figura 1. Comunicação entre os componentes da suíte SQL SERVER 2005.

 

Consequentemente, o SSIS se tornou uma das opções do processo de instalação da suíte SQL Server 2005. A propósito, este serviço está disponível em todas as versões pagas do SQL Server.

Outro aspecto é que o DTS (versão anterior do SSIS) nos oferecia a possibilidade de armazenar um pacote no banco de dados MSDB ou então como um arquivo independente. No SSIS também temos estas duas opções, mas com uma vantagem adicional. Agora podemos ter pacotes locais e pacotes remotos. Em outras palavras, podemos também nos conectar ao SSIS em outros servidores e executar pacotes nele armazenados.

O ambiente de desenvolvimento também mudou. Antigamente, o DTS oferecia uma ferramenta de desenvolvimento dentro do Enterprise Manager, mas o SQL 2005 usa uma filosofia diferente. O Management Studio não oferece nenhum recurso referente à criação de pacotes SSIS. É necessário usar o Business Intelligence Development Studio, que chamamos aqui de BI Studio.

O BI Studio oferece total integração com a plataforma de desenvolvimento .Net , mas o fato é que o BI Studio requer um processo de instalação próprio, independente da instalação default do SQL Server 2005 ou do Visual Studio 2005. Este é um ponto que causa muita confusão para o desenvolvedor iniciante.

Outra questão que eu considero importante é que, quando executado, nenhuma tela do BI Studio mostra o seu nome, mas sim “Visual Studio”!

O processo de criação dos pacotes é outra novidade. O novo processo é separado em Control Flow e Data Flow. Esta divisão ajuda muito na organização das tarefas. Tudo o que diz respeito à importação e à exportação dos dados é agora detalhado na aba Data Flow. E o controle de fluxo dos dados é feito na aba Control Flow, como diz o próprio nome. A Figura 2 mostra a aba Control Flow de um pacote simples.

 

img

Figura 2. Apresentação da tela de desenvolvimento dos pacotes SSIS.

 

Para o desenvolvedor habituado com o DTS, a tela de desenvolvimento dos pacotes SSIS parece um tanto confusa à primeira vista. No entanto, o desenvolvedor .NET verá que esta interface mantém o padrão visual do Visual Studio, o que facilita bastante o aprendizado.

Mas nem tudo são flores. A operação de algumas tarefas ainda deixa a desejar, seja em questão de performance ou pela existência de bugs.

 Veremos a seguir detalhes sobre o processo de criação de um pacote SSIS.

Definindo os passos do pacote SSIS

O pacote que criaremos executa uma série de ações. No nosso exemplo, temos uma base de dados do SQL Server de nome “Farmaceutico”, que deve ser atualizada mensalmente através da importação de um arquivo em formato texto.

Todos os passos executados pelo nosso pacote, bem como o fluxo de trabalho, são exibidos a seguir:

1.      Importar arquivo “C:\IMPORTACAO\Demanda.CSV” para a tabela tblImportacao na base de dados “Farmaceutico" da instância “SQL2005” do servidor “WCriveliniTP”. (Veja que aqui temos a definição completa para localização do objeto, acompanhando o padrão  Servidor\Instancia.BaseDeDados.Esquema.Tabela”).

2.      Execução de um procedimento armazenado para validação das informações e transferência dos dados para as tabelas de produção. Os registros rejeitados durante a validação serão movidos para uma tabela de erros (“tblInconsistencia”), acrescentando-se ao registro a razão de sua rejeição.

3.      Registros da tabela de inconsistências serão exportados para um arquivo (“C:\IMPORTACAO\Erro\Inconsistencia.CSV”).

...

Quer ler esse conteúdo completo? Tenha acesso completo