Extraia, transforme e carregue
Extrair, transformar e carregar ("extrair, transformar e carregar", geralmente abreviado como ETL ) é o processo que permite às organizações mover dados de várias fontes, reformatá-los e limpá-los e carregá-los em outro banco de dados, data mart ou data armazém para analisar, ou em outro sistema operacional para dar suporte a um processo de negócios .
Os processos ETL também podem ser usados para integração com sistemas legados . Eles se tornaram um conceito popular na década de 1970. [ 1 ]
Extrair
A primeira parte do processo de ETL é extrair os dados dos sistemas de origem. A maioria dos projetos de data warehouse trabalha com dados provenientes de diferentes sistemas de origem. Cada sistema separado pode usar uma organização diferente dos dados ou formatos diferentes. Os formatos de origem são normalmente encontrados em bancos de dados relacionais ou arquivos simples , mas podem incluir bancos de dados não relacionais ou outras estruturas diferentes . A extração converte os dados em um formato pronto para iniciar o processo de transformação.
Uma parte intrínseca do processo de extração é analisar os dados extraídos, resultando em uma verificação que verifica se os dados atendem ao padrão ou estrutura esperada. Caso contrário, os dados são rejeitados.
Um requisito importante para a tarefa de extração é que ela cause impacto mínimo no sistema de origem. Se os dados a serem extraídos forem grandes, o sistema de origem pode ficar lento e até travar, fazendo com que ele não possa ser usado normalmente para uso diário. Por esse motivo, em grandes sistemas, as operações de extração geralmente são agendadas em horários ou dias em que esse impacto é zero ou mínimo.
Transformar
A fase de transformação aplica uma série de regras de negócios ou funções nos dados extraídos para convertê-los em dados que serão carregados. Algumas fontes de dados exigirão uma pequena manipulação dos dados. No entanto, em outros casos, pode ser necessário aplicar algumas das seguintes transformações:
- Selecione apenas determinadas colunas para carregamento (por exemplo, colunas com valores nulos não são carregadas).
- Traduzir códigos (por exemplo, se a origem armazenar um "H" para Masculino e "M" para Feminino, mas o destino tiver que armazenar "1" para Masculino e "2" para Feminino).
- Codifique valores livres (por exemplo, converta "Man" para "H" ou "Mr" para "1").
- Obtenha novos valores calculados (por exemplo, venda_total = quantidade * preço, ou Lucro = PVP - Custo).
- Junte dados de várias fontes (por exemplo, pesquisas, associações, etc.).
- Calcule os totais de várias linhas de dados (por exemplo, vendas totais para cada região).
- Geração de campos chave no destino.
- Transpor ou pivotar (transformar várias colunas em linhas ou vice-versa).
- Divida uma coluna em várias (por exemplo, coluna "Nome: García López, Miguel Ángel"; mova para três colunas "Nome: Miguel Ángel", "Sobrenome1: García" e "Sobrenome2: López").
- A aplicação de qualquer forma, simples ou complexa, de validação de dados , e a consequente aplicação da ação necessária em cada caso:
- Dados OK: Entregue os dados para o próximo estágio (Carregar).
- Dados inválidos: execute políticas de tratamento de exceção (por exemplo, rejeite o registro inteiro, dê ao campo inválido um valor nulo ou um valor sentinela ).
Carregar
A fase de carregamento é o momento em que os dados da fase anterior ( transformação ) são carregados no sistema de destino. Dependendo dos requisitos da organização, esse processo pode abranger uma ampla variedade de ações diferentes. Em alguns bancos de dados, as informações antigas são substituídas por novos dados. Os data warehouses mantêm um histórico dos registros para que possam ser auditados e ter um rastreamento de todo o histórico de um valor ao longo do tempo.
Há apenas uma maneira de carregar os dados:
- rolando
- O processo Rolling , por sua vez, é aplicado nos casos em que se decide manter vários níveis de granularidade ( hierarquias ). Para isso, as informações resumidas são armazenadas em diferentes níveis, correspondentes a diferentes agrupamentos da unidade de tempo ou a diferentes níveis hierárquicos em uma ou mais das dimensões da quantidade armazenada (por exemplo, totais diários, totais semanais, totais mensais, etc. .) .
Processamento paralelo
Um desenvolvimento recente no software ETL é a aplicação de processamento paralelo. Isso permitiu o desenvolvimento de vários métodos para melhorar o desempenho geral dos processos ETL ao lidar com grandes volumes de dados. Existem 3 tipos principais de paralelismo que podem ser implementados em aplicações ETL:
- De dados
- Consiste em dividir um único arquivo sequencial em arquivos de dados menores para fornecer acesso paralelo.
- Segmentação ( pipeline)
- Permite a operação simultânea de vários componentes no mesmo fluxo de dados. Um exemplo disso seria procurar um valor no registro número 1 ao adicionar dois campos no registro número 2.
- de componente
- Consiste na operação simultânea de múltiplos processos em diferentes fluxos de dados, todos pertencentes a um único workflow. Isso é possível quando há fatias em um fluxo de trabalho que são completamente independentes umas das outras no nível do fluxo de dados.
Esses três tipos de paralelismo não são mutuamente exclusivos, mas podem ser combinados para realizar a mesma operação de ETL.
Uma dificuldade adicional é garantir que os dados que estão sendo carregados sejam relativamente consistentes. Vários bancos de dados de origem têm diferentes ciclos de atualização (alguns podem ser atualizados a cada poucos minutos, enquanto outros podem levar dias ou semanas). Em um sistema ETL, será necessário manter certos dados até que todas as fontes estejam sincronizadas. Da mesma forma, quando um armazenamento de dados precisa ser atualizado com o conteúdo em um sistema de origem, os pontos de sincronização e atualização precisam ser estabelecidos.
Desafios
Os processos de ETL podem ser muito complexos. Um sistema ETL mal projetado pode causar problemas operacionais significativos.
Em um sistema operacional, o intervalo de valores de dados ou a qualidade dos dados podem não corresponder às expectativas dos projetistas ao especificar as regras de validação ou transformação. Recomenda-se realizar um exame completo da validade dos dados ( Data profiling ) do sistema de origem durante a análise para identificar as condições necessárias para que os dados possam ser tratados adequadamente pelas regras de transformação especificadas. Isso levará a uma modificação das regras de validação implementadas no processo ETL.
Normalmente , os data warehouses são alimentados de forma assíncrona de diferentes fontes, que atendem a propósitos muito diferentes. O processo de ETL é fundamental para garantir que os dados extraídos de forma assíncrona de fontes heterogêneas sejam finalmente integrados em um ambiente homogêneo.
A escalabilidade de um sistema ETL ao longo de sua vida útil deve ser estabelecida durante a análise. Isso inclui entender os volumes de dados que precisarão ser processados de acordo com os acordos de nível de serviço ( SLAs ). O tempo disponível para realizar a extração dos sistemas de origem poderia mudar, o que significaria que a mesma quantidade de dados teria que ser processada em menos tempo. Alguns sistemas ETL são dimensionados para processar vários terabytes de dados para atualizar um data warehouse que pode conter dezenas de terabytes de dados. O aumento dos volumes de dados que esses sistemas podem exigir pode fazer com que lotes que eram processados diariamente sejam processados em micro-lotes (vários por dia) ou até mesmo para integração com filas de mensagens ou captura de dados de alteração ( CDC : change data capture ) em tempo real para transformação e atualização contínuas.
Ferramentas ETL
- Ab Start
- BarracudaSoftware
- Fluxo de decisão do Cognos
- Gênio, Beija-flor
- IBM Websphere DataStage (anteriormente Ascential DataStage)
- Computação PowerCenter
- metaWORKS (Ferramentas de Documentos)
- Microsoft DTS (incluído no SQL-Server 2000)
- Microsoft SQL Server Integration Services (SSIS) (a partir do MS SQL Server 2005)
- Kit de ferramentas de migração do MySQL
- Integrador de dados Oracle
- Construtor do Oracle Warehouse
- Integração de dados Pentaho
- Serviço de dados SAP
- Stratio Sparta