SlideShare uma empresa Scribd logo
NoSQL para
Desenvolvedores .NET
Renato Groffe (Microsoft MVP, MTAC)
http://renatogroffe.net/
Renato Groffe
• Microsoft Most Valuable Professional (MVP)
• Multi-Plataform Technical Audience Contributor (MTAC)
• Mais de 15 anos de experiência na área de Tecnologia
• Autor Técnico e Palestrante
Contatos – Renato Groffe
/renatogroffe /in/renatogroffe
/canaldotnet /renatogroffe
/@renato.groffe /renatogroff
Agenda
• O paradigm NoSQL: uma visão geral
• Redis
• MongoDB
• Azure Cosmos DB
• Azure Table Storage
• DocumentDB
• Exemplos práticos
Uma visão geral
Modelo relacional: um breve histórico
• Proposto na década de 1970
• Estrutura mais rígida → tabelas, campos, linhas,
relacionamentos e uma série de restrições
• Linguagem SQL
• Muito presente no ambiente corporativo
Limitações do modelo relacional
• Disponibilidade
• Escalabilidade
• Dificuldades em gerenciar agrupamentos de
dados mais complexos
• Impedance mismatch → dificuldades
conciliando conceitos relacionais e de OO
Uma alternativa: NoSQL (“Not Only SQL”)
• Alta Disponibilidade
• Escalabilidade facilitada
• Flexibilidade
• Diversos tipos de soluções NoSQL →
Chave-valor, orientado a documentos
Bancos do tipo chave-valor
Chave 1 Valor 1
Chave 2 Valor 2
Chave n Valor n
. . .
Bancos do tipo chave-valor
Redis
Bancos orientados a documentos
{
"id": 55,
"Pais": "Brasil",
"Regiao": "América do Sul",
"Populacao": 201032714,
"PrincipaisCidades": [
{
"NomeCidade": "São Paulo",
"Populacao": 1182876,
},
{
"NomeCidade": "Rio de Janeiro",
"Populacao": 6323037,
}
]
}
Bancos orientados a documentos
DocumentDB
Redis
Redis
• Solução NoSQL open source
• Armazenamento em memória de chaves e
valores
• Cache distribuído em aplicações Web (uso
mais comum)
• O Azure conta com uma implementação na
nuvem → Azure Redis Cache
Redis – Algumas plataformas suportadas
Go . . .
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
MongoDB
• Gratuito, open source e multiplataforma
• Representação de dados no padrão BSON
(bynary JSON)
• Schemaless
• Dados geospaciais
• Índices para a otimização de consultas
MongoDB – Estrutura de um banco
MongoDB – Algumas plataformas suportadas
. . .
MongoDB e ferramentas de gerenciamento
Robo 3T
(RoboMongo)
Studio 3T
(MongoChef)
Azure Cosmos DB
Azure Cosmos DB
• Lançamento oficial durante o Build 2017 (Maio)
• Solução NoSQL oferecida como serviço na nuvem
• Serviço de banco de dados de distribuição global
• “Evolução” do Document DB
Azure Cosmos DB – Resumo
Azure Cosmos DB – Características
Distribuição Global
• Possibilidade de replicação em várias regiões
• Sem preocupações com questões de infra estrutura
Baixa Latência
• Abaixo de 10 ms para leituras
• Abaixo de 15 ms para escritas
• Otimizações na escrita
• Indexação automática
Azure Cosmos DB – Características
Azure Cosmos DB – Características
Multi-model
• Suporte a DocumentDB (SQL), MongoDB,
Azure Tables e Gremlin (grafos)
• Database Account
– Bancos de dados
• Usuários
– Permissões
• Container (Coleções, Tabelas, Grafos)
– Itens (Documentos, Itens, Nodes)
– Procedures, triggers, functions
Azure Cosmos DB – Características
Múltiplos modelos de consistência
Azure Cosmos DB – Características
Escalabilidade
• Horizontal (Throughput e Storage)
• Elasticidade
SLAs
• Garantias de 99,99% para alta disponibilidade,
throughput, baixa latência e consistência
Azure Table Storage
Azure Table Storage
• Solução do tipo chave-valor
• Esquema de dados flexível (“schemaless”)
• Grandes volumes de dados estruturados e não relacionais
• Armazenamento baseado em tabelas e entidades
• As tabelas estão organizadas por partições e chaves primárias
• Conta com emulador local (Azure Storage Emulator)
Azure Table Storage – Suporte
DocumentDB
DocumentDB: uma visão geral
• Mais uma solução NoSQL do Microsoft Azure
• Orientado a documentos
• Flexível por ser “schemaless”
• Uso do padrão JSON para a representação dos dados
• Possui emulador local
DocumentDB: uma visão geral
• Suporte a transações baseado no modelo ACID
• Suporte a dados geoespaciais
• Consultas via LINQ ou expressões SQL
Estrutura geral do DocumentDB
DocumentDB – Suporte
E quando não existir um SDK?
A solução neste caso seria utilizar o
Azure DocumentDB REST API
Como migrar para o DocumentDB?
Utilizando o DocumentDB Data Migration Tool
• Executável disponível para download
• Suporte a inúmeras fontes (arquivos JSON,
MongoDB, SQL Server, arquivos CSV etc.)
Demos
Dúvidas?
Obrigado!

