SlideShare uma empresa Scribd logo
1 de 33
NoSQL no Microsoft Azure 
Thiago Custódio 
Engenheiro de Software – MCT, MCSD, PSD I
@thdotnet 
/WindowsAzureBrasil 
thiago.custodio@brsolucoesintegradas.com.br 
http://thiagocustodio.azurewebsites.net
NoSQL no Azure 
Histórico 
Características 
Modelos de Dados 
Azure Table Service 
Azure Redis Cache 
Azure DocumentDB 
Conclusão
Novo projeto? Qual será 
o Banco de Dados 
Oracle, Sql Server, 
MySQL?
Histórico
Nascimento do relacional 
Linha do Tempo 
1970 
1980 
1990 
2000 
2010
Características
Características NoSQL 
• Não Relacional 
• Open Source 
• Habilidade para ser executado em Cluster 
• Flexível (schema free)
Modelo de Dados
Chave / Valor 
• Hashmap (persistido em disco) 
• Fácil de particionar 
• Exemplos: Redis, Riak, Memcached
Chave / Valor 
Chave Valor 
Palestra NoSQL no 
Azure 
Palestrante Thiago
Documento 
• Utilizam JSON 
• Principal problema (solução 
impedance mismatch) 
• Exemplos: MongoDB / CouchDB
Documento 
{ 
“nome”: “Thiago”, 
“sobrenome”: “Custodio”, 
“twitter”: “@thdotnet”, 
“tags”: [“nosql”, “azure”, “.NET”] 
}
Família de Colunas 
• Hashmaps dentro de hashmaps 
• Exemplos: Cassandra, HBASE
Família de Colunas 
{ 
“tc”:{ 
“nome”: “Thiago”, 
“sobrenome”: “Custodio”, 
“data-palestra”: “02/09/2014” 
} 
“ms”:{ 
“nome”: “Microsoft”, 
“data-fundacao”, “04/04/1975”, 
“produtos”: “Visual Studio, Office” 
} 
}
Grafos 
• Entidades (nós) x relacionamentos 
• Exemplos: OrientDB, Neo4J
Grafos
Azure Table Service
Azure Table Service
Azure Table Service
Azure Table Service 
public class Aluno : TableEntity 
{ 
public Aluno() 
{ 
} 
public Aluno(string nome,string sobreNome) 
{ 
this.PartitionKey = sobreNome; 
this.RowKey = nome; 
} 
public int Matricula { get; set; } 
public string Email { get; set; } 
}
Azure Table Service 
CloudStorageAccount cloudStorageAccount = 
CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]); 
CloudTableClient cloudTableClient = cloudStorageAccount.CreateCloudTableClient(); 
//Criar uma nova tabela 
var table = cloudTableClient.GetTableReference("alunos"); 
table.CreateIfNotExists(); 
//Entidade que iremos inserir 
Aluno aluno = new Aluno("Thiago", "Custodio"); 
aluno.Email = "meuemail@teste.com.br"; 
aluno.Matricula = 2013001; 
//Comando para inserir 
TableOperation insertOperation = TableOperation.Insert(aluno); 
//executando o comando de insert na nossa tabela 
table.Execute(insertOperation);
Azure Redis Cache
Azure Redis Cache 
• Versão customizada e gerenciada 
pelo Azure (PaaS) 
• Disponível no datacenter do Brasil 
(Preview) 
• Basic - Único nó até 26gb 
• Standard - dois nós (master/slave)
Código 
public class ExemploRedis 
{ 
ConnectionMultiplexer connection = 
ConnectionMultiplexer.Connect("contoso5.redis.cache.windows.net,ssl=true,password=..."); 
public void Add(string chave, string valor) 
{ 
IDatabase cache = connection.GetDatabase(); 
cache.StringSet(chave, valor); 
} 
public string Get(string chave) 
{ 
IDatabase cache = connection.GetDatabase(); 
return cache.StringGet(chave); 
} 
}
Azure Redis Cache 
• Armazenar Sessão (asp.net) no Azure Redis 
Cache 
• Compartilhar dados entre múltiplas instâncias 
• Páginas mais acessadas 
• Tracking de navegação de páginas por um 
usuário 
• Mensageria 
• Chat 
• Tokens temporários 
(ex: downloads rapidshare, etc)
Azure DocumentDB
Azure DocumentDB 
• Schema Free 
• Suporte à queries / stored 
procedures em JavaScript
Conclusão
2010 e além...
Referência
Dúvidas?
www.brsolucoesintegradas.com.br

