ETL: Luigi ou Airflow?

171 views
Skip to first unread message

Rafael Novello

unread,
Oct 11, 2017, 2:30:13 PM10/11/17
to python-brasil
Pessoal, boa tarde!

Estou pesquisando ferramentas para ETL/workflow e gostaria de obter algum feedback. Até o momento estou entre o Luigi e o Airflow.

O principal objetivo é construir um workflow que leia os dados do data lake da empresa ou fontes externas, processe e enriqueça estes dados para criar/atualizar a camada de serviço (serving layer).

Até agora simpatizei mais com o Luigi pela simplicidade e pela forma de escrever as tasks, mas a falta de um scheduler e mecanismos de escalabilidade são desvantagens fortes.

Já o Airflow me parece mais complicado e "menos Pythônico" mas ele compensa com mais ferramentas (incluindo um scheduler e suporte a celery e dask para a escala).

Sendo assim, peço que compartilhem suas experiencias e recomendações que serão de grande ajuda!

Agradeço desde já!
Abraços!

Atenciosamente,
Rafael J. R. Novello

Skype: rafael.novello

Moacir Moda Neto

unread,
Oct 14, 2017, 12:49:33 AM10/14/17
to python...@googlegroups.com
Meu voto vai para o Luigi. O scheduler você resolve com um simples crontab e a escalabilidade, eu creio que há maneiras de desonerar o Luigi deste problema. 

*posso estar falando besteira*, mas pelo o que me lembro, com o Luigi você pode, por exemplo, criar um job em Spark. Neste caso, a escalabilidade fica a cargo do spark, e não mais do Luigi.




Moacir Moda Neto
Analista de Sistemas e Desenvolvedor Fullstack
skype: moa.moda

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasil+unsubscribe@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Abelardo Mota

unread,
Oct 14, 2017, 7:40:47 AM10/14/17
to Python Brasil
Fala Rafael,

pode falar melhor sobre o cenário? As estruturas(bancos de dados, arquivos, web services etc) das fontes de dados, o volume de dados, a complexidade das transformações que irá realizar, o destino dos dados e a finalidade do projeto? E como chegou, dentre o conjunto de ferramentas ETL, no Luigi e Airflow.

Fico curioso porque aqui onde trabalho(UFC) utilizamos o PDI para migração de bases de dados e para alguns processamentos que envolvam fontes de dados de tipos distintos(arquivos + banco, por exemplo). Vi no teu blog um comparativo de algumas ferramentas com o PDI.
Talvez surja a oportunidade de trabalhar com ETL com alguma das características que você expôs, como a necessidade de scheduler e escalabilidade, daí a curiosidade.

Rafael Novello

unread,
Oct 15, 2017, 8:45:02 AM10/15/17
to Python Brasil
Oi Moa, tudo bem?

Pelo jeito o crontab é a saída mais adotada com o Luigi, mas eu achei meio estranho. E sobre a escalabilidade, acredito que possa haver a necessidade de escalar fora do contexto do Spark, por enquanto são apenas suspeitas mas de todo modo vamos testar o AirFlow.

Você já teve alguma experiencia com o AirFlow? Se puder, conta ai!

Abraço! Obrigado!




---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Rafael Novello

unread,
Oct 15, 2017, 9:05:59 AM10/15/17
to Python Brasil
Oi Abelardo, tudo bem?

Bom, acho que posso passar alguns detalhes sim. Por enquanto estamos usando o ArangoDB tanto para data lake quanto para serving layer. Ele nos ajudou com a prova de conceito do negócio pois oferece persistência em grafos e documentos ao mesmo tempo, assim nosso "data lake" esta armazenado em documentos não estruturados e a serving layer esta usando os grafos. Futuramente vamos migrar pelo menos o data lake para uma ferramenta mais apropriada, como um Kafka.

O objetivo da ferramenta de ETL neste caso é organizar e orquestrar as tarefas de consumo e processamento de dados, tanto para a ingestão dos dados no data lake (dados brutos não processados) quanto na criação/atualização da serving layer (dados processados e enriquecidos).

Chegamos ao Luigi e AirFlow pois preferimos ferramentas em Python que possam ser programadas e não apenas configuradas. Temos pessoal de Java na equipe, que poderiam cuidar do PDI ou outra solução Java, mas são minoria e por isso a preferencia por uma solução Python.

Um abraço!

Moacir Moda Neto

unread,
Oct 16, 2017, 8:12:43 AM10/16/17
to python...@googlegroups.com
Rafa,

Somente tive experiências com o Luigi. Airflow, ainda não.




Moacir Moda Neto
Analista de Sistemas e Desenvolvedor Fullstack
skype: moa.moda



---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages