26
NoSQL na nuvem UTILIZANDO O DOCUMENTDB

DocumentDB - Azure Fridays São Paulo

Embed Size (px)

Citation preview

Page 1: DocumentDB - Azure Fridays São Paulo

NoSQL na nuvemUTILIZANDO O DOCUMENTDB

Page 2: DocumentDB - Azure Fridays São Paulo

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

Page 3: DocumentDB - Azure Fridays São Paulo

Agenda

◦ O paradigma NoSQL: uma visão geral

◦ Conhecendo o DocumentDB

◦ Exemplos práticos

Page 4: DocumentDB - Azure Fridays São Paulo

O paradigma NoSQL: uma visão geral

Page 5: DocumentDB - Azure Fridays São Paulo

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

Page 6: DocumentDB - Azure Fridays São Paulo

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

Page 7: DocumentDB - Azure Fridays São Paulo

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

Page 8: DocumentDB - Azure Fridays São Paulo

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, } ]}

Page 9: DocumentDB - Azure Fridays São Paulo

Bancos orientados a documentos

DocumentDB

Page 10: DocumentDB - Azure Fridays São Paulo

Conhecendo o DocumentDB

Page 11: DocumentDB - Azure Fridays São Paulo

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 dadosDocumentDB

Page 12: DocumentDB - Azure Fridays São Paulo

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

Page 13: DocumentDB - Azure Fridays São Paulo

Como o DocumentDB está estruturado?

Page 14: DocumentDB - Azure Fridays São Paulo

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

Page 15: DocumentDB - Azure Fridays São Paulo

E para testes locais?◦ Azure DocumentDB Local Emulator

◦ Disponibilizado recentemente

◦ Apenas testes locais

◦ Não deve ser utilizado como um servidor local DocumentDB

Page 16: DocumentDB - Azure Fridays São Paulo

Plataformas Suportadas

Page 17: DocumentDB - Azure Fridays São Paulo

E quando não existir um SDK?

A solução neste caso seria utilizar o Azure DocumentDB REST API

Page 18: DocumentDB - Azure Fridays São Paulo

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

Page 19: DocumentDB - Azure Fridays São Paulo

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

Page 20: DocumentDB - Azure Fridays São Paulo

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

Page 21: DocumentDB - Azure Fridays São Paulo

Exemplos práticos

Page 22: DocumentDB - Azure Fridays São Paulo

Exemplo◦ Catálogo de produtos e serviços

◦ Criação de uma base chamada AzureFridaySP

◦ Criar uma coleção chamada Catalogo

Page 23: DocumentDB - Azure Fridays São Paulo

Dúvidas?

Page 24: DocumentDB - Azure Fridays São Paulo

Referências◦ DocumentDB documentation

https://azure.microsoft.com/en-us/documentation/services/documentdb/

◦ NoSQL Guidehttp://martinfowler.com/nosql.html

◦ Exemplos desta apresentaçãohttps://github.com/renatogroffe/DocumentDB_AzureFridaySP

Page 25: DocumentDB - Azure Fridays São Paulo

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

Page 26: DocumentDB - Azure Fridays São Paulo

Obrigado!