nosql: o futuro dos bancos de dados para a web @caironoleto

Post on 21-Apr-2015

107 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

caironoleto@gmail.comcaironoleto@gmail.com

http://caironoleto.comhttp://caironoleto.com

top related