Mais conteúdo relacionado

Destaque (20)

prospectus
prospectus prospectus
prospectus
 
Benefits of School, Work and Volunteering
Benefits of School, Work and VolunteeringBenefits of School, Work and Volunteering
Benefits of School, Work and Volunteering
 
Training
Training Training
Training
 
Differential
DifferentialDifferential
Differential
 
Under the Big Top - A Roberts Event
Under the Big Top - A Roberts EventUnder the Big Top - A Roberts Event
Under the Big Top - A Roberts Event
 
Tdc2014 azure redis cache
Tdc2014   azure redis cacheTdc2014   azure redis cache
Tdc2014 azure redis cache
 
0c9605215046f7a34f000000
0c9605215046f7a34f0000000c9605215046f7a34f000000
0c9605215046f7a34f000000
 
Kingdom Culture - Part 1 Nov 2015
Kingdom Culture - Part 1 Nov 2015Kingdom Culture - Part 1 Nov 2015
Kingdom Culture - Part 1 Nov 2015
 
Ausflec Road safety stats for exposed road users in Australia 2015
Ausflec Road safety stats for exposed road users in Australia 2015Ausflec Road safety stats for exposed road users in Australia 2015
Ausflec Road safety stats for exposed road users in Australia 2015
 
seni gypsum
seni gypsumseni gypsum
seni gypsum
 
Gas laws
Gas lawsGas laws
Gas laws
 
Basic concepts of i pr
Basic concepts  of i prBasic concepts  of i pr
Basic concepts of i pr
 
Love after marriage
Love after marriageLove after marriage
Love after marriage
 
GAS LAWS ppt
GAS LAWS pptGAS LAWS ppt
GAS LAWS ppt
 
Ionic bonding-Chemistry
Ionic bonding-ChemistryIonic bonding-Chemistry
Ionic bonding-Chemistry
 
FACTORS AFFECTING CAPITAL STRUCTURE
FACTORS AFFECTING CAPITAL STRUCTUREFACTORS AFFECTING CAPITAL STRUCTURE
FACTORS AFFECTING CAPITAL STRUCTURE
 
Seeing Without Sight : Eşref Armağan
Seeing Without Sight : Eşref ArmağanSeeing Without Sight : Eşref Armağan
Seeing Without Sight : Eşref Armağan
 
Circus slideshare 2
Circus slideshare 2Circus slideshare 2
Circus slideshare 2
 
PROSES PEMBUATAN GYPSUM
PROSES PEMBUATAN GYPSUMPROSES PEMBUATAN GYPSUM
PROSES PEMBUATAN GYPSUM
 
Sewa
SewaSewa
Sewa
 

Semelhante a NoSQL azure

Como conectar programas em linguagem java a bases de dados
Como conectar programas em linguagem java  a bases de dadosComo conectar programas em linguagem java  a bases de dados
Como conectar programas em linguagem java a bases de dadosHenrique Fernandes
 
Windows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows AzureWindows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows AzureVitor Ciaramella
 
Domain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BHDomain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BHGiovanni Bassi
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...iMasters
 
Ecosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javEcosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javJulio Viegas
 
Como funciona um banco de dados? (Worldwide Online TechDay 2010)
Como funciona um banco de dados? (Worldwide Online TechDay 2010)Como funciona um banco de dados? (Worldwide Online TechDay 2010)
Como funciona um banco de dados? (Worldwide Online TechDay 2010)Fabrício Catae
 
