Home > Engenharia de Dados > Data Warehouse
RESUMO
Data warehouse com Apache Hop, PostgreSQL, MongoDB e Docker
Este é um projeto *"end to end"* de um Data Warehouse construído no Apache Hop e utilizando bancos de dados PostgreSQL e MongoDB. Nele realizamos a extração de dados estruturados de arquivos contendo registros de operações de comércio exterior (Frete, Exportação, Importação, etc). O projeto é baseado em dados, regras de negócios e problemas reais como a necessidade de considerar os intervalos de tempo entre cargas de dados, implementação de um mecanismo de Slowly Changing Dimension Tipo 2 personalizado, tratamento de erros, rastreamento de novos dados, gerenciamento de logs, governança de dados e outros aspectos técnicos importantes em processos de Data Warehousing.
Ambiente de desenvolvimento:
Debian Linux 13
Docker 29.0.2
Apache Hop 2.15.0
PostgreSQL 15
MongoDB 7
DBeaver 25.2.3
MongoDB Compass 1.48.2
Github
Requisitos e regras de negócio:
A solução deve ser projetada para um infraestrutura on-premise, mas que possa ser migrada facilmente para a nuvem;
Os dados podem sofrer mudanças em períodos longos de tempo, superior a um mês, portanto, um histórico de dados modificados deve ser mantido;
Os dados são guardados em arquivos (Excel, CSV, etc) portanto deve ser implementado um mecanismo de descoberta e validação de novos dados;
Deve haver um mecanismo de tratamento e armazenamento de dados de logs para governança, auditoria e manutenção da solução;
É primordial que um mecanismo de rastreabilidade e linhagem de dados seja implementado para permitir auditoria;
Deve ser dada preferência para tecnologia que a empresa já utiliza ou para ferramentas open source ou com versão gratuita e funcional;
Dados já tratados e persistidos não poderão ser sobrescritos, apagados e nem duplicados sem um controle de versão;
Os dados persistidos devem ser facilmente acessados através de ferramentas e consultas SQL ou ferramentas ORM (Spring Data JPA, SQLAlchemy, etc);
A ferramenta deverá suportar a adição de novas fontes e tipos de dados, sem a mudança completa da arquitetura (uso de conectores);
A solução deve ter a capacidade de realizar a limpeza, padronização, verificação de tipos, validação de chaves, eliminação de duplicidades nos dados;
O produto deve permitir que os dados sejam disponibilizados através de APIs no futuro;
A solução deve implementar mecanismos de qualidade e consistência e de comparação dos dados entrantes com os dados atuais já persistidos;
RESULTADO FINAL
Tabelas Fato
Base de dados de tratamento de log
Para ter acesso ao código fonte e a documentação completa, acesse o perfil do projeto no Github.