36
Banco de Dados NoSQL de código aberto Jean Carlo Nascimento aka SUISSA CTO - Atrion Web Developer - Tagon8 http://about.me/suissa

Secot banco de dados no sql de código aberto

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Secot   banco de dados no sql de código aberto

Banco de Dados NoSQL de código aberto

Jean Carlo Nascimento aka SUISSACTO - AtrionWeb Developer - Tagon8

http://about.me/suissa

Page 2: Secot   banco de dados no sql de código aberto

Sobre o autor

● Desenvolvedor web há 8 anos● Formado pela UTF-PR em SI● Especialista em Desenvolvimento Web● Criador do Sampa.js e FrontinSampa● Evangelista Node.js e NoSQL● nosqlbr.com.br● javascriptbrasil.com● jquerybrasil.org● frontendbrasil.com.br

Page 3: Secot   banco de dados no sql de código aberto
Page 4: Secot   banco de dados no sql de código aberto
Page 5: Secot   banco de dados no sql de código aberto
Page 6: Secot   banco de dados no sql de código aberto
Page 7: Secot   banco de dados no sql de código aberto

Tipos de Armazenamento

● Coluna● Documento● Chave/Valor● Grafo● Object● XML● Mutimodel

Page 8: Secot   banco de dados no sql de código aberto
Page 9: Secot   banco de dados no sql de código aberto

BigTable

"Bigtable is used by more than sixty Google products and projects, including Google Analytics, Google Finance, Orkut, Personalized Search, Writely, and Google Earth."

http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/pt-BR//archive/bigtable-osdi06.pdf

Page 10: Secot   banco de dados no sql de código aberto
Page 11: Secot   banco de dados no sql de código aberto
Page 12: Secot   banco de dados no sql de código aberto

Cassandra● O melhor do BigTable e Dynamo● Java● Licença Apache● Protocol personalizado, Thrift

http://cassandra.apache.org/

Page 13: Secot   banco de dados no sql de código aberto

Cassandra

● Consulta por faixa de coluna e chaves● BigTable-como características: colunas, famílias de

coluna ● Tem índices secundários● As gravações são muito mais rápido do que lê (!)● Map / Reduce possível com Apache Hadoop

http://cassandra.apache.org/

Page 14: Secot   banco de dados no sql de código aberto

CassandraMelhor usado: Quando você escreve mais do que você lê (logging). Se todos os componentes do sistema deve ser em Java.

Por exemplo: Bancos, setor financeiro (Embora não necessariamente para transações financeiras, mas estas indústrias são muito maiores do que isso). Ótimo para aplicações em tempo real e análise de dados.

http://cassandra.apache.org/

Page 15: Secot   banco de dados no sql de código aberto
Page 16: Secot   banco de dados no sql de código aberto
Page 17: Secot   banco de dados no sql de código aberto
Page 18: Secot   banco de dados no sql de código aberto
Page 19: Secot   banco de dados no sql de código aberto
Page 20: Secot   banco de dados no sql de código aberto
Page 21: Secot   banco de dados no sql de código aberto

Redis

● Super rápido● C/C++● Licença: BSD● Telnet-like

http://redis.io/

Page 22: Secot   banco de dados no sql de código aberto

Redis● Replicação master-slave● Possui transações● Valores podem expirar (como em um cache)● Pub/Sub permite implementação de aplicação de

mensagens

http://redis.io/

Page 23: Secot   banco de dados no sql de código aberto

RedisMelhor uso: Para mudança rápida de dados com um banco de dados de tamanho previsível (deve caber principalmente na memória).

Exemplos: Os preços das ações. Analytics. Coleção de dados em tempo real. Comunicação em tempo real.

http://redis.io/

Page 24: Secot   banco de dados no sql de código aberto
Page 25: Secot   banco de dados no sql de código aberto
Page 26: Secot   banco de dados no sql de código aberto

MongoDB

● C++● Mantém algumas propriedades favoráveis de SQL.

(Query, index)● Licença: AGPL● Protocolo personalizado, REST

http://www.mongodb.org/

Page 27: Secot   banco de dados no sql de código aberto

MongoDB

● Master / slave de replicação (failover automático com conjuntos de réplicas)

● Sharding embutido● As consultas são expressões javascript● Executa funções javascript do lado do servidor

http://www.mongodb.org/

Page 28: Secot   banco de dados no sql de código aberto

MongoDB

● Usa arquivos de memória mapeada para armazenamento de dados

● Em sistemas de 32 bits, limitado a ~ 2.5Gb● GridFS para armazenar grande de dados de metadados● Tem indexação geoespacial

http://www.mongodb.org/

Page 29: Secot   banco de dados no sql de código aberto

MongoDBMelhor usado: Se você precisar de consultas dinâmicas. Se você precisa de bom desempenho em um banco de dados grande. Sistemas de logging.

Por exemplo: Para a maioria das coisas que você faria com MySQL ou PostgreSQL, mas ter colunas predefinidas realmenteseguram você.

http://www.mongodb.org/

Page 30: Secot   banco de dados no sql de código aberto
Page 31: Secot   banco de dados no sql de código aberto
Page 32: Secot   banco de dados no sql de código aberto

Neo4J

● Java● Grafos - dados conectados● Licença: GPL, AGPL/commercial● Protocolo HTTP/REST (ou incorporado no Java)

http://neo4j.org/

Page 33: Secot   banco de dados no sql de código aberto

Neo4J

● Standalone, ou embutido em aplicações Java● ACID completo (incluindo dados duráveis)● Ambos os nós e os relacionamentos podem ter

metadados● Linguagem de consulta integrada ("Cypher")● Linguagem "Gremlin" pode ser usada● Indexação de nós e relacionamentos

http://neo4j.org/

Page 34: Secot   banco de dados no sql de código aberto

Neo4J

● Administrador web agradável auto-suficiente● Vários algoritmos de busca de caminho● Indexação de chaves e relacionamentos● Optimizado para leitura

http://neo4j.org/

Page 35: Secot   banco de dados no sql de código aberto

Neo4JMelhor usado: Para grafos ricos ou complexos, e para relacionamento entre entidades. Neo4j é bastante diferente dos outros neste sentido.

Por exemplo: relações sociais, transportes públicos, mapas rodoviários, topologias de rede.

http://neo4j.org/

Page 36: Secot   banco de dados no sql de código aberto