SlideShare uma empresa Scribd logo
1 de 31
Persistência NOSQL e tecnologias afins Daniel   Carneiro
O que é NOSQL ,[object Object]
Modelo de persistência que não utiliza SQL
Surgiu da necessidade de implementar soluções em que bancos de dados relacionais não se encaixam perfeitamente.
Porquê ,[object Object]
2 Tipos: ,[object Object]
Horizontal – Mais máquinas ,[object Object],[object Object]
Benefícios ,[object Object]
Distribuído
Performance
Suporte a grandes bases de dados
Schema-free
”One size doesn't fit all”
Sharding ,[object Object]
Objetivo principal: Quebrar sua tabelas, agrupando-as por dados semenhantes
Várias formas: ,[object Object]
Horizontal ,[object Object]
by Key / Hash
MapReduce ,[object Object]
Map step: o nó pricipal quebra a tarefa em partes e distribui para os outros nós processarem
Reduce step: o nó pai combina as respostas recebidas pelos outros, criando a resposta final do problema a ser resolvido
MapReduce (cont.) Exemplo - Contar o numero de vezes que cada palavra aparece em um conjunto de documentos: void map(String name, String document): // name: document name // document: document contents for each word w in document: EmitIntermediate(w, "1"); void reduce(String word, Iterator partialCounts): // word: a word // partialCounts: a list of aggregated partial counts int result = 0; for each pc in partialCounts: result += ParseInt(pc); Emit(AsString(result));
Tipos ,[object Object]
Wide Column Store
Document Store
Graph Store
Column Oriented Store
Tipos (cont.) Size Complexity Key-Value Wide-Column Document Graph 90% of use cases
Key / Value Store ,[object Object]
No index
No search

Mais conteúdo relacionado

Destaque

Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01julianabdpaiva
 
TDC 2011 - Arquitetura de desfesa contra injeção de SQL
TDC 2011 - Arquitetura de desfesa contra injeção de SQLTDC 2011 - Arquitetura de desfesa contra injeção de SQL
TDC 2011 - Arquitetura de desfesa contra injeção de SQLLuis Asensio
 
Quer ser um excelente dba
Quer ser um excelente dbaQuer ser um excelente dba
Quer ser um excelente dbaVitor Fava
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em pythonAlvaro Oliveira
 
Certificações em TI e o Mercado de Trabalho
Certificações em TI e o Mercado de TrabalhoCertificações em TI e o Mercado de Trabalho
Certificações em TI e o Mercado de Trabalhojcmarcussojr
 
Descoberta de Conhecimento em Bancos de Dados e Mineração de Dados
Descoberta de Conhecimento em Bancos de Dados e Mineração de DadosDescoberta de Conhecimento em Bancos de Dados e Mineração de Dados
Descoberta de Conhecimento em Bancos de Dados e Mineração de DadosEduardo de Lucena Falcão
 
Apostila de banco de dados e sql
Apostila de banco de dados e sqlApostila de banco de dados e sql
Apostila de banco de dados e sqlYara Santos
 
Aprenda a Programar Direito!
Aprenda a Programar Direito!Aprenda a Programar Direito!
Aprenda a Programar Direito!Álvaro Justen
 
Apostila de sql oracle (pt br)
Apostila de sql   oracle (pt br)Apostila de sql   oracle (pt br)
Apostila de sql oracle (pt br)Sandro Freitas
 
Minicurso: O que o twitter está pensando? Extraindo informações do twitter ut...
Minicurso: O que o twitter está pensando? Extraindo informações do twitter ut...Minicurso: O que o twitter está pensando? Extraindo informações do twitter ut...
Minicurso: O que o twitter está pensando? Extraindo informações do twitter ut...Adolfo Guimaraes
 

Destaque (18)

Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01
 
Hoje eu sou um dba
Hoje eu sou um dbaHoje eu sou um dba
Hoje eu sou um dba
 
TDC 2011 - Arquitetura de desfesa contra injeção de SQL
TDC 2011 - Arquitetura de desfesa contra injeção de SQLTDC 2011 - Arquitetura de desfesa contra injeção de SQL
TDC 2011 - Arquitetura de desfesa contra injeção de SQL
 
