Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro

84 vues

Publié le

Banco de dados sem schema não precisa de modelo de dados!” Se você acredita nisso, seu projeto começou a falhar antes de começar! Vamos conversar sobre como modelar seu banco de dados NoSQL sem perder a flexibilidade e sem perder o controle sobre seus dados.

Publié dans : Technologie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro

  1. 1. O que você precisa saber para modelar bancos de dados NoSQL
  2. 2. Danielle Monteiro DB4Beginners.com/e-book twitter.com/danimonteirodba facebook.com/DB4Beginners www.linkedin.com/in/danimonteirodba WBSoft.com.br 2
  3. 3. Contatos /DB4Beginners /DaniMonteiroDBA /DaniMonteiroDBA http://bit.ly/db-sp http://bit.ly/danimonteirodba www.linkedin.com/in/danimonteirodba/
  4. 4. Sites × Portfólio: www.DaniMonteiroDBA.com × Blog: DB4Beginners.com × Consultoria: www.WDB.Consulting × Meetup: https://www.meetup.com/pt- BR/Databases-SP/ × Projeto: www.WoMakersCode.org
  5. 5. O que é Modelagem? 5
  6. 6. 6
  7. 7. 7 1. Key Value REmote DIctionary Server
  8. 8. REDIS 8 × Muito rápido; × O key-value mais usado; × Dados em memória; × Entenda como serão as pesquisas;
  9. 9. Tipo de dados 9 × string × list (acesso nas pontas mais rápido) × set (coleção de strings) × sorted set (coleção de strings ordenadas) × hash (chaves e conteúdos string)
  10. 10. 10
  11. 11. Quais as melhores chaves? 11
  12. 12. Dicas 12 × Lembre-se que a pesquisa é feita pela chave × É a base de dados principal? (sim, é possível!) × Cuidado com a redundância × list -> filas × sorted set -> notícias, tweets… ordem temporal. × hash -> dados genéricos de forma compactada
  13. 13. 2. Orientado a Documentos MongoDB, o difícil é que é fácil! 13
  14. 14. MongoDB × Consolidado; × Multi-model? × Muitos recursos; × Documentos tem o formato JSON; × Dados podem ser normalizados; × Dados podem ser desnormalizados; 14
  15. 15. Tipos de Dados × Documento armazenado em formato BSON × Data, string, ObjectID, NumberLong, NumberInt, NumberDecimal, Object, Array… × Tuning começa com o data type correto. 16
  16. 16. Embeding (Desnormalizado) X Referencing (Normalizado)? 17
  17. 17. 18
  18. 18. Quando usar documentos Embeded? • Relacionamentos 1:1 • Relacionamentos 1:n • Entre uma entidade fraca e uma entidade forte • Coleções que contém um número grande de documentos pequenos • Dados que são lidos sempre juntos • Mais leituras 19
  19. 19. 20
  20. 20. Quando usar documentos Referencing? • Quando uma parte do documento é frequentemente lida/ atualizada e a outra parte não. • O tamanho do documento excede 16MB. • Quando os dados não devem ser duplicados! • Quando um objeto é referenciado em muitos outros • Mais escritas 21
  21. 21. Informações importantes • Possui linguagem própria • Suporte a vários tipos de índice • Governança facilitada com a validação de schemas nativa • Lembre da LGPD!!! • Podemos ter grafos no MongoDB  22
  22. 22. 23 3. Orientado a colunas Cassandra!!!
  23. 23. Cassandra 24 × Desnormalizado; × Distribuído; × Tolerante a falhas; × Abordagem orientada a consultas; × Schema é muito importante; × Design anel; × master/ master; × Escalabilidade linear
  24. 24. Conceitos importantes × Keyspace × Onde definimos o fator de replicação × Família de Colunas × Contém colunas × Contém linhas × Separação lógica de dados semelhantes × Colunas × Estrutura básica × nome, valor e timestamp. 25
  25. 25. 26
  26. 26. CQL (Cassandra Query Language) × Baseada na SQL; × 21 datatypes nativos; × Alguns interessantes: counter, inet, uuid 28
  27. 27. Índices × Melhores em tabelas grandes; × Índices secundários: × Podem destruir o desempenho da sua query; × Complexos; × Criados em background (default), sem bloquear leituras ou gravações; 29
  28. 28. Primary Key × Identifica uma coluna × Primeiro elemento é a chave da partição × Determina a localização dos dados × Colunas depois da chave de partição são chamadas de clustering columns × As clustering columns especifica a ordem em que os dados são organizados dentro da partição. 30
  29. 29. 31 1 2 3 4 5 6 7 8 CREATE TABLE user_videos ( userid uuid, added_date timestamp, videoid uuid, name text, preview_image_location text, PRIMARY KEY (userid, added_date, videoid) ); Mostre-me todos os vídeos associados a um determinado usuário
  30. 30. 32
  31. 31. Qual é a query? 33
  32. 32. 4. Orientado a Grafos Neo4J, poderoso nos relacionamentos! 35
  33. 33. Neo4J × Projetado para tratar as relações entre os dados; × Pesquisas em grandes quantidades de dados; × Ideal para consultas complexas; × Desempenho muito bom; × Compatível com ACID; × Cypher 36
  34. 34. Conceitos Importantes × Nodes = entidades × Relacionamentos = eventos ou conceitos que relacionam nós × os relacionamentos são especificados na inclusão, não tem JOIN 37
  35. 35. Índices • Encontrar o ponto de partida para consultas • Busca mais eficiente • Escritas mais lentas 39
  36. 36. Como as informações estão conectadas? 40
  37. 37. 41
  38. 38. 42
  39. 39. Casos de Uso • Sistemas de Recomendação • Detecção de fraudes • Operações de redes • Mecanismos de busca • Machine learning 43
  40. 40. DB4Beginners.com 44

×