Banco de Dados NoSQL de
     código aberto
Jean Carlo Nascimento aka SUISSA   Nodeware
Líder Técnico                      http://www.nodeware.com.br
Email: suissa@nodeware.com.br      Twitter:@nodeware
Twitter: @osuissa
http://about.me/suissa
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
Tipos de Armazenamento
●   Coluna
●   Documento
●   Chave/Valor
●   Grafo
●   Object
●   XML
●   Mutimodel
BigTable
http://static.googleusercontent.
com/external_content/untrusted_dlcp/research.google.
com/pt-BR//archive/bigtable-osdi06.pdf
{
                       Cassandra
    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
●   O melhor do BigTable e Dynamo
●   Java
●   Licença Apache
●   Protocol personalizado, Thrift




http://cassandra.apache.org/
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/
Cassandra
Melhor 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/
Redis
 ●Super rápido
● C/C++
● Licença: BSD
● Telnet-like




http://redis.io/
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/
Redis
Melhor 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/
MongoDB
 ● Written in: C++
 ● Mantém algumas propriedades favoráveis ​de SQL.
    (Query, index)
 ● Licença: AGPL
 ● Protocolo personalizado, REST




http://www.mongodb.org/
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/
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/
MongoDB
 Melhor 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/
Neo4J
 ●   Java
 ●   Grafos - dados conectados
 ●   Licença: GPL, AGPL/commercial
 ●   Protocolo HTTP/REST (ou incorporado no Java)




http://neo4j.org/
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/
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/
Neo4J
 Melhor 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/
Fisl   banco de dados no sql de código aberto

Fisl banco de dados no sql de código aberto

  • 1.
    Banco de DadosNoSQL de código aberto Jean Carlo Nascimento aka SUISSA Nodeware Líder Técnico http://www.nodeware.com.br Email: suissa@nodeware.com.br Twitter:@nodeware Twitter: @osuissa http://about.me/suissa
  • 2.
    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
  • 6.
    Tipos de Armazenamento ● Coluna ● Documento ● Chave/Valor ● Grafo ● Object ● XML ● Mutimodel
  • 8.
  • 11.
    { Cassandra 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}, } }
  • 12.
    Cassandra ● O melhor do BigTable e Dynamo ● Java ● Licença Apache ● Protocol personalizado, Thrift http://cassandra.apache.org/
  • 13.
    Cassandra ● Consulta porfaixa 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/
  • 14.
    Cassandra Melhor usado: Quandovocê 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/
  • 17.
    Redis ●Super rápido ●C/C++ ● Licença: BSD ● Telnet-like http://redis.io/
  • 18.
    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/
  • 19.
    Redis Melhor uso: Paramudanç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/
  • 22.
    MongoDB ● Writtenin: C++ ● Mantém algumas propriedades favoráveis ​de SQL. (Query, index) ● Licença: AGPL ● Protocolo personalizado, REST http://www.mongodb.org/
  • 23.
    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/
  • 24.
    MongoDB ● Usaarquivos 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/
  • 25.
    MongoDB Melhor 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/
  • 28.
    Neo4J ● Java ● Grafos - dados conectados ● Licença: GPL, AGPL/commercial ● Protocolo HTTP/REST (ou incorporado no Java) http://neo4j.org/
  • 29.
    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/
  • 30.
    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/
  • 31.
    Neo4J Melhor 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/