NoSQL na nuvem
UTILIZANDO O DOCUMENTDB
Renato Groffe
Microsoft Most Valuable Professional (MVP)
Microsoft Technical Audience Contributor (MTAC)
Mais de 15 anos de experiência na área de Tecnologia
Articulista e Palestrante
Agenda
◦ O paradigma NoSQL: uma visão geral
◦ Conhecendo o DocumentDB
◦ Exemplos práticos
O paradigma NoSQL: uma visão geral
Modelo relacional: um breve histórico
◦ Proposto por Edgar F. Codd na década de 1970
◦ Foco em uma estrutura mais rígida, com tabelas,
campos, linhas, relacionamentos e uma série de
restrições
◦ Linguagem SQL
◦ Muito utilizado no ambiente corporativo
Limitações do modelo relacional
◦ Disponibilidade
◦ Escalabilidade
◦ Estrutura nem sempre adequada a agrupamentos
de dados mais complexos
◦ Impedance mismatch → Conflitos entre
representação em memória (objetos) e o
equivalente numa base relacional
Uma alternativa: NoSQL (“Not only SQL”)
◦ Alta Disponibilidade
◦ Escalabilidade facilitada
◦ Flexibilidade
◦ Diversos tipos de soluções NoSQL
◦ Orientado a documentos
◦ Chave-valor
◦ Orientado a colunas
◦ Orientado a grafos
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
Conhecendo o DocumentDB
DocumentDB: uma visão geral
◦ Banco de dados NoSQL orientado a documentos
◦ Serviço na nuvem
◦ Flexível por ser “schemaless”
◦ Uso do padrão JSON para a representação dos dados DocumentDB
DocumentDB: uma visão geral
◦ Comunicação via protocolo HTTP (REST)
◦ Suporte a transações baseado no modelo ACID
◦ Suporte a dados geoespaciais
◦ Consultas via LINQ ou expressões SQL
◦ Pago, com modalidades de cobrança baseadas no número
de requisições (RUs) e uso de storage
DocumentDB
Como o DocumentDB está estruturado?
Como utilizar o DocumentDB?
◦ Criar uma conta de acesso ao DocumentDB no Portal do
Azure
◦ Preencher as configurações para a conta de acesso
◦ Utilizando um SDK ou a API REST informar a URI da conta e
a Primary Key geradas no Portal do Azure
◦ Criar então novos databases, coleções e popular os
mesmos com dados
DocumentDB
E para testes locais?
◦ Azure DocumentDB Local Emulator
◦ Disponibilizado recentemente
◦ Apenas testes locais
◦ Não deve ser utilizado como um servidor local DocumentDB
Plataformas Suportadas
E quando não existir um SDK?
A solução neste caso seria utilizar o
Azure DocumentDB REST API
E no caso do .NET Framework?
◦ Instalar o package Microsoft.Azure.DocumentDB
◦ O pacote Newtonsoft.Json também será
adicionado
◦ Podem ser utilizadas classes convencionais,
objetos anônimos e estruturas baseadas em tipos
dinâmicos
Como migrar para o DocumentDB?
◦ Utilizando o DocumentDB Data Migration tool
◦ Suporte a inúmeras fontes
◦ Arquivos JSON
◦ MongoDB
◦ SQL Server
◦ Arquivos CSV
◦ Azure Table Storage
◦ Amazon DynamoDB
◦ HBase
◦ Coleções do próprio DocumentDB
DocumentDB
Como migrar para o DocumentDB?
◦ DocumentDB protocol support for MongoDB
◦ Suporte a operações de CRUD
◦ Simples alteração de uma connection string
◦ Uso de drivers existentes do MongoDB DocumentDB
Exemplos práticos
Exemplo
◦ Catálogo de produtos e serviços
◦ Criação de uma base chamada AzureFridaySP
◦ Criar uma coleção chamada Catalogo
Dúvidas?
Referências
◦ DocumentDB documentation
https://azure.microsoft.com/en-us/documentation/services/documentdb/
◦ NoSQL Guide
http://martinfowler.com/nosql.html
◦ Exemplos desta apresentação
https://github.com/renatogroffe/DocumentDB_AzureFridaySP
Contatos
◦ 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
Obrigado!