Quer ser um excelente dba
Quer ser um excelente dbaQuer ser um excelente dba
Quer ser um excelente dba
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
 
Certificações em TI e o Mercado de Trabalho
Certificações em TI e o Mercado de TrabalhoCertificações em TI e o Mercado de Trabalho
Certificações em TI e o Mercado de Trabalho
 
Descoberta de Conhecimento em Bancos de Dados e Mineração de Dados
Descoberta de Conhecimento em Bancos de Dados e Mineração de DadosDescoberta de Conhecimento em Bancos de Dados e Mineração de Dados
Descoberta de Conhecimento em Bancos de Dados e Mineração de Dados
 
Curriculo2016
Curriculo2016Curriculo2016
Curriculo2016
 
Apostila de banco de dados e sql
Apostila de banco de dados e sqlApostila de banco de dados e sql
Apostila de banco de dados e sql
 
Aprenda a Programar Direito!
Aprenda a Programar Direito!Aprenda a Programar Direito!
Aprenda a Programar Direito!
 
Introdução ao ORM
Introdução ao ORMIntrodução ao ORM
Introdução ao ORM
 
Apostila de sql oracle (pt br)
Apostila de sql   oracle (pt br)Apostila de sql   oracle (pt br)
Apostila de sql oracle (pt br)
 
Python + algoritmo
Python + algoritmoPython + algoritmo
Python + algoritmo
 
Tipos Abstratos de Dados e Encapsulamento
Tipos Abstratos de Dados e EncapsulamentoTipos Abstratos de Dados e Encapsulamento
Tipos Abstratos de Dados e Encapsulamento
 
Apostila Oracle
Apostila OracleApostila Oracle
Apostila Oracle
 
Apostila sql2013
Apostila sql2013Apostila sql2013
Apostila sql2013
 
Minicurso: O que o twitter está pensando? Extraindo informações do twitter ut...
Minicurso: O que o twitter está pensando? Extraindo informações do twitter ut...Minicurso: O que o twitter está pensando? Extraindo informações do twitter ut...
Minicurso: O que o twitter está pensando? Extraindo informações do twitter ut...
 
Conhecendo o Visual Studio 11
Conhecendo o Visual Studio 11Conhecendo o Visual Studio 11
Conhecendo o Visual Studio 11
 

Semelhante a Bancos de dados No-SQL e afins

NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPAricelio Souza
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopDiego Sana
 
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoJava No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoÉberli Cabistani Riella
 
PHP Conference 2017: Como melhorar seu código com Laravel Collections
PHP Conference 2017: Como melhorar seu código com Laravel CollectionsPHP Conference 2017: Como melhorar seu código com Laravel Collections
PHP Conference 2017: Como melhorar seu código com Laravel CollectionsAryel Tupinambá
 
Mapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORMMapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORMFábio Rehm
 
Replicacao Object Sistemas
Replicacao Object SistemasReplicacao Object Sistemas
Replicacao Object Sistemastaniamaciel
 
MongoDB - Performance e Escalabilidade para aplicações web
MongoDB - Performance e Escalabilidade para aplicações webMongoDB - Performance e Escalabilidade para aplicações web
MongoDB - Performance e Escalabilidade para aplicações webRafael Nunes
 
Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon RedshiftPath to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon RedshiftAmazon Web Services LATAM
 
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBRAvaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBRJulio Viegas
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - IntroduçãoMarco Pinheiro
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Ramon Durães
 

Semelhante a Bancos de dados No-SQL e afins (20)

NoSQL Livre
NoSQL LivreNoSQL Livre
NoSQL Livre
 
No sql std
No sql stdNo sql std
No sql std
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day Workshop
 
Seminário Hadoop
Seminário HadoopSeminário Hadoop
Seminário Hadoop
 
Palestra Sobre REST
Palestra Sobre RESTPalestra Sobre REST
Palestra Sobre REST
 
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoJava No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
 