Desenvolvimento de um CRUD utilizando Stored Procedure
Desenvolvimento de um CRUD utilizando Stored ProcedureDesenvolvimento de um CRUD utilizando Stored Procedure
Desenvolvimento de um CRUD utilizando Stored ProcedureFernando Roberto Proença
 
Aula09 phonegap storage_connection
Aula09 phonegap storage_connectionAula09 phonegap storage_connection
Aula09 phonegap storage_connectionRoberson Alves
 
Construindo um framework CSS
Construindo um framework CSSConstruindo um framework CSS
Construindo um framework CSSDiego Eis
 
Apresentando o Azure DocumentDB
Apresentando o Azure DocumentDBApresentando o Azure DocumentDB
Apresentando o Azure DocumentDBLuciano Moreira
 
Azure Stack - O poder da nuvem em seu datacenter
Azure Stack - O poder da nuvem em seu datacenterAzure Stack - O poder da nuvem em seu datacenter
Azure Stack - O poder da nuvem em seu datacenterVitor Meriat
 
ODI Tutorial - Configuração Topologia
ODI Tutorial - Configuração TopologiaODI Tutorial - Configuração Topologia
ODI Tutorial - Configuração TopologiaCaio Lima
 

Semelhante a NoSQL azure (20)

Como conectar programas em linguagem java a bases de dados
Como conectar programas em linguagem java  a bases de dadosComo conectar programas em linguagem java  a bases de dados
Como conectar programas em linguagem java a bases de dados
 
Windows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows AzureWindows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows Azure
 
Vb
VbVb
Vb
 
Domain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BHDomain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BH
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
 
Java e Cloud Computing
Java e Cloud ComputingJava e Cloud Computing
Java e Cloud Computing
 
DDD > Experiências
DDD > ExperiênciasDDD > Experiências
DDD > Experiências
 
Apostila Oracle
Apostila OracleApostila Oracle
Apostila Oracle
 
Apostila aed
Apostila aedApostila aed
Apostila aed
 
Ecosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javEcosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_jav
 
API Apontador
API ApontadorAPI Apontador
API Apontador
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Como funciona um banco de dados? (Worldwide Online TechDay 2010)
Como funciona um banco de dados? (Worldwide Online TechDay 2010)Como funciona um banco de dados? (Worldwide Online TechDay 2010)
Como funciona um banco de dados? (Worldwide Online TechDay 2010)
 
Desenvolvimento de um CRUD utilizando Stored Procedure
Desenvolvimento de um CRUD utilizando Stored ProcedureDesenvolvimento de um CRUD utilizando Stored Procedure
Desenvolvimento de um CRUD utilizando Stored Procedure
 
Aula09 phonegap storage_connection
Aula09 phonegap storage_connectionAula09 phonegap storage_connection
Aula09 phonegap storage_connection
 
Construindo um framework CSS
Construindo um framework CSSConstruindo um framework CSS
Construindo um framework CSS
 
Wicket 2008
Wicket 2008Wicket 2008
Wicket 2008
 
Apresentando o Azure DocumentDB
Apresentando o Azure DocumentDBApresentando o Azure DocumentDB
Apresentando o Azure DocumentDB
 
Azure Stack - O poder da nuvem em seu datacenter
Azure Stack - O poder da nuvem em seu datacenterAzure Stack - O poder da nuvem em seu datacenter
Azure Stack - O poder da nuvem em seu datacenter
 
ODI Tutorial - Configuração Topologia
ODI Tutorial - Configuração TopologiaODI Tutorial - Configuração Topologia
ODI Tutorial - Configuração Topologia
 

