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.
Base de dados bd_venda_produto
Registos da tabela tb_item_venda
Data Warehouse DW_venda_produto
Stored Procedure para carregar a tabela facto sp_inserir_fac_venda