Modelagem de Dados para BD NoSQL -...

Preview:

Citation preview

Modelagem de

Dados para BD

NoSQL

Danielle MonteiroDB4Beginners.com/e-book

twitter.com/danimonteirodba

facebook.com/DB4Beginners

www.linkedin.com/in/danimonteirodba

WBSoft.com.br

2

O que é

Modelagem?

4

5

6

1.

Key Value

REmote DIctionary Server

REDIS

7

× Muito rápido;

× O key-value mais usado;

× Dados em memória;

× Entenda como serão as pesquisas;

Tipo de dados

8

× 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)

9

Quais as melhores

chaves?

10

Dicas

11

× 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

2.

Orientado a Documentos

MongoDB, o difícil é que é fácil!

12

MongoDB× Consolidado;

× Muitos recursos;

× Documentos tem o formato JSON;

× Dados podem ser normalizados;

× Dados podem ser desnormalizados;

13

14

Tipos de Dados× Documento armazenado em formato BSON

× Data, string, ObjectID, NumberLong, NumberInt,

NumberDecimal, Object, Array…

× Tuning começa com o data type correto.

15

Embeding

(Desnormalizado)

X

Referencing

(Normalizado)?

16

17

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

18

19

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

• Em complexos relacionamentos MXN

• Em modelos muito grandes e hierárquicos

20

Informações importantes

• Possui linguagem própria

• Suporte a vários tipos de índice

• Governança facilitada com a validação de schemas nativa

21

22

3.

Orientado a colunas

Cassandra!!!

Cassandra

23

× Desnormalizado;

× Distribuído;

× Tolerante a falhas;

× Abordagem orientada a consultas;

× Schema é muito importante;

× Design anel;

× master/ master;

× Escalabilidade linear

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.

24

25

CQL (Cassandra Query Language)

× Baseada na SQL;

× 21 datatypes nativos;

× Alguns interessantes: counter, inet,

uuid

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;

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.

29

30

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

31

Qual é a query?

32

Referências× https://www.datastax.com/

× http://cassandra.apache.org/

33

4.

Orientado a Grafos

Neo4J, poderoso nos relacionamentos!

34

Neo4J× BD gráfico é um banco de dados 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

35

Conceitos Importantes× Nodes = entidades

× Relacionamentos = eventos ou conceitos que

relacionam nós

× os relacionamentos são especificados na

inclusão, não tem JOIN

36

Índices

• Encontrar o ponto de partida para consultas

• Busca mais eficiente

• Escritas mais lentas

38

Como as

informações estão

conectadas?

39

40

41

Casos de Uso

• Sistemas de Recomendação

• Detecção de fraudes

• Operações de redes

• Mecanismos de busca

• Machine learning

42

Danielle MonteiroDB4Beginners.com/e-book

twitter.com/danimonteirodba

facebook.com/DB4Beginners

www.linkedin.com/in/danimonteirodba

WBSoft.com.br

43