Introdução a nosql - II SACIC

36
NoSQL: O Futuro dos NoSQL: O Futuro dos Bancos de Dados para Bancos de Dados para a Web a Web @caironoleto @caironoleto

description

Slides da apresentação no II SACIC

Transcript of Introdução a nosql - II SACIC

Page 1: Introdução a nosql - II SACIC

NoSQL: O Futuro dos NoSQL: O Futuro dos Bancos de Dados para a Bancos de Dados para a WebWeb@caironoleto @caironoleto

Page 2: Introdução a nosql - II SACIC

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

Page 3: Introdução a nosql - II SACIC

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

Page 4: Introdução a nosql - II SACIC

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!?

Page 5: Introdução a nosql - II SACIC

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!

Page 6: Introdução a nosql - II SACIC

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”}’

Page 7: Introdução a nosql - II SACIC

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!

Page 8: Introdução a nosql - II SACIC

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" }

Page 9: Introdução a nosql - II SACIC

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

Page 10: Introdução a nosql - II SACIC

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

Page 11: Introdução a nosql - II SACIC

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

Page 12: Introdução a nosql - II SACIC

Os diferentes tiposOs diferentes tipos

Bancos orientado a documentosBancos orientado a documentos

Page 13: Introdução a nosql - II SACIC

Bancos orientados a Bancos orientados a documentosdocumentos

Page 14: Introdução a nosql - II SACIC

Os diferentes tiposOs diferentes tipos

Bancos orientado a documentosBancos orientado a documentos

Key/valueKey/value

Page 15: Introdução a nosql - II SACIC

Key/valueKey/value

Page 16: Introdução a nosql - II SACIC

Os diferentes tiposOs diferentes tipos

Bancos orientado a documentosBancos orientado a documentos

Key/valueKey/value

Column DatabaseColumn Database

Page 17: Introdução a nosql - II SACIC

Column DatabaseColumn Database

Page 18: Introdução a nosql - II SACIC

Os diferentes tiposOs diferentes tipos

Bancos orientado a documentosBancos orientado a documentos

Key/valueKey/value

Column DatabaseColumn Database

Graph DatabaseGraph Database

Page 19: Introdução a nosql - II SACIC

Graph DatabaseGraph Database

Page 20: Introdução a nosql - II SACIC

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?

Page 21: Introdução a nosql - II SACIC

Impactos na Impactos na escalabilidadeescalabilidade

Escalabilidade?!Escalabilidade?!

Escalabilidade verticalEscalabilidade vertical

Page 22: Introdução a nosql - II SACIC

Escalabilidade verticalEscalabilidade vertical

Page 23: Introdução a nosql - II SACIC

Impactos na Impactos na escalabilidadeescalabilidade

Escalabilidade?!Escalabilidade?!

Escalabilidade verticalEscalabilidade vertical

Escalabilidade horizontalEscalabilidade horizontal

Page 24: Introdução a nosql - II SACIC

Escalabilidade Escalabilidade horizontalhorizontal

Page 25: Introdução a nosql - II SACIC

Impactos na Impactos na escalabilidadeescalabilidade

Escalabilidade?!Escalabilidade?!

Escalabilidade verticalEscalabilidade vertical

Escalabilidade horizontalEscalabilidade horizontal

Escalabilidade em bancos relacionaisEscalabilidade em bancos relacionais

Page 26: Introdução a nosql - II SACIC

Impactos na Impactos na escalabilidadeescalabilidade

ReplicaçãoReplicação

Master - MasterMaster - Master

Page 27: Introdução a nosql - II SACIC

Master - MasterMaster - Master

Page 28: Introdução a nosql - II SACIC

Impactos na Impactos na escalabilidadeescalabilidade

ReplicaçãoReplicação

Master - MasterMaster - Master

Master - SlaveMaster - Slave

Page 29: Introdução a nosql - II SACIC

Master - SlaveMaster - Slave

Page 30: Introdução a nosql - II SACIC

Impactos na Impactos na escalabilidadeescalabilidade

ReplicaçãoReplicação

Master - MasterMaster - Master

Master - SlaveMaster - Slave

ShardingSharding

Page 31: Introdução a nosql - II SACIC

Impactos na Impactos na escalabilidadeescalabilidade

ReplicaçãoReplicação

Master - MasterMaster - Master

Master - SlaveMaster - Slave

ShardingSharding

Replicação automáticaReplicação automática

Page 32: Introdução a nosql - II SACIC

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)

Page 33: Introdução a nosql - II SACIC

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)

Page 34: Introdução a nosql - II SACIC

Quem está usando Quem está usando NoSQLNoSQL

Você, no seu próximo projeto ;)Você, no seu próximo projeto ;)

Page 35: Introdução a nosql - II SACIC

Perguntas?Perguntas?

Page 36: Introdução a nosql - II SACIC

ContatoContato

@caironoleto@caironoleto

[email protected]@gmail.com

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