SlideShare uma empresa Scribd logo
1 de 41
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 . . .
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

Mais procurados

NoSQL no Azure - Azure Tech Nights - 2017
NoSQL no Azure - Azure Tech Nights - 2017NoSQL no Azure - Azure Tech Nights - 2017
NoSQL no Azure - Azure Tech Nights - 2017Renato Groff
 
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018Renato Groff
 
Arquitetura de banco de dados
Arquitetura de banco de dadosArquitetura de banco de dados
Arquitetura de banco de dadosFelipe Correia
 
Desenvolvendo uma Aplicação Javascript Fulll
Desenvolvendo uma Aplicação Javascript FulllDesenvolvendo uma Aplicação Javascript Fulll
Desenvolvendo uma Aplicação Javascript FulllDjanilson Alves
 
TypeScript + Node.js + cosmos db
TypeScript + Node.js + cosmos dbTypeScript + Node.js + cosmos db
TypeScript + Node.js + cosmos dbMVP Microsoft
 
DocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloDocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloRenato Groff
 
Banco de dados na nuvem e isso é possível
Banco de dados na nuvem e isso é possívelBanco de dados na nuvem e isso é possível
Banco de dados na nuvem e isso é possívelMarcos Freccia
 
Novidades do VS11, .Net 4.5 e EF5
Novidades do VS11, .Net 4.5 e EF5Novidades do VS11, .Net 4.5 e EF5
Novidades do VS11, .Net 4.5 e EF5Bruno Maestro
 
Codificando .Net e SQL PASS Chapter - Novidades de BI para SQL Server 2012
Codificando .Net e SQL PASS Chapter - Novidades de BI para SQL Server 2012Codificando .Net e SQL PASS Chapter - Novidades de BI para SQL Server 2012
Codificando .Net e SQL PASS Chapter - Novidades de BI para SQL Server 2012Diego Nogare
 
Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkGuilherme Carlos
 
Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC Fernando Rizzato
 
Criando um baseline de seu ambiente completo utilizando SSIS e SSRS
Criando um baseline de seu ambiente completo utilizando SSIS e SSRSCriando um baseline de seu ambiente completo utilizando SSIS e SSRS
Criando um baseline de seu ambiente completo utilizando SSIS e SSRSMarcos Freccia
 
Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Rodolfo Fadino Junior
 
MongoDB com Java - SouJava
MongoDB com Java - SouJavaMongoDB com Java - SouJava
MongoDB com Java - SouJavaFernando Boaglio
 
Estudo de caso do "O Curioso" (Rio on Rails)
Estudo de caso do "O Curioso" (Rio on Rails)Estudo de caso do "O Curioso" (Rio on Rails)
Estudo de caso do "O Curioso" (Rio on Rails)guestf4f70f
 
Desenvolvimento Web Com Software Livre
Desenvolvimento Web Com Software LivreDesenvolvimento Web Com Software Livre
Desenvolvimento Web Com Software LivreGivanaldo Rocha
 
NoSQL - Soluções alternativas para bancos de dados
NoSQL - Soluções alternativas para bancos de dadosNoSQL - Soluções alternativas para bancos de dados
NoSQL - Soluções alternativas para bancos de dadosNicolas Ibanheiz
 

Mais procurados (20)

NoSQL no Azure - Azure Tech Nights - 2017
NoSQL no Azure - Azure Tech Nights - 2017NoSQL no Azure - Azure Tech Nights - 2017
NoSQL no Azure - Azure Tech Nights - 2017
 
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
 
Arquitetura de banco de dados
Arquitetura de banco de dadosArquitetura de banco de dados
Arquitetura de banco de dados
 
Desenvolvendo uma Aplicação Javascript Fulll
Desenvolvendo uma Aplicação Javascript FulllDesenvolvendo uma Aplicação Javascript Fulll
Desenvolvendo uma Aplicação Javascript Fulll
 
TypeScript + Node.js + cosmos db
TypeScript + Node.js + cosmos dbTypeScript + Node.js + cosmos db
TypeScript + Node.js + cosmos db
 
DocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloDocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São Paulo
 
Banco de dados na nuvem e isso é possível
Banco de dados na nuvem e isso é possívelBanco de dados na nuvem e isso é possível
Banco de dados na nuvem e isso é possível
 
Novidades do VS11, .Net 4.5 e EF5
Novidades do VS11, .Net 4.5 e EF5Novidades do VS11, .Net 4.5 e EF5
Novidades do VS11, .Net 4.5 e EF5
 
NoSQL + Node.js
NoSQL + Node.jsNoSQL + Node.js
NoSQL + Node.js
 
Codificando .Net e SQL PASS Chapter - Novidades de BI para SQL Server 2012
Codificando .Net e SQL PASS Chapter - Novidades de BI para SQL Server 2012Codificando .Net e SQL PASS Chapter - Novidades de BI para SQL Server 2012
Codificando .Net e SQL PASS Chapter - Novidades de BI para SQL Server 2012
 
Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao Framework
 
Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC
 
Criando um baseline de seu ambiente completo utilizando SSIS e SSRS
Criando um baseline de seu ambiente completo utilizando SSIS e SSRSCriando um baseline de seu ambiente completo utilizando SSIS e SSRS
Criando um baseline de seu ambiente completo utilizando SSIS e SSRS
 
