A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Orientado à documentos

Apresentações semelhantes


Apresentação em tema: "Orientado à documentos"— Transcrição da apresentação:

1 Orientado à documentos
NoSQL Orientado à documentos

2 Apresentação NoSQL Problemas que levaram a utilização do NoSQL
Quando utilizar NoSQL? Tipos Orientação à documentos MapReduce JSON CouchDB MongoDB

3 NoSQL Quando surgiu Na criação do termo, existia ausência do SQL e o modelo ainda centrado no relacional O movimento NoSQL "é completamente distinto do modelo relacional e portanto deveria ser chamado "NoREL" ou algo que produzisse o mesmo efeito". Carlo Strozzi Termo NoSQL vira abreviação de Not Only SQL

4 NoSQL O que é NoSQL hoje? Not Only SQL (Não apenas, não somente SQL)
NoSQL = Não Relacional Atualmente é uma altenativa ao modelo relacional

5 NoSQL Problemas que motivaram a utilização do NoSQL BigData
Volume Variedade Velocidade dos Dados Modelo relacional perde desempenho quando utiliza BigData

6 NoSQL Teorema CAP Consistency, Availability and Partition tolerance
Conceitos ACID x BASE ACID (Atomicity, Consistency, Isolation and Durability) BASE (Basically Available, Soft-state, Eventually consistency) Traz uma sensível diminuição no custo computacional para a garantia de consistência dos dados em relação à SGBDs tradicionais.

7 NoSQL MapReduce MapReduce(Framework desenvolvido pelo Google) - Modelo de programação paralela para processamento largamente distribuído de grandes volumes de dados. MAP - processo de mapear a requisição do originador. REDUCE - processo de agregação do resultado em algo consolidado.

8 NoSQL Quando utilizar NoSQL? Escalabilidade Flexibilidade
Manipulação de quantidade massiva de dados Bom desempenho Facilidade para consultas

9 NoSQL Tipos de NoSQL Key/Value: DynamoDb, Riak, Azure Table Storage, Berkeley DB, etc. Wide column store: Hadoop, Cassanda, Hypertable, Amazon SimpleDB, etc. Document store: MongoDb, CouchDB, RavenDb, etc. Graph store: Neo4J, Infinite Graph, InforGrid, HyperGraphDB, etc.

10 NoSQL

11 Orientação à documentos

12 Orientação à documentos
Definição Segundo Anderson(Anderson, et al., 2009), BDODs utilizam o conceito de dados e documentos autocontidos e auto descritivos, isso implica que o documento em si já define como ele deve ser apresentado e o significado dos dados em cuja sua estrutura estão armazenados. Exemplo: Uma nota fiscal.

13 Orientação à documentos
Características Permite que tenha redundância e inconsistência. Contêm todas as informações importantes em um único documento. Livre de esquemas. Identificadores Únicos Universais(UUID) Consultar os documentos através de métodos avançados de agrupamento e filtragem: MapReduce

14 Orientação à documentos
JSON É um padrão leve de intercâmbio de dados, projetado para facilitar a leitura e escrita de estruturas, também sendo de fácil interpretação e geração por máquinas. Suas estruturas são baseadas em um subconjunto da especificação da linguagem JavaScript e permitem a construção de estruturas de dados partindo de dois conceitos: uma coleção de pares chave/valor e uma lista ordenada de valores (JSON, 2008).

15 Orientação à documentos
Formato JSON

16 Orientação à documentos
Vantagens Ganha Flexibilidade, disponibilidade, linguagem de consulta simples e performance. Desvantagem Perde em consistência.

17 Orientação à documentos
Ferramentas mais utilizadas

18

19 CouchDB Definição O CouchDB é um sistema distribuído, acessível através de uma API RESTful, realiza o armazenamento versionado de objetos que utiliza a abstração de documentos, disponibiliza uma forma de agregar e consultar dados através do MapReduce e replica seus dados de forma incremental, bidirecional e multi-master, utilizando o MVCC, um algoritmo de consenso de conflitos, onde os dados estão sujeitos a consistência eventual em cada nó (Anderson, et al., 2009).

20 CouchDB Linha de comando Interface do Futon RESTful API
Cria documentos no formato JSON

21 CouchDB RESTful API Leitura do banco de dados
Escreve: GET Retorna: {"couchdb":"Welcome","version":"1.0.1"}

22 CouchDB RESTful API Criando ou atualizando o banco de dados
Escreve: PUT Retorna: {"ok":true}

23 CouchDB RESTful API Deletando o banco de dados
Escreve: DELETE Retorna: {"ok":true}

24 CouchDB RESTful API Criando o documento
Escreve: PUT Retorna: {"ok":true,"id":"doc","rev":"1-446a0c701e94053b4c3baaa5ef3fe68c"}