NoSQL azure

  • 1. NoSQL no Microsoft Azure Thiago Custódio Engenheiro de Software – MCT, MCSD, PSD I
  • 3. NoSQL no Azure Histórico Características Modelos de Dados Azure Table Service Azure Redis Cache Azure DocumentDB Conclusão
  • 4. Novo projeto? Qual será o Banco de Dados Oracle, Sql Server, MySQL?
  • 6. Nascimento do relacional Linha do Tempo 1970 1980 1990 2000 2010
  • 8. Características NoSQL • Não Relacional • Open Source • Habilidade para ser executado em Cluster • Flexível (schema free)
  • 10. Chave / Valor • Hashmap (persistido em disco) • Fácil de particionar • Exemplos: Redis, Riak, Memcached
  • 11. Chave / Valor Chave Valor Palestra NoSQL no Azure Palestrante Thiago
  • 12. Documento • Utilizam JSON • Principal problema (solução impedance mismatch) • Exemplos: MongoDB / CouchDB
  • 13. Documento { “nome”: “Thiago”, “sobrenome”: “Custodio”, “twitter”: “@thdotnet”, “tags”: [“nosql”, “azure”, “.NET”] }
  • 14. Família de Colunas • Hashmaps dentro de hashmaps • Exemplos: Cassandra, HBASE
  • 15. Família de Colunas { “tc”:{ “nome”: “Thiago”, “sobrenome”: “Custodio”, “data-palestra”: “02/09/2014” } “ms”:{ “nome”: “Microsoft”, “data-fundacao”, “04/04/1975”, “produtos”: “Visual Studio, Office” } }
  • 16. Grafos • Entidades (nós) x relacionamentos • Exemplos: OrientDB, Neo4J
  • 21. Azure Table Service public class Aluno : TableEntity { public Aluno() { } public Aluno(string nome,string sobreNome) { this.PartitionKey = sobreNome; this.RowKey = nome; } public int Matricula { get; set; } public string Email { get; set; } }
  • 22. Azure Table Service CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]); CloudTableClient cloudTableClient = cloudStorageAccount.CreateCloudTableClient(); //Criar uma nova tabela var table = cloudTableClient.GetTableReference("alunos"); table.CreateIfNotExists(); //Entidade que iremos inserir Aluno aluno = new Aluno("Thiago", "Custodio"); aluno.Email = "meuemail@teste.com.br"; aluno.Matricula = 2013001; //Comando para inserir TableOperation insertOperation = TableOperation.Insert(aluno); //executando o comando de insert na nossa tabela table.Execute(insertOperation);
  • 24. Azure Redis Cache • Versão customizada e gerenciada pelo Azure (PaaS) • Disponível no datacenter do Brasil (Preview) • Basic - Único nó até 26gb • Standard - dois nós (master/slave)
  • 25. Código public class ExemploRedis { ConnectionMultiplexer connection = ConnectionMultiplexer.Connect("contoso5.redis.cache.windows.net,ssl=true,password=..."); public void Add(string chave, string valor) { IDatabase cache = connection.GetDatabase(); cache.StringSet(chave, valor); } public string Get(string chave) { IDatabase cache = connection.GetDatabase(); return cache.StringGet(chave); } }
  • 26. Azure Redis Cache • Armazenar Sessão (asp.net) no Azure Redis Cache • Compartilhar dados entre múltiplas instâncias • Páginas mais acessadas • Tracking de navegação de páginas por um usuário • Mensageria • Chat • Tokens temporários (ex: downloads rapidshare, etc)
  • 28. Azure DocumentDB • Schema Free • Suporte à queries / stored procedures em JavaScript

Notas do Editor

  1. Edgar Frank Codd "Modelo de dados relacional para grandes bancos de dados compartilhados“ demonstrou os fundamentos da teoria dos bancos de dados relacionais, usando tabelas ("linhas" e "colunas") e operações matemáticas para recuperá-las destas tabelas (UNION, SELECT, SUM etc…). Edgar F. Codd - Estrutura de dados - Normalização -época que em que "duplicar era caro" -dados espalhados ( 5, 10 tabelas) ...famoso JOIN 1980 - surgimento banco de dados relacionais IMPEDANCE MISMATCH 1990 - Object Databases Motivo - pessoas integravam aplicações com SQL Databases 2000 Sites com grande tráfego. Necessidade: ESCALAR! (na época era caro) SQL Não foi "projetado" para rodar em mais de um servidor Google escalabilidade Horizontal (BIGTABLE) AMAZON (DynamoDB) Inspiraram todo um novo movimento que hoje é conhecido por NoSQL. É uma nova escola de pensamento!