SlideShare uma empresa Scribd logo
1 de 31
NoSQL na nuvem
UTILIZANDO O DOCUMENTDB
Renato Groffe
Microsoft Technical Audience Contributor (MTAC), MCP, MCTS, OCA, ITIL, COBIT
Mais de 15 anos de experiência na área de Tecnologia
Articulista e Palestrante (Devmedia, .NET Magazine, Canal .NET, TechNet Wiki,
.NET Coders, DotNetBaixada , TI Selvagem)
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
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 do tipo chave-valor
Bancos orientados a colunas
Bancos orientados a grafos
Alguns exemplos de bancos NoSQL
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 e uso de storage
DocumentDB
Como o DocumentDB está estruturado?
Como o DocumentDB está estruturado?
DocumentDB Account
◦ Conta que possibilita a administração de vários bancos
Banco de dados
◦ Repositório vinculado a uma conta específica do
DocumentDB
◦ Usuários e permissões podem ser definidos por banco
DocumentDB
Como o DocumentDB está estruturado?
Coleções
◦ Agrupamento de documentos JSON relacionados a uma
demanda comum
◦ Similar a uma tabela em uma base relacional
Documentos
◦ Agrupamento de dados no formato JSON
◦ Similar a um registro em uma tabela relacional DocumentDB
Como o DocumentDB está estruturado?
Attachments
◦ Referências para dependências externas (blob/media)
◦ Gerenciamento a partir do DocumentDB ou via providers
como OneDrive e DropBox
Stored procedures, triggers e UDFs
◦ Funcionamento similar às estruturas equivalentes em
soluções relacionais
◦ Implementação em JavaScript
◦ Pre-triggers, post-triggers
DocumentDB
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
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
Casos de uso reais do DocumentDB - Halo 5
Casos de uso reais do DocumentDB - Walking Dead
Exemplos práticos
Exemplo
◦ Catálogo de produtos e serviços
◦ Criar uma base chamada MobileCloud
◦ 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/ExemploDocumentDB
Obrigado!

Mais conteúdo relacionado

Mais procurados

Apresentação MongoDB
Apresentação MongoDBApresentação MongoDB
Apresentação MongoDB
David de Lucca
 
FileTable Full Text Search & Semantic Search no SQL Server 2012
FileTable Full Text Search & Semantic Search no SQL Server 2012FileTable Full Text Search & Semantic Search no SQL Server 2012
FileTable Full Text Search & Semantic Search no SQL Server 2012
Marcos Freccia
 
Wordpress - Montagem de temas
Wordpress - Montagem de temasWordpress - Montagem de temas
Wordpress - Montagem de temas
Valter Rodrigues
 

Mais procurados (20)

Apresentação MongoDB
Apresentação MongoDBApresentação MongoDB
Apresentação MongoDB
 
Workshops M21 - AMA/ESOP - Alfresco - MoreData
Workshops M21 - AMA/ESOP - Alfresco - MoreDataWorkshops M21 - AMA/ESOP - Alfresco - MoreData
Workshops M21 - AMA/ESOP - Alfresco - MoreData
 
Rdfa | Introdução
Rdfa | IntroduçãoRdfa | Introdução
Rdfa | Introdução
 
Palestra de PHP
Palestra de PHPPalestra de PHP
Palestra de PHP
 
Introdução ao NoSql
Introdução ao NoSqlIntrodução ao NoSql
Introdução ao NoSql
 
Curso de Android - Módulo 07
Curso de Android - Módulo 07Curso de Android - Módulo 07
Curso de Android - Módulo 07
 
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
 
PostgreSQL e FDW
PostgreSQL e FDWPostgreSQL e FDW
PostgreSQL e FDW
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
 
No sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbNo sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodb
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documento
 
FileTable Full Text Search & Semantic Search no SQL Server 2012
FileTable Full Text Search & Semantic Search no SQL Server 2012FileTable Full Text Search & Semantic Search no SQL Server 2012
FileTable Full Text Search & Semantic Search no SQL Server 2012
 
NOSQL uma breve introdução
NOSQL uma breve introduçãoNOSQL uma breve introdução
NOSQL uma breve introdução
 
Arquitetura de banco de dados
Arquitetura de banco de dadosArquitetura de banco de dados
Arquitetura de banco de dados
 
Wordpress - Montagem de temas
Wordpress - Montagem de temasWordpress - Montagem de temas
Wordpress - Montagem de temas
 