25 me":"Henrique","apelido":"Gog\u00f3"}
CouchDB RESTful API Ver o documento Escreve: GET Retorna: {"_id":"doc","_rev":"1- 446a0c701e94053b4c3baaa5ef3fe68c","no me":"Henrique","apelido":"Gog\u00f3"}

26 CouchDB RESTful API Atualizar o documento
Escreve: PUT -d '{"_rev":"1-446a0c701e94053b4c3baaa5ef3fe68c", "apelido":"Gogs"}‘ Retorna: {"ok":true,"id":"doc","rev":"2- ca9a532ec1124aa91b5a8da"}

27 CouchDB RESTful API Deletar o documento
Escreve: DELETE ca9a532ec1124aa91b5a8da Retorna: {"ok":true,"id":"doc","rev":"3-4c d7d38e57fe92a1b51fc667d"}

28 CouchDB MapReduce function(doc) {
if (doc.city == "Fortaleza") emit(doc.title,doc.month+"/"+doc.year); }

29 CouchDB Map

30 CouchDB View

31 CouchDB View

32 CouchDB Reduce function(keys, values) { return values; }

33 CouchDB Reduce

34 CouchDB View

35

36 MongoDB Apresentação da ferramenta Código aberto
Alta performance (desempenho) Sem esquemas Orientado à documentos Escrito em C++ Multiplataforma É formado por um conjunto de Aplicativos JSON

37 MongoDB Criação Início 2007 1ª versão em 2009
Versão atual: MongoDB 2.4 Released

38 MongoDB Funcionamento
JSON – estilo de documento com esquemas dinâmicos para oferecer simplicidade e poder. Suporte de índice completo Auto-Sharding - escala horizontalmente sem comprometer a funcionalidade. Consultas Ricas, baseada em documentos MapReduce - Agregação flexível e processamento de dados. GridFS - Armazenar arquivos de qualquer tamanho sem complicação.

39 MongoDB Analogia à BD Relacional O documento JSON seria o registro;
A collection seria uma tabela; Os índices seriam os índices mesmo; O embedding e o linking seria o join.

40 MongoDB Algumas características interessantes do MongoDB
É possível acrescentar dados, por meio de um update; Não existe um schema dentro das coleções, ou seja, as collections podem ser dinâmicas; Há upserts, que podem atualizar se documento já existe, ou cria se ele não existe; Você pode armazenar o seu dado da forma que ele ocorre na “natureza”.

41 MongoDB Comparando expressões Create

42 MongoDB Comparando expressões Delete

43 MongoDB Comparando expressões Update

44 MongoDB Comparando expressões Insert

45 MongoDB Comparando expressões Select

46 MongoDB Comparando expressões Select

47 MongoDB Comparando expressões Select

48 MongoDB Empresas que utilizam o MongoDB
Dentre as empresas que já usam o MongoDB, destaque para a globo.com (com o Cartola FC), SourceForge e a FourSquare. Outros projetos com MongoDB na Globo.com são: receitas.com, novo catálogo de vídeos da emissora, com 800 mil arquivos cadastrados, e o site de participações em eventos e programas da Globo.

49 MongoDB Avaliação da equipe do Cartola FC
Velocidade (2x mais rápido que o MySQL) Sem necessidade de um ORM (não tem abstração de tabela, por exemplo) Acesso mais natural aos dados (não tem que escrever query) Sem schema / sem migrations (com exceções, mas em geral não há problema de executar migration) Failover automático Possibilidade de escalar escritas com Sharding OBS.: Em alguns momentos específicos o cartola obteve quase 30 mil sessões simultâneas.

50 MongoDB Agora pense em vídeo HD, geolocalização, mensagens em tempo real, realidade aumentada, imagens em tempo próximo ao real por satélite. Pense em todos esses dados, e na velocidade que as pessoas vão querer isso. Então, pense sobre qual banco de dados que você deseja começar a usar agora.

51 Duvidas?

52 Referências Documentação. Disponível em: < Creative Commons. Processamento de Dados Massivos/Projeto e implementação de aplicações Big Data/Agregação eficiente de dados temporais. Disponível em: Ianni, Vinicius. Introdução aos bancos de dados NoSQL. Disponível em: < Ianni, Vinicius. Big Data: Algumas definições e, sim, serve também para o pequeno negócio! Disponível em: < Lerner, Alberto. Introdução ao MongoDB – Direto da fonte! Disponível em: < Lennon, Joe. Explore o MongoDB. Disponível em: < Nascimento, Jean3 Razões para usar MongoDB. Disponível em: < Nascimento, Jean. Como utilizar selects com MongoDB. Disponível em: <


Carregar ppt "Orientado à documentos"

Apresentações semelhantes


Anúncios Google