O que é streaming e por que importa?

Streaming de dados com AWS Kinesis e Lambda

Maksim Pecherskiy

Data Engineer

Lote vs. streaming

chapter1_take_ms_dahkX.png

Streaming de dados com AWS Kinesis e Lambda

Lote vs. streaming

Lote

  • "Melhor"
  • Conjuntos maiores
  • Análises mais complexas
  • Dados mais lentos
  • Ex.: relatório diário de vendas
  • Ex.: previsão de vendas do próximo mês
  • Ex.: churn prediction

Streaming

  • "Mais legal"
  • Análises simples: agregação/filtragem
  • Registros individuais/micro lotes
  • Dados MUITO rápidos
  • Ex.: detecção de fraude
  • Ex.: monitorar turbinas eólicas
  • Ex.: alertas em tempo real
Streaming de dados com AWS Kinesis e Lambda

Cody e a frota

Cody

Cody ao lado da bike

A frota

um mosaico de veículos

Streaming de dados com AWS Kinesis e Lambda

Streaming telemático

chapter1_take_ms_IfvAm.png

chapter1_take_ms_tNX4d.png

chapter1_take_ms_frlCB.png

Streaming de dados com AWS Kinesis e Lambda

AWS Kinesis

Streaming de dados com AWS Kinesis e Lambda

Data Firehose

chapter1_take_ms_UPYak.png

Streaming de dados com AWS Kinesis e Lambda

Fluxos de entrega

chapter1_take_ms_MDHnC.png

Streaming de dados com AWS Kinesis e Lambda

Fluxos de entrega

chapter1_take_ms_ytekB.png

Streaming de dados com AWS Kinesis e Lambda

Fluxos de entrega

chapter1_take_ms_gx6D1.png

Streaming de dados com AWS Kinesis e Lambda

Criando um cliente Firehose

import boto3

firehose = boto3.client('firehose',
aws_access_key_id=AWS_KEY_ID, aws_secret_access_key=AWS_SECRET,
region_name='us-east-1')
Streaming de dados com AWS Kinesis e Lambda

Trabalhando com fluxos de entrega

# Mostrar fluxos de entrega criados
response = firehose.list_delivery_streams()

print(response['DeliveryStreamNames'])
['old-delivery-stream1', 'a-test-stream']
Streaming de dados com AWS Kinesis e Lambda

Excluir fluxos

# Mostrar fluxos de entrega criados
response = firehose.list_delivery_streams()

# Apagar todos! for stream_name in response['DeliveryStreamNames']:
firehose.delete_delivery_stream(DeliveryStreamName=stream_name)
Streaming de dados com AWS Kinesis e Lambda

Revisão

  • Lote vs. streaming
  • Cody e coleta telemática
  • AWS Kinesis
  • Fluxos de entrega do Kinesis Firehose
  • AWS Kinesis Data Firehose
  • Listar e excluir fluxos do Firehose
  • Produtor -> gerador de dados
  • Destino -> para onde os dados vão
Streaming de dados com AWS Kinesis e Lambda

Vamos praticar!

Streaming de dados com AWS Kinesis e Lambda

Preparing Video For Download...