Apresentacao html css
Apresentacao html cssApresentacao html css
Apresentacao html css
 
Apresent alfresco
Apresent alfrescoApresent alfresco
Apresent alfresco
 
#3 Instalação MongoDB
#3   Instalação MongoDB  #3   Instalação MongoDB
#3 Instalação MongoDB
 
Curso JavaScript - Aula sobre DOM e Ajax
Curso JavaScript - Aula sobre DOM e AjaxCurso JavaScript - Aula sobre DOM e Ajax
Curso JavaScript - Aula sobre DOM e Ajax
 
Mongo
MongoMongo
Mongo
 

Semelhante a NoSQL na nuvem: utilizando o DocumentDB

Semelhante a NoSQL na nuvem: utilizando o DocumentDB (20)

NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São PauloNoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
 
Bancos NoSQL no Microsoft Azure
Bancos NoSQL no Microsoft AzureBancos NoSQL no Microsoft Azure
Bancos NoSQL no Microsoft Azure
 
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosBanco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
 
MongoDB no Microsoft Azure - DBA Brasil 2.0
MongoDB no Microsoft Azure - DBA Brasil 2.0MongoDB no Microsoft Azure - DBA Brasil 2.0
MongoDB no Microsoft Azure - DBA Brasil 2.0
 
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
 
Alinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQLAlinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQL
 
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
 
FireDAC para BigDATA: Teradata e MongoDB
FireDAC para BigDATA: Teradata e MongoDBFireDAC para BigDATA: Teradata e MongoDB
FireDAC para BigDATA: Teradata e MongoDB
 
Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao Framework
 
Behavior-Driven Development (BDD) - Abril/2017
Behavior-Driven Development (BDD) - Abril/2017Behavior-Driven Development (BDD) - Abril/2017
Behavior-Driven Development (BDD) - Abril/2017
 
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
 
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
 
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ....NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
 
#1 Introdução ao MongoDB
#1   Introdução ao MongoDB#1   Introdução ao MongoDB
#1 Introdução ao MongoDB
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
 
.NET Core + Docker: containers e seus benefícios no deployment de aplicações
.NET Core + Docker: containers e seus benefícios no deployment de aplicações.NET Core + Docker: containers e seus benefícios no deployment de aplicações
.NET Core + Docker: containers e seus benefícios no deployment de aplicações
 

Mais de Renato Groff

Mais de Renato Groff (20)

Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...
Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...
Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...
 
Kubernetes: dicas e truques para o dia a dia | Azure Experts - Novembro-2020
Kubernetes: dicas e truques para o dia a dia | Azure Experts - Novembro-2020Kubernetes: dicas e truques para o dia a dia | Azure Experts - Novembro-2020
Kubernetes: dicas e truques para o dia a dia | Azure Experts - Novembro-2020
 
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
 
Como avançar na Power Platform com Azure Functions e Logic Apps | MVPConf Lat...
Como avançar na Power Platform com Azure Functions e Logic Apps | MVPConf Lat...Como avançar na Power Platform com Azure Functions e Logic Apps | MVPConf Lat...
Como avançar na Power Platform com Azure Functions e Logic Apps | MVPConf Lat...
 
GitHub Actions: descomplicando o build/deployment automatizados | MVPConf Lat...
GitHub Actions: descomplicando o build/deployment automatizados | MVPConf Lat...GitHub Actions: descomplicando o build/deployment automatizados | MVPConf Lat...
GitHub Actions: descomplicando o build/deployment automatizados | MVPConf Lat...
 
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
 
Polly: aplicações .NET resilientes e um melhor tratamento de falhas | MVPConf...
Polly: aplicações .NET resilientes e um melhor tratamento de falhas | MVPConf...Polly: aplicações .NET resilientes e um melhor tratamento de falhas | MVPConf...
Polly: aplicações .NET resilientes e um melhor tratamento de falhas | MVPConf...
 
Containers no Azure: Docker, Kubernetes e suas diferentes possibilidades | MV...
Containers no Azure: Docker, Kubernetes e suas diferentes possibilidades | MV...Containers no Azure: Docker, Kubernetes e suas diferentes possibilidades | MV...
Containers no Azure: Docker, Kubernetes e suas diferentes possibilidades | MV...
 
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020Docker: dicas e truques para o dia a dia | MVPConf Latam 2020
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020
 
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
 
