Data Warehouse ETL Rodrigo Leite Durães rodrigo_l_d@yahoo.com.br
Introdução Um dos desafios da implantação de um DW é a integração dos dados de fontes heterogêneas e complexas, padronizando informações, mantendo sua consistência. A maioria dos projetos gasta a maior parte do tempo e dos esforços nessa fase. O sucesso do DW depende, em grande parte, da eficiência e eficácia do processo de ETC. Nesse processo há necessidade de criar as rotinas de extração dos dados que podem ser desenvolvidas por programadores em qualquer linguagem de programação ou pode-se utilizar ferramentas específicas para isso.
Visão Geral Essas ferramentas proporciona mais produtividade e qualidade ao processo de integração. Para que a integração de dados seja bem sucedida, é preciso escolher uma ferramenta que ofereça funcionalidades capazes de atender os requisitos do processo de ETC. Assim, para escolher a ferramenta adequada, é necessário verificar suas principais características e recursos, fazendo um comparativo entre as opções disponíveis para identificar aquela que melhor atende às necessidades do processo de ETC. É um processo trabalhoso, complexo e detalhado, mesmo com o auxílio das ferramentas de ETC disponíveis hoje em dia.
ETC Primeiramente são definidas as fontes de dados e realizada a extração, que consiste em coletar os dados das diversas fontes em diferentes plataformas. O segundo passo consiste em limpar e transformar esses dados. Com isso são eliminadas as inconsistências e realizada a padronização dos dados para garantir que o DW possuirá informações válidas, úteis e significativas. Após garantir a consistência, pode-se carregar os dados no DW. Assim, para possibilitar maior produtividade, evitando atrasos e re-trabalho, o ideal é determinar o melhor caminho para o transporte dos dados fontes para o DW antes de iniciar a construção das rotinas de ETC. Para fazer a melhor escolha, deve-se priorizar os requisitos do processo de ETC e selecionar a ferramenta que fornece a maioria deles.
ETC Para isso, é necessário realizar o projeto ETL do DW, analisar os dados fontes, identificar os mapeamentos de dados, obter ou criar os dados externos, determinar a lógica de conversão dos dados e especificar as rotinas de ETC. Existem sistemas que são programados para detectar automaticamente a ocorrência de mudanças significativas nas fontes, tornando o processo de atualização mais transparente para o usuário. Alterar a aplicação que gerencia a fonte de informação a fim de enviar notificações de alteração para o DW. Detectar modificações através da comparação dos registros correntes da fonte com os registros carregados anteriormente. À medida que os dados das fontes aumentam, o número de comparações deve aumentar, o que pode inviabilizar o processo.
ETC Uma estratégia p/ não inviabilizar é utilizar, também, o limite de data. Analisar o arquivo de log do sistema procurando por modificações significativas. Antes de publicar os dados, é necessário avaliar a integridade da carga. Se a carga estiver correta os dados são disponibilizados para os usuários. Caso o processo de carga esteja incompleto ou haja dados violados toda a carga deve ser executada novamente.
ETC Há soluções com custo zero de aquisição pois vêm embutidas em um SGBD, como por exemplo o PL/SQL no Oracle e o DTS no SQL Server. Tais recursos podem ser utilizados para realizar o ETC, mas podem ser limitados exigindo uma maior codificação dos processos. Além disso, podem ser restritas, já que geralmente fornecem suporte apenas ao SGBD que acompanham, enquanto as ferramentas ETC completas podem fornecer suporte a diversos tipos de arquivos e SGBDs.
ETC As ferramentas ETC próprias, desenvolvidas utilizando alguma linguagem de programação, apesar de atender às necessidades, podem tornar o processo de manutenção dos procedimentos ETC muito complexo. Além disso, caso o processo de transformação e limpeza seja complexo, pode haver perda de performance com o uso de linguagens procedurais. Os produtos de mercado podem variar de ferramentas mais simples e baratas até ferramentas completas, robustas e mais caras. Essas ferramentas permitem maior produtividade na criação e manutenção do processo ETC, fornecem métodos de captura/integração de metadados, permitem documentação do projeto e dos processos, pode fornecer interface gráfica para o desenvolvedor permitindo edição, verificação de sintaxe, acesso aos SGBDs, além de proporcionar segurança e organização do projeto tipicamente a partir de um único ponto de acesso.
Tipos de ferramentas As ferramentas encontradas tipicamente podem ser instaladas no servidor ou no cliente. As ferramentas que executam no servidor permitem execução de tarefas concorrentes de mais de um desenvolvedor. Essas ferramentas são projetadas para coordenar e gerenciar a execução de diversas rotinas simultâneas, podendo também fazer uso de múltiplos processadores. As ferramentas instaladas no cliente são mais simples e assumem que as rotinas são executadas na mesma máquina em que são desenvolvidas. A concorrência entre múltiplas tarefas é limitada, se existir, é geralmente não é suportado o escalonamento de tarefas em máquinas com múltiplos processadores. Essas ferramentas são mais baratas porém possuem funcionalidade e escalabilidade limitados.
Critérios para escolha da ferramenta Arquitetura Geral Plataforma de execução do produto: pode restringir a capacidade de expansão sem adicionar mais servidores quando houver crescimento do volume de dados. Extração e Carga de Dados Suporte nativo aos principais SGBDs, bem como suporte a conexão ODBC para um vasto conjunto de bancos de dados. Integração de Dados Suporte a diversos formatos de dados, incluindo COBOL, ASCII, Excel e XML Nível de integração com aplicações de terceiros, incluindo sistemas de ERP
Critérios para escolha da ferramenta Limpeza e Transformação de Dados Transformação baseada em regras: possibilidade de especificar qual transformação será executada somente quando determinada condição ocorrer, sendo capaz de juntar diversas regras de maneiras diferentes. Administração Apresentar administração centralizada: é preciso ter um único lugar para visualizar o processo ETC inteiro, mesmo se as tarefas estiverem executando em diferentes plataformas de origem e destino e diferentes sistemas operacionais. Ambiente de Desenvolvimento Ambientes gráficos de interface com o usuário.
Critérios para escolha da ferramenta Concorrência e Segurança Número de possíveis usuários e desenvolvedores concorrentes Tratamento de Erros Recuperação de falhas: se ocorrer algum erro a ferramenta ETC é capaz de voltar o sistema a um estado consistente conhecido Gerenciamento de Metadados Repositório de metadados centralizado contendo no mínimo informações relativas a fontes de dados, destinos e transformações.
Critérios para escolha da ferramenta Performance Características que permitem processamento distribuído e particionado para obter uma performance melhor. Programação de Execução de Tarefas (Scheduling) Habilidade de programar a execução de sessões ETC em um determinado tempo ou evento. Continuidade Capacidade de suportar o nível de processamento em caso de crescimento de origens, destinos e volumes de dados. Facilidade de desenvolver e modificar tarefas e rotinas. Freqüência e complexidade das atualizações do produto. Capacidade de suporte para o crescimento da plataforma.
Critérios para escolha da ferramenta Custo O custo pode limitar as opções de aquisição de uma ferramenta ETC, já que os orçamentos dispõem de recursos limitados que nem sempre permitem a escolha da melhor ferramenta Conformidade Suporte aos tipos de origens de dados a serem utilizados, por exemplo, arquivos de mainframe. Disponibilidade do recurso de importação ou exportação de metadados com ferramentas específicas utilizadas no desenvolvimento do DW.
Processo de escolha da ferramenta A idéia é construir uma lista simples de seis ou sete ferramentas que atendam a maioria dos requisitos. Cada ferramenta deve ser avaliada o máximo possível, utilizando informações publicitárias. Deve-se entrar em contato com um vendedor para obter as informações necessárias. Obter referências de consumidores de cada vendedor, preferencialmente outra companhia com uma função semelhante a daquela onde será desenvolvido o projeto.
Processo de escolha da ferramenta Não existe uma única resposta certa na escolha da ferramenta. Por isso, ao escolher uma ferramenta, além de conhecer suas potencialidades, é necessário entender antecipadamente seus pontos fracos e estar preparado para atenuar suas conseqüências.