Post on 12-Apr-2017
NoSQL no Microsoft Azure
Renato Groffe
Renato Groffe• Microsoft Most Valuable Professional (MVP)
• Multi-Plataform Technical Audience Contributor
• Mais de 15 anos de experiência na área de Tecnologia
• Articulista e Palestrante
Contatos – Renato Groffe• Facebook ---> https://www.facebook.com/renatogroff
• Site ---> http://renatogroffe.net/
• Canal .NET ---> https://www.facebook.com/canaldotnet
• LinkedIn ---> http://br.linkedin.com/in/renatogroffe
• GitHub ---> https://github.com/renatogroffe
Agenda• O paradigm NoSQL: uma visão geral• Azure Redis Cache• 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-valorChave 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
Azure Redis Cache
Azure Redis Cache• Serviço na nuvem baseado no Redis,
uma solução NoSQL open source
• Armazenamento em memória de chaves e valores
• Cache distribuído em aplicações Web (uso mais comum)
Azure Redis Cache – Suporte• Compatibilidade com todas a plataformas suportadas pelo Redis
(via de regra)
Go . . .
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.)
Como migrar para o DocumentDB?DocumentDB: API for MongoDB
• Suporte a operações de CRUD
• Simples alteração de uma connection string
• Uso de drivers existentes do MongoDB
Demo
Q&A
Thank you!