DocumentDB - Azure Fridays São Paulo

  • 1.
  • 2.
    Renato Groffe Microsoft MostValuable Professional (MVP) Microsoft Technical Audience Contributor (MTAC) Mais de 15 anos de experiência na área de Tecnologia Articulista e Palestrante
  • 3.
    Agenda ◦ O paradigmaNoSQL: uma visão geral ◦ Conhecendo o DocumentDB ◦ Exemplos práticos
  • 4.
    O paradigma NoSQL:uma visão geral
  • 5.
    Modelo relacional: umbreve histórico ◦ Proposto por Edgar F. Codd na década de 1970 ◦ Foco em uma estrutura mais rígida, com tabelas, campos, linhas, relacionamentos e uma série de restrições ◦ Linguagem SQL ◦ Muito utilizado no ambiente corporativo
  • 6.
    Limitações do modelorelacional ◦ Disponibilidade ◦ Escalabilidade ◦ Estrutura nem sempre adequada a agrupamentos de dados mais complexos ◦ Impedance mismatch → Conflitos entre representação em memória (objetos) e o equivalente numa base relacional
  • 7.
    Uma alternativa: NoSQL(“Not only SQL”) ◦ Alta Disponibilidade ◦ Escalabilidade facilitada ◦ Flexibilidade ◦ Diversos tipos de soluções NoSQL ◦ Orientado a documentos ◦ Chave-valor ◦ Orientado a colunas ◦ Orientado a grafos
  • 8.
    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, } ] }
  • 9.
    Bancos orientados adocumentos DocumentDB
  • 10.
  • 11.
    DocumentDB: uma visãogeral ◦ Banco de dados NoSQL orientado a documentos ◦ Serviço na nuvem ◦ Flexível por ser “schemaless” ◦ Uso do padrão JSON para a representação dos dados DocumentDB
  • 12.
    DocumentDB: uma visãogeral ◦ Comunicação via protocolo HTTP (REST) ◦ Suporte a transações baseado no modelo ACID ◦ Suporte a dados geoespaciais ◦ Consultas via LINQ ou expressões SQL ◦ Pago, com modalidades de cobrança baseadas no número de requisições (RUs) e uso de storage DocumentDB
  • 13.
    Como o DocumentDBestá estruturado?
  • 14.
    Como utilizar oDocumentDB? ◦ Criar uma conta de acesso ao DocumentDB no Portal do Azure ◦ Preencher as configurações para a conta de acesso ◦ Utilizando um SDK ou a API REST informar a URI da conta e a Primary Key geradas no Portal do Azure ◦ Criar então novos databases, coleções e popular os mesmos com dados DocumentDB
  • 15.
    E para testeslocais? ◦ Azure DocumentDB Local Emulator ◦ Disponibilizado recentemente ◦ Apenas testes locais ◦ Não deve ser utilizado como um servidor local DocumentDB
  • 16.
  • 17.
    E quando nãoexistir um SDK? A solução neste caso seria utilizar o Azure DocumentDB REST API
  • 18.
    E no casodo .NET Framework? ◦ Instalar o package Microsoft.Azure.DocumentDB ◦ O pacote Newtonsoft.Json também será adicionado ◦ Podem ser utilizadas classes convencionais, objetos anônimos e estruturas baseadas em tipos dinâmicos
  • 19.
    Como migrar parao DocumentDB? ◦ Utilizando o DocumentDB Data Migration tool ◦ Suporte a inúmeras fontes ◦ Arquivos JSON ◦ MongoDB ◦ SQL Server ◦ Arquivos CSV ◦ Azure Table Storage ◦ Amazon DynamoDB ◦ HBase ◦ Coleções do próprio DocumentDB DocumentDB
  • 20.
    Como migrar parao DocumentDB? ◦ DocumentDB protocol support for MongoDB ◦ Suporte a operações de CRUD ◦ Simples alteração de uma connection string ◦ Uso de drivers existentes do MongoDB DocumentDB
  • 21.
  • 22.
    Exemplo ◦ Catálogo deprodutos e serviços ◦ Criação de uma base chamada AzureFridaySP ◦ Criar uma coleção chamada Catalogo
  • 23.
  • 24.
    Referências ◦ DocumentDB documentation https://azure.microsoft.com/en-us/documentation/services/documentdb/ ◦NoSQL Guide http://martinfowler.com/nosql.html ◦ Exemplos desta apresentação https://github.com/renatogroffe/DocumentDB_AzureFridaySP
  • 25.
    Contatos ◦ 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
  • 26.