Data de elaboração | 29/06/2023 |
Autor | João Thomas de Souza Telles |
Equipe do estudo | Time Auto |
Documentação correlata | Artigos sobre Apache Airflow e Apache Hop |
Na SETIC era utilizado apenas o Apache Airflow, até que se encontrou a limitação principal dele:
Complexidade e velocidade na execução de suas DAGS. Então buscou-se uma ferramenta capaz de rodar ETLs com mais agilidade e mais fácil de entender. Fomos em busca de alternativas como Pentaho Data Integration e algumas outras, mas no fim foi encontrada uma ferramenta open-source que permite todas essas coisas, o Apache Hop.
O Apache Hop funciona de maneira extremamente similar ao PDI, porém com mudanças em como ele executa algumas jobs. De acordo com a documentação, o Hop pode ser aproximadamente 10 vezes mais rápido em relação ao PDI. O Hop roda primariamente com Workflows e Pipelines:
Um Workflow, em tradução literal é um fluxo de trabalho: você define em que ordem que algumas tarefas macro serão executadas, normalmente pipelines.
Este é um exemplo de Workflow:
No Workflow acima, você tem visualmente definidas o início, uma etapa de setar algumas variáveis correlatas a alguma execução, e então um loop, que irá executar uma pipeline até que a variável de saída do loop seja definida.
Em resumo, um Workflow é uma visualização macro de como será executado algum ETL.
A palavra pipeline tem origem na palavra pipe do inglês, que quer dizer cano. O conceito de pipelines é representado como uma definição visual do fluxo de dados, e no caso como ele passa pelas transformações. Visualmente falando, uma pipeline é uma representação gráfica de um fluxo de dados:
Na imagem acima é possível ter um entendimento um pouco melhor de o que é um pipeline. Pode-se observar que o pipeline tem passos muito mais concretos e definitivos do que um workflow, uma vez que ele se trata de uma representação do ETL, enquanto o workflow se trata de uma representação visual de como o ETL será executado.
Tendo em vista as similaridades do Hop com o Pentaho versão gratuita, é possível pensar que o problema de monitoramento do ETL também seria encontrado aqui. Já que no PDI é necessário agendar com o agendador do Windows, tornava-se custoso acompanhar os seus ETLs.
Já com o Apache Hop, ele prevê uma integração pronta com o Apache Airflow, que é um serviço de orquestração e agendamento, removendo a problemática do Pentaho. Com relação a como é realizada essa integração, é possível encontrar as respostas na documentação oficial, e também neste artigo escrito por nós.
Por mais que o Apache Hop seja comprovadamente mais rápido e simples que o PDI na maioria de suas funcionalidades, por se tratar de um projeto nascente ele ainda não possui cursos a respeito, e também encontramos alguns bugs durante o uso da aplicação.
Porém os bugs não são um fator impeditivo. Sendo um projeto open-source, caso se encontrem problemas basta abrir issues no projeto, ou entrar em contato com eles no chat. Diversos dos bugs encontrados durante as implementações iniciais(que começamos na versão 2.4.0) foram resolvidos na versão seguinte.
Por se tratar de um projeto recente, porém com potencial alto, a comunidade de desenvolvedores da aplicação é extremamente ativa. Desde resolução de bugs até resolução de dúvidas, o tempo máximo que a equipe aguardou em resposta foi de aproximadamente 10 minutos.