.NET Core + Serverless: Desenvolvimento Multiplataforma com Azure Functions |...
.NET Core + Serverless: Desenvolvimento Multiplataforma com Azure Functions |....NET Core + Serverless: Desenvolvimento Multiplataforma com Azure Functions |...
.NET Core + Serverless: Desenvolvimento Multiplataforma com Azure Functions |...
 
Aplicações Distribuídas com .NET | TDC Recife Online 2020
Aplicações Distribuídas com .NET | TDC Recife Online 2020Aplicações Distribuídas com .NET | TDC Recife Online 2020
Aplicações Distribuídas com .NET | TDC Recife Online 2020
 
Novidades do .NET 5 e ASP.NET 5 | Visual Studio Summit 2020
Novidades do .NET 5 e ASP.NET 5 | Visual Studio Summit 2020Novidades do .NET 5 e ASP.NET 5 | Visual Studio Summit 2020
Novidades do .NET 5 e ASP.NET 5 | Visual Studio Summit 2020
 
Serverless + Integrações com BDs: Azure Functions e Logic Apps - SQLSaturday ...
Serverless + Integrações com BDs: Azure Functions e Logic Apps - SQLSaturday ...Serverless + Integrações com BDs: Azure Functions e Logic Apps - SQLSaturday ...
Serverless + Integrações com BDs: Azure Functions e Logic Apps - SQLSaturday ...
 
Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...
Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...
Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...
 
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
 
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
 
Kubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
Kubernetes na Nuvem | Minicurso Gratuito - Azure na PráticaKubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
Kubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
 
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado | Setembro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado | Setembro-2020Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado | Setembro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado | Setembro-2020
 
Sobrevoando os serviços do Azure | TDC São Paulo Online 2020
Sobrevoando os serviços do Azure | TDC São Paulo Online 2020Sobrevoando os serviços do Azure | TDC São Paulo Online 2020
Sobrevoando os serviços do Azure | TDC São Paulo Online 2020
 

NoSQL na nuvem: utilizando o DocumentDB

  • 2. Renato Groffe Microsoft Technical Audience Contributor (MTAC), MCP, MCTS, OCA, ITIL, COBIT Mais de 15 anos de experiência na área de Tecnologia Articulista e Palestrante (Devmedia, .NET Magazine, Canal .NET, TechNet Wiki, .NET Coders, DotNetBaixada , TI Selvagem) 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
  • 3. Agenda ◦ O paradigma NoSQL: uma visão geral ◦ Conhecendo o DocumentDB ◦ Exemplos práticos
  • 4. O paradigma NoSQL: uma visão geral
  • 5. 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
  • 6. 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
  • 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 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, } ] }
  • 9. Bancos do tipo chave-valor
  • 12. Alguns exemplos de bancos NoSQL
  • 14. 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
  • 15. 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 e uso de storage DocumentDB
  • 16. Como o DocumentDB está estruturado?
  • 17. Como o DocumentDB está estruturado? DocumentDB Account ◦ Conta que possibilita a administração de vários bancos Banco de dados ◦ Repositório vinculado a uma conta específica do DocumentDB ◦ Usuários e permissões podem ser definidos por banco DocumentDB
  • 18. Como o DocumentDB está estruturado? Coleções ◦ Agrupamento de documentos JSON relacionados a uma demanda comum ◦ Similar a uma tabela em uma base relacional Documentos ◦ Agrupamento de dados no formato JSON ◦ Similar a um registro em uma tabela relacional DocumentDB
  • 19. Como o DocumentDB está estruturado? Attachments ◦ Referências para dependências externas (blob/media) ◦ Gerenciamento a partir do DocumentDB ou via providers como OneDrive e DropBox Stored procedures, triggers e UDFs ◦ Funcionamento similar às estruturas equivalentes em soluções relacionais ◦ Implementação em JavaScript ◦ Pre-triggers, post-triggers DocumentDB
  • 20. 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
  • 22. E quando não existir um SDK? A solução neste caso seria utilizar o Azure DocumentDB REST API
  • 23. 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
  • 24. 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
  • 25. Casos de uso reais do DocumentDB - Halo 5
  • 26. Casos de uso reais do DocumentDB - Walking Dead
  • 28. Exemplo ◦ Catálogo de produtos e serviços ◦ Criar uma base chamada MobileCloud ◦ Criar uma coleção chamada Catalogo
  • 30. 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/ExemploDocumentDB