Profile
Proposals
Big Data e Python como cidadão de primeira classe para Sistemas Distribuídos
Bibliotecas e ferramentas como numpy, Scikit, Pandas e Jupyter fizerem de Python um dos melhores eco sistemas para Data Science. Mas mesmo tendo caído nas graças dos Data Scientists, Python ainda não é efetivamente utilizada para processamento de dados em larga escala (Big Data). A maioria das ferramentas de processamento de dados, em especial as ferramentas para "Stream Processing", são escritas em Java. Nos casos onde existe algum suporte, Python é cidadão de segunda classe, sempre atrás em features ou performance.
Podemos fazer com que Python se torne uma excelente opção não apenas para os Data Scientists mas também para os Data Engineerings, que precisam prototipar e modelar pipelines complexos para Big Data. Nessa palestra entenderemos porquê Python ainda não preencheu essa lacuna, quais são os desafios técnicos e possíveis soluções para que Python seja uma linguagem de primeira classe para processamento de dados em larga escala e consequentemente para sistemas distribuídos.
Vamos investigar os seguintes tópicos e tecnologias: Stream Processing, Performance, Comunicação Distribuída e Actor Model, IO Assíncrono, Containers e Orquestração, Erlang e Elixir, Java/Scala, Netty e Akka.
Stream processing com Python e Apache Storm
Construir uma arquitetura para extração e processamento de dados, de forma altamente escalável e tolerante a falhas, pode não ser uma tarefa fácil. Nesta palestra, explicarei como construir sistemas confiáveis, utilizando at-least-once semantics, técnicas de deduplicação e particionamento de dados utilizando Python.
Um projeto que surgiu da demanda de um cliente para análise de dados e geração de estatísticas e métricas, foi desenvolvido totalmente de uma forma escalável, sem perda ou pontos únicos de falha, isso tudo para processar mais de 35 bilhões de linhas de logs mensais, vindos de um pipeline de processamento que utiliza Apache Storm, Apache Kafka, Redis e Cassandra.