NoSQL CosmosDB e IOT na era Serveless
NoSQL CosmosDB e IOT na era ServelessNoSQL CosmosDB e IOT na era Serveless
NoSQL CosmosDB e IOT na era Serveless
 
Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Performance Codificando Night Week 2016
Performance Codificando Night Week 2016
 
Mongo db slides
Mongo db slidesMongo db slides
Mongo db slides
 
MongoDB com Java - SouJava
MongoDB com Java - SouJavaMongoDB com Java - SouJava
MongoDB com Java - SouJava
 
Estudo de caso do "O Curioso" (Rio on Rails)
Estudo de caso do "O Curioso" (Rio on Rails)Estudo de caso do "O Curioso" (Rio on Rails)
Estudo de caso do "O Curioso" (Rio on Rails)
 
Desenvolvimento Web Com Software Livre
Desenvolvimento Web Com Software LivreDesenvolvimento Web Com Software Livre
Desenvolvimento Web Com Software Livre
 
NoSQL - Soluções alternativas para bancos de dados
NoSQL - Soluções alternativas para bancos de dadosNoSQL - Soluções alternativas para bancos de dados
NoSQL - Soluções alternativas para bancos de dados
 

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

Introdução ao Nosql
Introdução ao NosqlIntrodução ao Nosql
Introdução ao NosqlJosé Silva
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documentoAlex Martins
 
NoSQL na nuvem: utilizando o DocumentDB
NoSQL na nuvem: utilizando o DocumentDBNoSQL na nuvem: utilizando o DocumentDB
NoSQL na nuvem: utilizando o DocumentDBRenato Groff
 
MongoDB no Microsoft Azure - DBA Brasil 2.0
MongoDB no Microsoft Azure - DBA Brasil 2.0MongoDB no Microsoft Azure - DBA Brasil 2.0
MongoDB no Microsoft Azure - DBA Brasil 2.0Renato Groff
 
PASS SQLSATURDAY 663 Rio de Janeiro, Brazil
PASS SQLSATURDAY 663 Rio de Janeiro, BrazilPASS SQLSATURDAY 663 Rio de Janeiro, Brazil
PASS SQLSATURDAY 663 Rio de Janeiro, BrazilAlexandre Araujo
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPAricelio Souza
 
MongoDB também no Azure? SIM! - DevOps Summit 2017
MongoDB também no Azure? SIM! - DevOps Summit 2017MongoDB também no Azure? SIM! - DevOps Summit 2017
MongoDB também no Azure? SIM! - DevOps Summit 2017Renato Groff
 
I nd t_bigdata(1)
I nd t_bigdata(1)I nd t_bigdata(1)
I nd t_bigdata(1)wchevreuil
 
SQL Server Heterogêneo: SQL Server + BigData
SQL Server Heterogêneo: SQL Server + BigDataSQL Server Heterogêneo: SQL Server + BigData
SQL Server Heterogêneo: SQL Server + BigDataRodrigo Dornel
 
L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalierGleicon Moraes
 
Estudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologiasEstudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologiasHelio Henrique L. C. Monte-Alto
 
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosBanco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosJoão Helis Bernardo
 

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

NoSQL Multi-Model - Conheça o CosmosDB
NoSQL Multi-Model - Conheça o CosmosDB NoSQL Multi-Model - Conheça o CosmosDB
NoSQL Multi-Model - Conheça o CosmosDB
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
Introdução ao Nosql
Introdução ao NosqlIntrodução ao Nosql
Introdução ao Nosql
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documento
 
NoSQL na nuvem: utilizando o DocumentDB
NoSQL na nuvem: utilizando o DocumentDBNoSQL na nuvem: utilizando o DocumentDB
NoSQL na nuvem: utilizando o DocumentDB
 
MongoDB no Microsoft Azure - DBA Brasil 2.0
MongoDB no Microsoft Azure - DBA Brasil 2.0MongoDB no Microsoft Azure - DBA Brasil 2.0
MongoDB no Microsoft Azure - DBA Brasil 2.0
 
PASS SQLSATURDAY 663 Rio de Janeiro, Brazil
PASS SQLSATURDAY 663 Rio de Janeiro, BrazilPASS SQLSATURDAY 663 Rio de Janeiro, Brazil
PASS SQLSATURDAY 663 Rio de Janeiro, Brazil
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
MongoDB também no Azure? SIM! - DevOps Summit 2017
MongoDB também no Azure? SIM! - DevOps Summit 2017MongoDB também no Azure? SIM! - DevOps Summit 2017
MongoDB também no Azure? SIM! - DevOps Summit 2017
 
DDD e Restful SOA
DDD e Restful SOADDD e Restful SOA
DDD e Restful SOA
 
Mongo db
Mongo dbMongo db
Mongo db
 
I nd t_bigdata(1)
I nd t_bigdata(1)I nd t_bigdata(1)
I nd t_bigdata(1)
 
SQL Server Heterogêneo: SQL Server + BigData
SQL Server Heterogêneo: SQL Server + BigDataSQL Server Heterogêneo: SQL Server + BigData
SQL Server Heterogêneo: SQL Server + BigData
 
L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalier
 
Estudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologiasEstudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologias
 
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosBanco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
NOSQL - Uma real alternativa
NOSQL - Uma real alternativaNOSQL - Uma real alternativa
NOSQL - Uma real alternativa
 

Mais de Renato Groff

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

Mais de Renato Groff (20)

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

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 . . .
  • 16.
  • 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