Mais conteúdo relacionado

PPTX
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
PPT
Azure Cosmos DB - TDC 2017 - São Paulo
PPTX
Azure Cosmos DB - Azure Weekend SP - Outubro/2017
PPTX
Azure Cosmos DB - Campinas .NET - Janeiro-2018
PPTX
Azure Cosmos DB para Desenvolvedores - From Zero to Hero - Março-2018
PPTX
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
PPTX
Azure Cosmos DB: NoSQL na nuvem - TDC 2018 - São Paulo
PPTX
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Azure Cosmos DB - TDC 2017 - São Paulo
Azure Cosmos DB - Azure Weekend SP - Outubro/2017
Azure Cosmos DB - Campinas .NET - Janeiro-2018
Azure Cosmos DB para Desenvolvedores - From Zero to Hero - Março-2018
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
Azure Cosmos DB: NoSQL na nuvem - TDC 2018 - São Paulo
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017

Mais procurados (19)

PPTX
NoSQL no Azure - Azure Tech Nights - 2017
PPTX
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
PPTX
Arquitetura de banco de dados
PDF
Desenvolvendo uma Aplicação Javascript Fulll
PPTX
TypeScript + Node.js + cosmos db
PPTX
DocumentDB - Azure Fridays São Paulo
PDF
Banco de dados na nuvem e isso é possível
PPTX
Novidades do VS11, .Net 4.5 e EF5
PDF
NoSQL + Node.js
PPTX
Codificando .Net e SQL PASS Chapter - Novidades de BI para SQL Server 2012
PPTX
Criando um baseline de seu ambiente completo utilizando SSIS e SSRS
PPTX
NoSQL CosmosDB e IOT na era Serveless
PPTX
Performance Codificando Night Week 2016
PDF
Mongo db slides
PDF
MongoDB com Java - SouJava
PPT
Estudo de caso do "O Curioso" (Rio on Rails)
ODP
Desenvolvimento Web Com Software Livre
PPS
NoSQL - Soluções alternativas para bancos de dados
PPTX
Como trabalhar com ajax, json e cache
NoSQL no Azure - Azure Tech Nights - 2017
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
Arquitetura de banco de dados
Desenvolvendo uma Aplicação Javascript Fulll
TypeScript + Node.js + cosmos db
DocumentDB - Azure Fridays São Paulo
Banco de dados na nuvem e isso é possível
Novidades do VS11, .Net 4.5 e EF5
NoSQL + Node.js
Codificando .Net e SQL PASS Chapter - Novidades de BI para SQL Server 2012
Criando um baseline de seu ambiente completo utilizando SSIS e SSRS
NoSQL CosmosDB e IOT na era Serveless
Performance Codificando Night Week 2016
Mongo db slides
MongoDB com Java - SouJava
Estudo de caso do "O Curioso" (Rio on Rails)
Desenvolvimento Web Com Software Livre
NoSQL - Soluções alternativas para bancos de dados
Como trabalhar com ajax, json e cache
Anúncio

Semelhante a NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017 (20)

