Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Python e Spark
www.datascienceacademy.com.br
Spark Streaming
www.datascienceacademy.com.br
A vida não acontece em batches
www.datascienceacademy.com.br
www.datascienceacademy.com.br
São muitas as vantagens na
manipulação de dados
como fluxos
www.datascienceacademy.com.br
Streaming de dados não é apenas para projetos altamente
especializados. Computação baseada em Streaming está se
tornando a regra para empresas orientadas a dados.
www.datascienceacademy.com.br
Novas tecnologias e projetos
de arquitetura permitem
construir sistemas flexíveis
www.datascienceacademy.com.br
Sensores = Dados Contínuos
www.datascienceacademy.com.br
www.datascienceacademy.com.br
O que vamos estudar neste capítulo?
www.datascienceacademy.com.br
Bonus
www.datascienceacademy.com.br
Spark Streaming
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Microbatching
www.datascienceacademy.com.br
Quer dizer que o Spark Streaming não é ”real” real-time?
www.datascienceacademy.com.br
Quer dizer que o Spark Streaming não é ”real” real-time?
www.datascienceacademy.com.br
www.datascienceacademy.com.br
As fontes de dados podem ser:
www.datascienceacademy.com.br
www.datascienceacademy.com.br
• Streaming ETL
• Detecção de Anomalias
• Enriquecimento de Dados
• Sessões Complexas e Aprendizado Contínuo
www.datascienceacademy.com.br
E quando usamos Spark Streaming?
www.datascienceacademy.com.br
Spark Streaming
Previsões em tempo
Machine Learning
real
www.datascienceacademy.com.br
Uma importante vantagem de usar o Spark para Big Data Analytics é a
possibilidade de combinar processamento em batch e processamento de
streaming em um único sistema.
www.datascienceacademy.com.br
Você inicia o
processamento de um
www.datascienceacademy.com.br
Batch
www.datascienceacademy.com.br
Streaming
• Monitoramento de serviços
• Processamento de eventos em tempo real para alimentação de dashboards
• Processamento dados de cliques e eventos em web sites
• Processamento de dados de sensores de Internet das Coisas
• Processamento de dados vindos de serviços como: Twitter, Kafka, Flume, AWS Kinesis
www.datascienceacademy.com.br
Big Data never stops!
www.datascienceacademy.com.br
Obrigado
www.datascienceacademy.com.br
Spark Streaming
A velocidade com que você passa o
cartão de crédito
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Apenas a título de
curiosidade, a Tesla está
trabalhando em um projeto de
cápsula de transporte
supersônica!!
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Quando um cliente utiliza o cartão de crédito para
Objetivo 1 uma transação, o vendedor precisa saber em tempo
real a resposta para a frase: É uma fraude?
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Um Streaming de dados é como um dataset contínuo, infinito.
Vamos retirando porções deste dataset, analisando, tomando
decisões e armazenando para análise futuras. Trabalhar com
Streaming de dados é sem dúvida um grande desafio.
www.datascienceacademy.com.br
Obrigado
www.datascienceacademy.com.br
Apache Spark
Processamento iterativo – várias tarefas em sequência
Processamento interativo – análise exploratória de dados
www.datascienceacademy.com.br
Arquitetura Spark Streaming
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Output – Sistemas
Input – Stream de
externos
dados
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Spark Streaming =
www.datascienceacademy.com.br
Principais Frameworks para processamento de Streaming de Dados:
• Apache Samza
• Apache Storm
• Apache Flink
• Apache Spark Streaming
www.datascienceacademy.com.br
Obrigado
www.datascienceacademy.com.br
DStreams – Discretized Streams
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Os DStreams oferecem muitas das operações que
podem ser realizadas com os RDD’s, mais as operações
relacionadas ao tempo, como sliding windows.
www.datascienceacademy.com.br
Streams
Receivers
RDD
www.datascienceacademy.com.br
Receivers
RDD
DStreams
Processamento Paralelo
RDD
RDD
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
O que pode ser feito com DStreams?
• Map
• FlatMap
• Filter
• reduceByKey
• Join
• Window
www.datascienceacademy.com.br
O que pode ser feito com DStreams?
www.datascienceacademy.com.br
O DStream permite converter um conjunto de
dados contínuo em um conjunto discreto de
RDD’s (DStream significa Discretized Streams)
www.datascienceacademy.com.br
Obrigado
www.datascienceacademy.com.br
Windowing
www.datascienceacademy.com.br
Windowing
Computed Windowed
www.datascienceacademy.com.br
Windowing
O Streaming de dados é como se fosse
um dataset contínuo, que está sendo
carregado o tempo todo, de forma
intermitente. Como os dados são um
fluxo contínuo, podemos querer visualizar
e manipular dados em uma janela de
tempo específica. Esse é o conceito do
windowing.
www.datascienceacademy.com.br
Windowing
www.datascienceacademy.com.br
Windowing
www.datascienceacademy.com.br
Windowing
www.datascienceacademy.com.br
Windowing
www.datascienceacademy.com.br
Windowing
www.datascienceacademy.com.br
Windowing
Window interval
Batch interval
Sliding interval
www.datascienceacademy.com.br
Windowing
www.datascienceacademy.com.br
Obrigado
www.datascienceacademy.com.br
Tolerância a Falhas
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Todos os dados são
replicados para no
mínimo 2 worker nodes
www.datascienceacademy.com.br
Um diretório de checkpoint pode
ser usado para armazenar o
estado do streaming de dados,
no caso em que é necessário
reiniciar o streaming
ssc.checkpoint()
www.datascienceacademy.com.br
Falha no Driver Context
Falha no Receiver
(script)
www.datascienceacademy.com.br
Falha no Receiver
www.datascienceacademy.com.br
Falha no Driver Context
www.datascienceacademy.com.br
O Spark Streaming é usado em ambientes de produção, como o do Uber por exemplo. O sistema está mais do
que testado e oferce segurança para aplicações de missão crítica. Mas ele requer as configurações certas, tanto
na parte de infraestrutura quanto na parte de aplicação, aquela criada por você, cientista de dados.
www.datascienceacademy.com.br
Obrigado
www.datascienceacademy.com.br
Integração com Outros Sistemas
Kafka, Flume, Kinesis
www.datascienceacademy.com.br
www.datascienceacademy.com.br
O Apache Kafka foi originalmente desenvolvido pelo LinkedIn e
posteriormente liberado como um projeto open-source, em 2011. O
Apache Kafka é um sistema para gerenciamento de fluxos de dados
em tempo real, gerados a partir de web sites, aplicações e sensores.
Algumas das empresas que usam Kafka: LinkedIn, Netflix, PayPal,
Spotify, Uber, AirBnB, Cisco, Goldman Sachs e SalesForce.
Recentemente a IBM anunciou a criação de dois projetos envolvendo
o Apache Kafka. O LinkedIn possui o maior ambiente Kafka do qual se
tem notícia, com 1.1 trilhão de mensagens por dia ( dados de 2015).
www.datascienceacademy.com.br
Servidores web
gerando logs
Spark Streaming
Receiver
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Transportar dados entre Enriquecer a análise de
diversos sistemas de dados dados
www.datascienceacademy.com.br
Soluções Similares ao Kafka
• DataTorrent
• Splunk
• Loggly
• Logentries
• Glassbeam
www.datascienceacademy.com.br
É necessário instalar o pacote spark-streaming-kafka
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Push-Based Flume x Pull-Based Flume
www.datascienceacademy.com.br
É necessário instalar o pacote spark-streaming-flume – Push-Based
www.datascienceacademy.com.br
Ou
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Spark
Streaming
www.datascienceacademy.com.br
É necessário instalar o pacote spark-streaming-kinesis-asl
www.datascienceacademy.com.br
Obrigado
www.datascienceacademy.com.br
Processamento de Linguagem
Natural
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Processamento de Linguagem Natural
www.datascienceacademy.com.br
O computador espera que a
linguagem humana seja
precisa, não ambígua e
altamente estruturada
www.datascienceacademy.com.br
PLN
Processamento de
Linguagem Natural
www.datascienceacademy.com.br
PLN
Processamento de
Linguagem Natural
www.datascienceacademy.com.br
Talvez você não saiba, mas você utiliza PLN em aplicações como:
www.datascienceacademy.com.br
Processamento de Linguagem Natural
• Análise morfológica
• Análise sintática
• Análise semântica
• Análise pragmática
www.datascienceacademy.com.br
Análise de
Sentimentos
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Pacotes Gratuitos para PLN
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Obrigado
www.datascienceacademy.com.br