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-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
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
Dúvidas?
Obrigado!

NoSQL no Microsoft Azure - Global Azure Bootcamp 2017

  • 1.
    NoSQL no MicrosoftAzure Renato Groffe
  • 2.
    Renato Groffe • MicrosoftMost Valuable Professional (MVP) • Multi-Plataform Technical Audience Contributor • Mais de 15 anos de experiência na área de Tecnologia • Articulista e Palestrante
  • 3.
    Contatos – RenatoGroffe • 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
  • 4.
    Agenda • O paradigmNoSQL: uma visão geral • Azure Redis Cache • Azure Table Storage • DocumentDB • Exemplos práticos
  • 5.
  • 6.
    Modelo relacional: umbreve 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 modelorelacional • 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 tipochave-valor Chave 1 Valor 1 Chave 2 Valor 2 Chave n Valor n . . .
  • 10.
    Bancos do tipochave-valor Redis
  • 11.
    Bancos orientados adocumentos { "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 adocumentos DocumentDB
  • 13.
  • 14.
    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)
  • 15.
    Azure Redis Cache– Suporte • Compatibilidade com todas a plataformas suportadas pelo Redis (via de regra) Go . . .
  • 16.
  • 17.
    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)
  • 18.
  • 19.
  • 20.
    DocumentDB: uma visãogeral • 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
  • 21.
    DocumentDB: uma visãogeral • Suporte a transações baseado no modelo ACID • Suporte a dados geoespaciais • Consultas via LINQ ou expressões SQL
  • 22.
  • 23.
  • 24.
    E quando nãoexistir um SDK? A solução neste caso seria utilizar o Azure DocumentDB REST API
  • 25.
    Como migrar parao 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.)
  • 26.
    Como migrar parao DocumentDB? DocumentDB: API for MongoDB • Suporte a operações de CRUD • Simples alteração de uma connection string • Uso de drivers existentes do MongoDB
  • 27.
  • 28.
  • 29.