PHP Conference 2017: Como melhorar seu código com Laravel Collections
PHP Conference 2017: Como melhorar seu código com Laravel CollectionsPHP Conference 2017: Como melhorar seu código com Laravel Collections
PHP Conference 2017: Como melhorar seu código com Laravel Collections
 
Mapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORMMapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORM
 
MAC5855 - NoSQL
MAC5855 - NoSQLMAC5855 - NoSQL
MAC5855 - NoSQL
 
Replicacao Object Sistemas
Replicacao Object SistemasReplicacao Object Sistemas
Replicacao Object Sistemas
 
MongoDB - Performance e Escalabilidade para aplicações web
MongoDB - Performance e Escalabilidade para aplicações webMongoDB - Performance e Escalabilidade para aplicações web
MongoDB - Performance e Escalabilidade para aplicações web
 
Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon RedshiftPath to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
 
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBRAvaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
Amazon Redshift
Amazon RedshiftAmazon Redshift
Amazon Redshift
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
 
Cakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudouCakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudou
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
 
Bancos de dados NoSQL (Not only sql)
Bancos de dados NoSQL (Not only sql)Bancos de dados NoSQL (Not only sql)
Bancos de dados NoSQL (Not only sql)
 

Mais de dcarneir

Introdução ao desenvolvimento em hardware
Introdução ao desenvolvimento em hardwareIntrodução ao desenvolvimento em hardware
Introdução ao desenvolvimento em hardwaredcarneir
 
Certificados digitais
Certificados digitaisCertificados digitais
Certificados digitaisdcarneir
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scriptingdcarneir
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scriptingdcarneir
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scriptingdcarneir
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scriptingdcarneir
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scriptingdcarneir
 

Mais de dcarneir (13)

Introdução ao desenvolvimento em hardware
Introdução ao desenvolvimento em hardwareIntrodução ao desenvolvimento em hardware
Introdução ao desenvolvimento em hardware
 
Redshift
RedshiftRedshift
Redshift
 
Bitcoin
BitcoinBitcoin
Bitcoin
 
Certificados digitais
Certificados digitaisCertificados digitais
Certificados digitais
 
Awk
AwkAwk
Awk
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
FLOSS
FLOSSFLOSS
FLOSS
 
IPv6
IPv6IPv6
IPv6
 
Regex
RegexRegex
Regex
 

Bancos de dados No-SQL e afins

Notas do Editor

  1. Eric Evans – Rackspace - DDD Johan Oskarsson – Last.fm – evento sobre bases open-source distribuídas Not Only Sql
  2. Facebook – 40G Files, 10G Fotos, 1PiB, 5K page views /s, 36K qps, 1 DBA Ebay – 2PiB data Twitter – (Cassandra?) - 50 Mi Tweets/dia
  3. - Comodity Hardware: EMT64, 16GB Ram, 6x15k RAID10 -> Para conseguir esses benefícios é necessário aplicacar as técnicas
  4. - Dados são denormalizados - Particionamento do pai e dos filhos - Core tables são replicados - Pode ser combinado com particionamento vertical -> Para conseguir buscar os dados é necessário MapReduce
  5. TODO Explicacao
  6. Key/Value – HashTable
  7. 90% - Bilhoes de linhas
  8. Key/Value Store Biblioteca stand-alone Versões mais novas possuem HA
  9. Key Value Store Biblioteca stand-alone Servidor Tokyo Tyrant
  10. Outros Redis Githut Data Partition 80-110k op/s Scalaris
  11. Entity sem um pai é o root do EntityGroup Todo EntityGroup é operado em uma única operação
  12. Vantagem: Interface REST pública
  13. Yahoo
  14. Melhor performance Sem transação
  15. Twitter – mudou recentemente Facebook – Inbox - 600+ cores / 120+ TB disk space
  16. Consultas mais fáceis Dados mais flexiveis Menos escalabilidade
  17. Alta concorrencia
  18. Futura HA SourceForge / GitHub
  19. Entidades se relacionam Relacionamento podem ter atributos Traversal framework
  20. Neo4j – java, scallable, embedded InfoGrid – restful, external data(ex. Rss, atom)
  21. 100x performance on ad-hoc
  22. TODO