Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Redescobrindo o Papel do Apache Kafka em Arquiteturas de Dados Modernas

Redescobrindo o Papel do Apache Kafka em Arquiteturas de Dados Modernas

Apresentação feita na conferência Big Data Week (edição São Paulo) em 02 de Novembro de 2019.

http://sao-paulo.bigdataweek.com/speaker/ricardo-ferreira

Ricardo Ferreira

November 02, 2019
Tweet

More Decks by Ricardo Ferreira

Other Decks in Programming

Transcript

  1. Redescobrindo o papel do apache kafka® em arquiteturas de dados

    modernas @riferrei | @confluentinc | @bdwspbr
  2. @riferrei | @confluentinc | @itau Um distributed streaming platform é

    usado para unificar armazenamento e computação
  3. @riferrei | @confluentinc | @itau Evento estado > Eu Mudei

    meu empredo da oracle para a confluent Eu trabalho na confluent
  4. @riferrei | @confluentinc | @itau Mudança de emprego Máquina de

    sugestões Sistema de buscas Serviço de email
  5. @riferrei | @confluentinc | @itau SQL SQL SQL Máquina de

    sugestões Sistema de buscas Serviço de email Bancos de dados são bons para guardar estado Banco de dados LOG
  6. @riferrei | @confluentinc | @itau Mas não lidam muito bem

    com grandes volumes Banco de dados 1000x mais volume Eventos não-transacionais Eventos transacionais LOG
  7. @riferrei | @confluentinc | @itau Tracking de usuários Aplicações de

    logs Métricas operacionais banco key/value banco key/value Banco de dados sql MICROSERviços ... HADOOP Elastic search grafana DATA WAREHOUSE REC. ENGINE SEARCH SECURITY EMAIL SOCIAL GRAPH
  8. @riferrei | @confluentinc | @itau conclusão: o uso de bancos

    de dados não era apropriado dado o problema a ser resolvido!
  9. @riferrei | @confluentinc | @itau LOG Tracking de usuários Aplicações

    de logs Métricas operacionais banco key/value banco key/value Banco de dados sql MICROSERviços ... HADOOP Elastic search grafana DATA WAREHOUSE REC. ENGINE SEARCH SECURITY EMAIL SOCIAL GRAPH
  10. @riferrei | @confluentinc | @itau LOG Tracking de usuários Aplicações

    de logs Métricas operacionais banco key/value banco key/value Banco de dados sql MICROSERviços ... HADOOP Elastic search grafana DATA WAREHOUSE REC. ENGINE SEARCH SECURITY EMAIL SOCIAL GRAPH Mensageria também não lida bem Com volume
  11. @riferrei | @confluentinc | @itau LOG Tracking de usuários Aplicações

    de logs Métricas operacionais banco key/value banco key/value Banco de dados sql MICROSERviços ... HADOOP Elastic search grafana DATA WAREHOUSE REC. ENGINE SEARCH SECURITY EMAIL SOCIAL GRAPH Mensageria não suporta persistência direito
  12. 45 banco de dados mensageria Batch Caro de manter Lento

    demais Difícil de escalar Não têm durabilidade Não têm persistência não possui ordem Não possui replay transacional durável Persistente Mantêm ordem replay rápido (baixa latência) O que está acontecendo agora? O que aconteceu no passado?
  13. 46 banco de dados mensageria Batch Caro de manter Lento

    demais Difícil de escalar Não têm durabilidade Não têm persistência não possui ordem Não possui replay Highly Scalable Durable Persistent Ordered Fast (Low Latency) O que está acontecendo agora? O que aconteceu no passado? transacional durável Persistente Mantêm ordem replay rápido (baixa latência) distributed streaming platform
  14. “The truth is the log. The database is a cache

    of a subset of the log.” — pat helland Immutability changes everything http://cidrdb.org/cidr2015/Papers/CIDR15_Paper16.pdf
  15. @riferrei | @confluentinc | @itau Banco de dados 0 1

    2 3 4 5 6 7 8 LOG leituras escritas DESTINo sistema A (tempo = 2) DESTINo sistema b (tempo = 6) Banco de dados invertido: logs passam a ser mais importantes que tabelas
  16. @riferrei | @confluentinc | @itau BROKER 1 BROKER 2 BROKER

    3 BROKER 4 TOPIC 1-PART 1 TOPIC 2-PART 3 TOPIC 3-PART 1 TOPIC 2-PART 1 TOPIC 5-PART 1 TOPIC 6-PART 1 TOPIC 1-PART 2 TOPIC 2-PART 4 TOPIC 3-PART 2 TOPIC 2-PART 2 TOPIC 5-PART 2 TOPIC 6-PART 2 CONSUmidor CONSUMidor CONSUmidor PRODUtor PRODutor PRODUtor Escalabilidade através de particionamento
  17. @riferrei | @confluentinc | @itau Maior volume de dados Graças

    ao uso Do page cache do Sistema operacional
  18. @riferrei | @confluentinc | @itau Menos uso de cpu e

    heap Através da api sendfile do linux
  19. @riferrei | @confluentinc | @itau O que é processamento de

    eventos? CREATE STREAM possible_fraud AS SELECT card_number, count(*) FROM authorization_attempts WINDOW TUMBLING (SIZE 5 MINUTE) GROUP BY card_number HAVING count(*) > 3; Tentativa de fraude possível fraude tópico tópico
  20. @riferrei | @confluentinc | @itau Api de transações para produtores

    Níveis de isolamento para consumidores aplicação
  21. @riferrei | @confluentinc | @itau A C I D Reinforçar

    invariantes que garantam consistência
  22. @riferrei | @confluentinc | @itau Propriedades do Produtor enable.idempotence=true max.inflight.requests.per.connection=1

    acks = “all” retries > 0 (preferably MAX_INT) (pid, seq) [payload] (100, 1) {key: 1234, data: abcd} - offset 3345 (100, 1) {key: 1234, data: abcd} - rejected, ack re-sent (100, 2) {key: 5678, data: efgh} - offset 3346 Sem duplicação!
  23. @riferrei | @confluentinc | @itau A C I D Garantir

    acesso serial mesmo quando threads executam de forma concorrente
  24. @riferrei | @confluentinc | @itau Produzindo registros sem chave aplicação

    Registros serão escritos em várias partições diferentes
  25. @riferrei | @confluentinc | @itau A C I D Dados

    commitados devem permanecer assim mesmo em caso de falhas