Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo

O artigo descreve as ferramentas nativas de ETL disponíveis no SQL Server 2008.


Para que serve

Melhor aproveitamento dos recursos nativos do SQL Server para fins de extração, transformação e carga de dados.


Em que situação o tema é útil

Na distribuição de dados em diversos ambientes, muito utilizado nas cargas de dados para Data Warehouse.

Os processos de Extração, Transformação e Carga (ETL, do inglês Extract Transform Load) são muito comuns em diversos cenários corporativos. Esses processos podem auxiliar as cargas de Data Warehouse, assim como integrações entre aplicações de plataformas homogêneas ou heterogêneas.

O objetivo deste artigo é falar sobre as ferramentas disponíveis no SQL Server 2008 para Extração, Transformação e Carga de dados, incluindo o SQL Server Integration Services, que é um dos pilares do pacote de Business Intelligence do SQL Server.

Extract, Transform, Load (ETL)

A expressão mais conhecida para Extração, Transformação e Carga de dados é a sigla ETL, que do idioma inglês desmembra-se como Extract, Transform, Load, em uma tradução literal para Extração, Transformação e Carga. Essas três atividades são por muitas vezes as mais trabalhosas de um administrador de Data Warehouse, e é onde este profissional deterá maior dedicação e cuidado.

Conceituando cada uma das etapas:

Extração: responsável pela aquisição dos dados de origem. Na maior parte das vezes essa origem é heterogênea e são definidas como registros que existem em muitos formatos e localizações diferentes. Os tipos de entrada de dados podem ser os mais variados possíveis, por exemplo: arquivos XML (Extensible Markup Language), arquivos CSV (Comma Separated Values), SGBDs (Sistema Gerenciador de Banco de Dados) e etc.

Transformação: determina a padronização dos dados. Nesta etapa, ocorrem à validação da integridade dos dados e a sua transformação. É também nessa fase que determinamos os campos e valores obrigatórios para o destino.

Carga: a última etapa e a mais delicada para o processamento, pois é nessa etapa que os dados são efetivados no destino.

Por que usar uma ferramenta de ETL de mercado

Por muitos anos, as modelagens de Data Warehouses têm sido feitas usando uma variedade de ferramentas, desde softwares para modelagem de DER (Diagrama de Entidade e Relacionamento), até projetos de softwares desenvolvidos com o esforço de inúmeros desenvolvedores.

Quando falamos de ETL e projetos desenvolvidos por profissionais não especializados nos recursos dos bancos de dados envolvidos, estamos falando de um risco eminente para o projeto. Falamos de sobrecargas de processamento, má utilização dos tipos de dados e até mesmo de um alto custo de desenvolvimento.

O motivo pelo qual é melhor adquirir uma ferramenta de ETL pronta, desenvolvida por uma equipe especializada, é que não precisamos investir um conhecimento e um esforço imenso em especialização de cada origem e destino dos dados que podemos ter para um Data Warehouse.

O SQL Server Integration Services, que veremos na continuidade deste artigo, tem uma vantagem para quem já possui um ambiente baseado no SQL Server, visto que o custo já está na licença do SQL Server e não é necessário adquirir ferramentas de terceiros.

Outro fator que deve ser levado em consideração na hora da escolha é que o Integration Services possui nativamente a sua integração aos componentes de Business Intelligence do SQL Server. Além disto, este utiliza como camada de desenvolvimento o .NET Framework, o que nos permite a escolha entre desenvolver nas linguagens Visual Basic .NET ou C#.

A partir de agora iremos começar a descrever ferramentas que apoiam atividades ETL em bancos de dados no SQL Server.

Bulk Copy Program (BCP)

O Bulk Copy Program (BCP) é um software de linha de comando. Por esta característica, este software não possui interface gráfica ao usuário (GUI). Contudo, é uma ótima alternativa em relação ao DTSWizard, que veremos mais adiante.

Este é um dos utilitários mais antigos do SQL Server. Este software tem sido utilizado pelo menos desde a versão 6.0 do SQL Server, e até hoje é parte integrante do pacote de produtos distribuídos pela Microsoft.

Este software é avaliado por muitos, incluindo o autor deste artigo, como um dos utilitários favoritos para importação e exportação de dados, visto que seu desempenho é muito bom e o consumo de memória é baixo.

Porém, construir rotinas de transformação de dados utilizando o BCP não é uma das tarefas mais fáceis que existem. Sendo assim, para quem necessita de uma interface gráfica, podem ser recomendados o uso do SQL Server Import and Export Wizard ou o SQL Server Integration Services.

Importante ater-se ao detalhe que dados gravados pelo BCP estão no formato ODBC, ou seja, um tipo datetime terá o formato “yyyymmdd hh:mm:ss”, ou um tipo Money não conterá virgula com quatro dígitos depois da parte decimal. Outro detalhe importante é em relação às colunas computadas, pois essas não serão importadas. Para tratar essa situação, será necessário tratar no arquivo de origem ou destino.

Parâmetros e opções do Bulk Copy Program

O BCP possui uma extensa relação de parâmetros. Além desses parâmetros serem case sensitive, a ordem de posição dos mesmos pode influenciar na execução do comando. A Tabela 1 contém um resumo dos parâmetros do comando BCP.

Parâmetro

Descrição ...

Quer ler esse conteúdo completo? Tenha acesso completo