Azure Cosmos DB
Renato Groffe (Microsoft MVP, MTAC)
https://medium.com/@renato.groffe/
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
/canaldotnet
/renatogroff
Agenda
• O paradigm NoSQL: uma visão geral
• Azure Cosmos DB
• 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 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, Gremlin (grafos) e
Cassandra
• 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
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 e imagens no Docker Store
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.)
Estrutura de um banco de dados do MongoDB
Algumas plataformas que suportam o MongoDB
MongoDB e ferramentas de gerenciamento
Robo 3T
Demos
Dúvidas?
Obrigado!

Azure Cosmos DB para Desenvolvedores - From Zero to Hero - Março-2018

  • 1.
    Azure Cosmos DB RenatoGroffe (Microsoft MVP, MTAC) https://medium.com/@renato.groffe/
  • 2.
    Renato Groffe • MicrosoftMost 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 – RenatoGroffe /renatogroffe /in/renatogroffe /canaldotnet /renatogroffe /canaldotnet /renatogroff
  • 4.
    Agenda • O paradigmNoSQL: uma visão geral • Azure Cosmos DB • 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 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
  • 15.
    Azure Cosmos DB– Resumo
  • 16.
    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
  • 17.
    Azure Cosmos DB– Características
  • 18.
    Azure Cosmos DB– Características Multi-model • Suporte a DocumentDB (SQL), MongoDB, Azure Tables, Gremlin (grafos) e Cassandra • Database Account – Bancos de dados • Usuários – Permissões • Container (Coleções, Tabelas, Grafos) – Itens (Documentos, Itens, Nodes) – Procedures, triggers, functions
  • 19.
    Azure Cosmos DB– Características Múltiplos modelos de consistência
  • 20.
    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
  • 21.
  • 22.
    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 e imagens no Docker Store
  • 23.
    DocumentDB: uma visãogeral • Suporte a transações baseado no modelo ACID • Suporte a dados geoespaciais • Consultas via LINQ ou expressões SQL
  • 24.
  • 25.
  • 26.
    E quando nãoexistir um SDK? A solução neste caso seria utilizar o Azure DocumentDB REST API
  • 27.
    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.)
  • 29.
    Estrutura de umbanco de dados do MongoDB
  • 30.
    Algumas plataformas quesuportam o MongoDB
  • 31.
    MongoDB e ferramentasde gerenciamento Robo 3T
  • 32.
  • 33.
  • 34.