ETL (Extract, Transform and Load)

Ortiz de Arcanjo Antonio David - Apr 25 '22 - - Dev Community

O mundo actual é movido a dados. Diariamente são são gerados grandes quantidades de dados através de Sensores, Sistemas de Apoio a Decisão, ERPs, CRMs e muitos outros meios. O tratamento correcto destes dados pode gerar informações importantes para qualquer tipo de negócio.

ETL: é o processo de extração, transformação conforme regras de negócios e o carregamento dos dados geralmente para um Data Mart ou Data Warehouse, bem como enviar os dados para um determinado sistema da organização.

Ferramentas de ETL: são ferramentas utlizadas para automação do processo de ETL. Essas ferramentas permitem extrair dados de várias fontes, aplicar trandormações sobre os dados e conectar a base de dados.
As ferramentas também o oferecem Toolbox, opções de conexão com diferentes bases de dados e visualização do fluxo de execução do ETL. As ferramentas de ETL mostraram-se mais eficientes do que a excessiva intevenção dos usuários na transformação dos dados.

O ETL tem as seguintes fases:

  • Exctract: Extração de dados de fontes externas;
  • Transform: Transformação para atender às necessidades de negócios;
  • Load: Carga dos dados dentro do Data Warehouse ou Data Mart.

Vantagens do ETL:

  • Fluxo Visual do processo;
  • Fácil de usar;
  • Melhora a inteligência de negócios;
  • Mais performance e menos tempo na transformação em relação aos usuários;
  • Melhora a limpeza de dados.

Sugestão: Além da criação de Data Warehouse e projectos de Business Intelligence, o processo de ETL pode ser aproveitado para integração de sistemas. No final todos os dados transformados, deverão estar num Banco de dados.

Existem muitas ferramentas proprietárias e Open Source.

Ferramentas Proprietárias:

  • SQL Server Integration Services (Microsft);
  • Oracle Data Integrator (Oracle);
  • Data Integrator and Data Services (SAP);
  • IBM Infosphere Information Server (IBM);
  • Talend Open Studio (Talend).

Ferramentas Open Source:

  • Pentaho;
  • Stitch;
  • Apache Camel;
  • Scriptella;
  • KETL Tool;
  • Apatar.

Observação: Na fase de carregamento ou inserção no destino é importante verfificar a ordem de inserção na base destino. Verficar a estrutura das tabelas, constraints (foreign keys, primary, unique keys) ajuda a prevenir erros de inserção. Se necessário, desabilita os triggers e índices, temporáriamente.

Ao carregar os dados no Data Warehouse é aconselhavel limpar as tabelas do datawarehouse e se possível criar Stored Procedures para inserir dados nas tabelas do Data Warehouse.

Exemplo: Neste exemplo vamos fazer o processo de ETL para um Data Warehouse de Venda de Produtos. As fontes de dados serão: base de dados operacional e arquivos CSV com dados de vendas.
SGBD: SQL Server 19, rodando no Docker.
Ferramenta ETL: SQL Server Integration Services
Geração de dados no CSV: Python.

ETL do Problema
Image description

Fluxo de Dados
Image description

Base de dados bd_venda_produto
Image description

Registos na tabela tb_venda
Image description

Registos da tabela tb_item_venda
Image description

Ficheiro CSV item_venda
Image description

Data Warehouse DW_venda_produto
Image description

Stored Procedure para carregar a tabela facto sp_inserir_fac_venda
Image description

Registos da tabela fac_venda_produto
Image description

Base de dados no container
Image description

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player