PPTX
NoSQL na nuvem: utilizando o DocumentDB
PPTX
Bancos NoSQL no Microsoft Azure
PPTX
PASS SQLSATURDAY 663 Rio de Janeiro, Brazil
PPT
MongoDB no Microsoft Azure - DBA Brasil 2.0
PPTX
MongoDB também no Azure? SIM! - DevOps Summit 2017
PPTX
CosmosDB from zero2hero
PPS
Apresentação
PPTX
Azure Data Overview
PPTX
Introdução ao MongoDB (NoSQL)
ODP
No sql std
PPTX
Desenvolvendo para o Windows Azure e SQL Azure
PDF
MongoDB e OpenShift - JUDCon2014
PDF
NoSql e NewSql
PPTX
Armazenamento Elástico de Dados Relacionais no Azure
PPTX
No sql Orientado a documento
PPTX
3: explorar os conceitos básicos de dados não relacionais no Azure
PDF
Apresentando o Azure DocumentDB
PDF
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
PPT
Bancos de dados NoSQL - Redis e MongoDB
PPTX
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
NoSQL na nuvem: utilizando o DocumentDB
Bancos NoSQL no Microsoft Azure
PASS SQLSATURDAY 663 Rio de Janeiro, Brazil
MongoDB no Microsoft Azure - DBA Brasil 2.0
MongoDB também no Azure? SIM! - DevOps Summit 2017
CosmosDB from zero2hero
Apresentação
Azure Data Overview
Introdução ao MongoDB (NoSQL)
No sql std
Desenvolvendo para o Windows Azure e SQL Azure
MongoDB e OpenShift - JUDCon2014
NoSql e NewSql
Armazenamento Elástico de Dados Relacionais no Azure
No sql Orientado a documento
3: explorar os conceitos básicos de dados não relacionais no Azure
Apresentando o Azure DocumentDB
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Bancos de dados NoSQL - Redis e MongoDB
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
Anúncio

Mais de Renato Groff (20)

PPTX
Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...
PPTX
Kubernetes: dicas e truques para o dia a dia | Azure Experts - Novembro-2020
PPTX
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
PPTX
Como avançar na Power Platform com Azure Functions e Logic Apps | MVPConf Lat...
PPTX
GitHub Actions: descomplicando o build/deployment automatizados | MVPConf Lat...
PPTX
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
PPTX
Polly: aplicações .NET resilientes e um melhor tratamento de falhas | MVPConf...
PPTX
Containers no Azure: Docker, Kubernetes e suas diferentes possibilidades | MV...
PPTX
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020
PPTX
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
PPTX
.NET Core + Serverless: Desenvolvimento Multiplataforma com Azure Functions |...
PPTX
Aplicações Distribuídas com .NET | TDC Recife Online 2020
PPTX
Novidades do .NET 5 e ASP.NET 5 | Visual Studio Summit 2020
PPTX
Serverless + Integrações com BDs: Azure Functions e Logic Apps - SQLSaturday ...
PPTX
Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...
PPTX
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
PPTX
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
PPTX
Kubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
PPTX
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado | Setembro-2020
PPTX
Sobrevoando os serviços do Azure | TDC São Paulo Online 2020
Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...
Kubernetes: dicas e truques para o dia a dia | Azure Experts - Novembro-2020
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
Como avançar na Power Platform com Azure Functions e Logic Apps | MVPConf Lat...
GitHub Actions: descomplicando o build/deployment automatizados | MVPConf Lat...
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
Polly: aplicações .NET resilientes e um melhor tratamento de falhas | MVPConf...
Containers no Azure: Docker, Kubernetes e suas diferentes possibilidades | MV...
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
.NET Core + Serverless: Desenvolvimento Multiplataforma com Azure Functions |...
Aplicações Distribuídas com .NET | TDC Recife Online 2020
Novidades do .NET 5 e ASP.NET 5 | Visual Studio Summit 2020
Serverless + Integrações com BDs: Azure Functions e Logic Apps - SQLSaturday ...
Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
Kubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado | Setembro-2020
Sobrevoando os serviços do Azure | TDC São Paulo Online 2020

Último (7)

PDF
apresentacao introducao computacao ead.pdf
DOC
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
PPTX
Mapeamento de Objeto para Tabela Relacional
PPTX
Curso de Windows 11 resumido na prática.pptx
DOC
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
PDF
Dos requisitos ao código: como criar código rastreável em PHP
PDF
Evolução em código: algoritmos genéticos com PHP
apresentacao introducao computacao ead.pdf
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
Mapeamento de Objeto para Tabela Relacional
Curso de Windows 11 resumido na prática.pptx
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
Dos requisitos ao código: como criar código rastreável em PHP
Evolução em código: algoritmos genéticos com PHP

NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017

  • 1. NoSQL para Desenvolvedores .NET Renato Groffe (Microsoft MVP, MTAC) http://renatogroffe.net/
  • 2. Renato Groffe • Microsoft Most Valuable Professional (MVP) • Multi-Plataform Technical Audience Contributor (MTAC) • Mais de 15 anos de experiência na área de Tecnologia • Autor Técnico e Palestrante
  • 3. Contatos – Renato Groffe /renatogroffe /in/renatogroffe /canaldotnet /renatogroffe /@renato.groffe /renatogroff
  • 4. Agenda • O paradigm NoSQL: uma visão geral • Redis • MongoDB • Azure Cosmos DB • Azure Table Storage • DocumentDB • Exemplos práticos
  • 6. Modelo relacional: um breve histórico • Proposto na década de 1970 • Estrutura mais rígida → tabelas, campos, linhas, relacionamentos e uma série de restrições • Linguagem SQL • Muito presente no ambiente corporativo
  • 7. Limitações do modelo relacional • Disponibilidade • Escalabilidade • Dificuldades em gerenciar agrupamentos de dados mais complexos • Impedance mismatch → dificuldades conciliando conceitos relacionais e de OO
  • 8. Uma alternativa: NoSQL (“Not Only SQL”) • Alta Disponibilidade • Escalabilidade facilitada • Flexibilidade • Diversos tipos de soluções NoSQL → Chave-valor, orientado a documentos
  • 9. Bancos do tipo chave-valor Chave 1 Valor 1 Chave 2 Valor 2 Chave n Valor n . . .
  • 10. Bancos do tipo chave-valor Redis
  • 11. Bancos orientados a documentos { "id": 55, "Pais": "Brasil", "Regiao": "América do Sul", "Populacao": 201032714, "PrincipaisCidades": [ { "NomeCidade": "São Paulo", "Populacao": 1182876, }, { "NomeCidade": "Rio de Janeiro", "Populacao": 6323037, } ] }
  • 12. Bancos orientados a documentos DocumentDB
  • 13. Redis
  • 14. Redis • Solução NoSQL open source • Armazenamento em memória de chaves e valores • Cache distribuído em aplicações Web (uso mais comum) • O Azure conta com uma implementação na nuvem → Azure Redis Cache
  • 15. Redis – Algumas plataformas suportadas Go . . .
  • 17. MongoDB • Gratuito, open source e multiplataforma • Representação de dados no padrão BSON (bynary JSON) • Schemaless • Dados geospaciais • Índices para a otimização de consultas
  • 18. MongoDB – Estrutura de um banco
  • 19. MongoDB – Algumas plataformas suportadas . . .
  • 20. MongoDB e ferramentas de gerenciamento Robo 3T (RoboMongo) Studio 3T (MongoChef)
  • 22. Azure Cosmos DB • Lançamento oficial durante o Build 2017 (Maio) • Solução NoSQL oferecida como serviço na nuvem • Serviço de banco de dados de distribuição global • “Evolução” do Document DB
  • 23. Azure Cosmos DB – Resumo
  • 24. Azure Cosmos DB – Características Distribuição Global • Possibilidade de replicação em várias regiões • Sem preocupações com questões de infra estrutura Baixa Latência • Abaixo de 10 ms para leituras • Abaixo de 15 ms para escritas • Otimizações na escrita • Indexação automática
  • 25. Azure Cosmos DB – Características
  • 26. Azure Cosmos DB – Características Multi-model • Suporte a DocumentDB (SQL), MongoDB, Azure Tables e Gremlin (grafos) • Database Account – Bancos de dados • Usuários – Permissões • Container (Coleções, Tabelas, Grafos) – Itens (Documentos, Itens, Nodes) – Procedures, triggers, functions
  • 27. Azure Cosmos DB – Características Múltiplos modelos de consistência
  • 28. Azure Cosmos DB – Características Escalabilidade • Horizontal (Throughput e Storage) • Elasticidade SLAs • Garantias de 99,99% para alta disponibilidade, throughput, baixa latência e consistência
  • 30. Azure Table Storage • Solução do tipo chave-valor • Esquema de dados flexível (“schemaless”) • Grandes volumes de dados estruturados e não relacionais • Armazenamento baseado em tabelas e entidades • As tabelas estão organizadas por partições e chaves primárias • Conta com emulador local (Azure Storage Emulator)
  • 31. Azure Table Storage – Suporte
  • 33. DocumentDB: uma visão geral • Mais uma solução NoSQL do Microsoft Azure • Orientado a documentos • Flexível por ser “schemaless” • Uso do padrão JSON para a representação dos dados • Possui emulador local
  • 34. DocumentDB: uma visão geral • Suporte a transações baseado no modelo ACID • Suporte a dados geoespaciais • Consultas via LINQ ou expressões SQL
  • 35. Estrutura geral do DocumentDB
  • 37. E quando não existir um SDK? A solução neste caso seria utilizar o Azure DocumentDB REST API
  • 38. Como migrar para o DocumentDB? Utilizando o DocumentDB Data Migration Tool • Executável disponível para download • Suporte a inúmeras fontes (arquivos JSON, MongoDB, SQL Server, arquivos CSV etc.)
  • 39. Demos