Upload
internet
View
107
Download
1
Embed Size (px)
Citation preview
NoSQL: O Futuro dos NoSQL: O Futuro dos Bancos de Dados para a Bancos de Dados para a WebWeb@caironoleto @caironoleto
Sobre o palestranteSobre o palestrante
Cairo NoletoCairo Noleto
Analista de Técnologia do Jus NavigandiAnalista de Técnologia do Jus Navigandi
Co-fundador do TrendtimeCo-fundador do Trendtime
Vocês vão ver/ouvirVocês vão ver/ouvir
Introdução sobre o NoSQLIntrodução sobre o NoSQL
Os diferentes tiposOs diferentes tipos
Impacto na escalabilidadeImpacto na escalabilidade
Quem está usando NoSQLQuem está usando NoSQL
Introdução ao NoSQLIntrodução ao NoSQL
Mas o que é mesmo esse NoSQL?!Mas o que é mesmo esse NoSQL?!
Por quê NoSQL?!Por quê NoSQL?!
Que dizer que vai acabar com os bancos de Que dizer que vai acabar com os bancos de dados relacionais!?dados relacionais!?
Introdução ao NoSQLIntrodução ao NoSQL
A real necessidade dos bancos de dados não A real necessidade dos bancos de dados não relacionaisrelacionais
CaracterísticasCaracterísticas
EscalabilidadeEscalabilidade
Sem esquema!Sem esquema!
Introdução ao NoSQLIntrodução ao NoSQL
curl -X POST curl -X POST http://localhost:5984/_replicatehttp://localhost:5984/_replicate -d -d ‘{“source”:”‘{“source”:”http://localhost:5984/sasichttp://localhost:5984/sasic”, ”, “target”:”http://ufpi.br:5984/sasic”}’“target”:”http://ufpi.br:5984/sasic”}’
Introdução ao NoSQLIntrodução ao NoSQL
A real necessidade dos bancos de dados não A real necessidade dos bancos de dados não relacionaisrelacionais
CaracterísticasCaracterísticas
EscalabilidadeEscalabilidade
Sem esquema!Sem esquema!
Introdução ao NoSQLIntrodução ao NoSQL> db.users.insert({name:'Cairo', last_name:'Noleto'})> db.users.insert({name:'Cairo', last_name:'Noleto'})
> db.users.find()> db.users.find()
{ "_id" : ObjectId("4bc7c943898d44634eceb376"), "name" : { "_id" : ObjectId("4bc7c943898d44634eceb376"), "name" : "Cairo", "last_name" : "Noleto" }"Cairo", "last_name" : "Noleto" }
> db.users.insert({name:'Cairo', last_name:'Noleto', > db.users.insert({name:'Cairo', last_name:'Noleto', birth_date:'1986'})birth_date:'1986'})
> db.users.find()> db.users.find()
{ "_id" : ObjectId("4bc7c943898d44634eceb376"), "name" : { "_id" : ObjectId("4bc7c943898d44634eceb376"), "name" : "Cairo", "last_name" : "Noleto" }"Cairo", "last_name" : "Noleto" }
{ "_id" : ObjectId("4bc7c97d898d44634eceb377"), "name" : { "_id" : ObjectId("4bc7c97d898d44634eceb377"), "name" : "Cairo", "last_name" : "Noleto", "birth_date" : "1986" }"Cairo", "last_name" : "Noleto", "birth_date" : "1986" }
Introdução ao NoSQLIntrodução ao NoSQL
A real necessidade dos bancos de dados não A real necessidade dos bancos de dados não relacionaisrelacionais
CaracterísticasCaracterísticas
EscalabilidadeEscalabilidade
Sem esquema!Sem esquema!
Map/ReduceMap/Reduce
Introdução ao NoSQLIntrodução ao NoSQL
A real necessidade dos bancos de dados não A real necessidade dos bancos de dados não relacionaisrelacionais
CaracterísticasCaracterísticas
EscalabilidadeEscalabilidade
Sem esquema!Sem esquema!
Map/ReduceMap/Reduce
Key/valueKey/value
Introdução ao NoSQLIntrodução ao NoSQL
A real necessidade dos bancos de dados não A real necessidade dos bancos de dados não relacionaisrelacionais
CaracterísticasCaracterísticas
EscalabilidadeEscalabilidade
Sem esquema!Sem esquema!
Map/ReduceMap/Reduce
Key/valueKey/value
OutrasOutras
Os diferentes tiposOs diferentes tipos
Bancos orientado a documentosBancos orientado a documentos
Bancos orientados a Bancos orientados a documentosdocumentos
Os diferentes tiposOs diferentes tipos
Bancos orientado a documentosBancos orientado a documentos
Key/valueKey/value
Key/valueKey/value
Os diferentes tiposOs diferentes tipos
Bancos orientado a documentosBancos orientado a documentos
Key/valueKey/value
Column DatabaseColumn Database
Column DatabaseColumn Database
Os diferentes tiposOs diferentes tipos
Bancos orientado a documentosBancos orientado a documentos
Key/valueKey/value
Column DatabaseColumn Database
Graph DatabaseGraph Database
Graph DatabaseGraph Database
Os diferentes tiposOs diferentes tipos
Bancos orientado a documentosBancos orientado a documentos
Key/valueKey/value
Column DatabaseColumn Database
Graph DatabaseGraph Database
Qual deles devo usar?Qual deles devo usar?
Impactos na Impactos na escalabilidadeescalabilidade
Escalabilidade?!Escalabilidade?!
Escalabilidade verticalEscalabilidade vertical
Escalabilidade verticalEscalabilidade vertical
Impactos na Impactos na escalabilidadeescalabilidade
Escalabilidade?!Escalabilidade?!
Escalabilidade verticalEscalabilidade vertical
Escalabilidade horizontalEscalabilidade horizontal
Escalabilidade Escalabilidade horizontalhorizontal
Impactos na Impactos na escalabilidadeescalabilidade
Escalabilidade?!Escalabilidade?!
Escalabilidade verticalEscalabilidade vertical
Escalabilidade horizontalEscalabilidade horizontal
Escalabilidade em bancos relacionaisEscalabilidade em bancos relacionais
Impactos na Impactos na escalabilidadeescalabilidade
ReplicaçãoReplicação
Master - MasterMaster - Master
Master - MasterMaster - Master
Impactos na Impactos na escalabilidadeescalabilidade
ReplicaçãoReplicação
Master - MasterMaster - Master
Master - SlaveMaster - Slave
Master - SlaveMaster - Slave
Impactos na Impactos na escalabilidadeescalabilidade
ReplicaçãoReplicação
Master - MasterMaster - Master
Master - SlaveMaster - Slave
ShardingSharding
Impactos na Impactos na escalabilidadeescalabilidade
ReplicaçãoReplicação
Master - MasterMaster - Master
Master - SlaveMaster - Slave
ShardingSharding
Replicação automáticaReplicação automática
Quem está usando Quem está usando NoSQLNoSQL
Bancos orientado a documentosBancos orientado a documentos
TrendTime (MongoDB)TrendTime (MongoDB)
Jus Navigandi (CouchDB)Jus Navigandi (CouchDB)
Be On The Net - Improve.it (CouchDB)Be On The Net - Improve.it (CouchDB)
Busk.com (MongoDB)Busk.com (MongoDB)
BBC (CouchDB)BBC (CouchDB)
The New York Times (MongoDB)The New York Times (MongoDB)
Quem está usando Quem está usando NoSQLNoSQL
Column FamilyColumn Family
Jus Navigandi (Cassandra)Jus Navigandi (Cassandra)
Buzz Volume (Cassandra)Buzz Volume (Cassandra)
Twitter (Cassandra)Twitter (Cassandra)
Facebook (Cassandra - são os criadores ;)Facebook (Cassandra - são os criadores ;)
Google (BigTable)Google (BigTable)
Quem está usando Quem está usando NoSQLNoSQL
Você, no seu próximo projeto ;)Você, no seu próximo projeto ;)
Perguntas?Perguntas?
ContatoContato
@caironoleto@caironoleto
[email protected]@gmail.com
http://caironoleto.comhttp://caironoleto.com