fisl banco de dados no sql de código aberto

32
Banco de Dados NoSQL de código aberto Jean Carlo Nascimento aka SUISSA Líder Técnico Email: [email protected] Twitter: @osuissa http://about.me/suissa Nodeware http://www.nodeware.com.br Twitter:@nodeware

Upload: suissa-corp

Post on 28-Nov-2014

2.201 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

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

Banco de Dados NoSQL de código aberto

Jean Carlo Nascimento aka SUISSALíder TécnicoEmail: [email protected] Twitter: @osuissahttp://about.me/suissa

Nodewarehttp://www.nodeware.com.br Twitter:@nodeware

Page 2: Fisl   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

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

Tipos de Armazenamento

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

Page 7: Fisl   banco de dados no sql de código aberto
Page 8: Fisl   banco de dados no sql de código aberto

BigTable

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

Page 9: Fisl   banco de dados no sql de código aberto
Page 10: Fisl   banco de dados no sql de código aberto
Page 11: Fisl   banco de dados no sql de código aberto

{name: "homeAddress",value: {

street: { name: "street", value: "1234 x street", timestamp: 123456789},

city: { name: "city", value: "san francisco", timestamp: 123456789},

zip: { name: "zip", value: "94107", timestamp: 123456789},

}}

Cassandra

Page 12: Fisl   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: Fisl   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: Fisl   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: Fisl   banco de dados no sql de código aberto
Page 16: Fisl   banco de dados no sql de código aberto
Page 17: Fisl   banco de dados no sql de código aberto

Redis● Super rápido

● C/C++● Licença: BSD● Telnet-like

http://redis.io/

Page 18: Fisl   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 19: Fisl   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 20: Fisl   banco de dados no sql de código aberto
Page 21: Fisl   banco de dados no sql de código aberto
Page 22: Fisl   banco de dados no sql de código aberto

MongoDB

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

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

http://www.mongodb.org/

Page 23: Fisl   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 24: Fisl   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 25: Fisl   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 26: Fisl   banco de dados no sql de código aberto
Page 27: Fisl   banco de dados no sql de código aberto
Page 28: Fisl   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 29: Fisl   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 30: Fisl   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 ler

http://neo4j.org/

Page 31: Fisl   banco de dados no sql de código aberto

Neo4JMelhor usado: Para gráfico de estilo, ricos ou complexos, os dados interligados. 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 32: Fisl   banco de dados no sql de código aberto