SlideShare uma empresa Scribd logo
#GlobalAzure
Apresentando o
Azure DocumentDB
Luciano Moreira [ Luti ]
luciano.moreira@srnimbus.com.br
http://luticm.blogspot.com
http://www.linkedin.com/in/luticm
@luticm
Patrocinadores
• Roadmap: SQL Server, DB2, Oracle, beyond
relational, …
■ Motivação
■ Azure DocumentDB
■ Conceitos e recursos
■ Indexação, consistência e transações
■ Modelagem
■ Programação
■ Demonstrações
■ Conclusão
■ Referências
Agenda
■ SGBDRs vão acabar!
■ OK, mas NoSQL tem seu lugar ao sol...
■ Column oriented (Accumulo, Cassandra, HBase,
Vertica, ...)
■ Key-value store (MemcacheDB, Redis, Riak, ...)
■ Document store (Apache CouchDB, Couchbase,
MongoDB, ...)
■ Graph databases (Neo4j, Allegro, OrientDB, ...)
Motivação
■ Michael Stonebreaker
■ Postgre, Ingres, VoltDB
■ Turing award – 25 de março de 2015
Motivação
Motivação
■Existem cenários em que um modelo diferente
do relacional tradicional é interessante
■ Flexibilidade de esquema
■ Agilidade no desenvolvimento
■ Mecanismos de escalabilidade nativos
■ Recursos built-in resolvem problemas complexos
Motivação
■ User generated content
■ Catalog data
■ Log data
■ User preferences data
■ Device sensor data (IoT)
■ http://azure.microsoft.com/en-
us/documentation/articles/documentdb-use-cases/
Motivação
■ Uma alternativa NoSQL no Azure
■ GA em 08 de Abril de 2015
■ Suporte nativo JSON e Javascript
■ Linguagem similar ao SQL
■ Cloud based e diferentes níveis de performance
■ Esquema flexível
■ Estruturado sobre “low-latency, write-optimized, SSD
storage”
■ Interface RESTful HTTP
Azure DocumentDB
■ Recursos
■ Database account
■ Database
■ User
■ Permission
■ Collection
■ Document
■ Attachment
■ Stored procedure, trigger, UDF
Azure DocumentDB
■ Indexação automática de todos os documentos
■ “write-optimized, lock-free and log-structured index
maintenance techniques”
■ Políticas de indexação
■ Definir política padrão (indexar tudo ou não)
■ Excluir documentos específicos (indexingPolicy ou
header de requisição [x-ms-indexingdirective])
■ Incluir/excluir paths específicos
■ Síncrono (consistente) ou assíncrono (lazy)
Azure DocumentDB
■ ACID vs BASE
■ Níveis de consistência suportados
■ Strong
■ Bounded staleness
■ Session
■ Eventual
■ Transações: garantidas para server-side scripts
■ Dentro de uma coleção
Azure DocumentDB
■ Stored procedures
■ Triggers: pré e pós operação
■ User defined functions
■ Internamente todo código é envolto em um
BEGIN TRANSACTION e COMMIT TRANSACTION
■ Exceção é tratada como ROLLBACK
TRANSACTION
Azure DocumentDB
var createDocumentStoredProc = {
id: "createMyDocument",
body: function createMyDocument(documentToCreate) {
var context = getContext();
var collection = context.getCollection();
var accepted = collection.createDocument(collection.getSelfLink(),
documentToCreate,
function (err, documentCreated) {
if (err) throw new Error('Error' + err.message);
context.getResponse().setBody(documentCreated.id)
});
if (!accepted) return;
}
}
Azure DocumentDB
■ Sim, existe “modelagem” para o JSON
■ Embed, FKs, N-N e híbridos
■ Limitações do DocumentDB
■ Bancos, usuários, coleções, etc.
■ Maximum Request Units / second per collection
■ Como você irá dividir os documentos entre as
coleções?
Azure DocumentDB
Azure DocumentDB
■ RANGE PARTITION
Azure DocumentDB
■ LOOKUP PARTITION
Azure DocumentDB
■ HASH PARTITION
Azure DocumentDB
■ RANGE LOOKUP PARTITION (composto)
■ Bibliotecas
■.NET
■ Java
■ Python
■ Javascript
■ Node.js
■Integrações
■ DocumentDB e Azure Search
■ Hadoop job com conector para o DocumentDB
Azure DocumentDB
■ DocumentDB é um banco simples de se
trabalhar
■ Escalabilidade e rápido desenvolvimento
■ Transações e modelos de consistências claros,
mesmo para mindset relacional
■ Cuidado com modelagem, limitações e políticas
■ “Developer friendly”
■ Donald Feinberg em Maio/2014...
Conclusão
■ Portal DocumentDB
http://azure.microsoft.com/en-us/services/documentdb/
■ Blog DocumentDB
http://blogs.msdn.com/b/documentdb/
■ Query playground
http://www.documentdb.com/sql/demo
■ Channel 9 Videos
http://channel9.msdn.com/Series/Developing-Solutions-
with-Azure-DocumentDB
Referências
luciano.moreira@srnimbus.com.br
http://luticm.blogspot.com
http://www.linkedin.com/in/luticm
Apresentando o Azure DocumentDB

Mais conteúdo relacionado

Semelhante a Apresentando o Azure DocumentDB

Semelhante a Apresentando o Azure DocumentDB (20)

NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documento
 
[DTC21] André Marques - Jornada do Engenheiro de Dados
[DTC21] André Marques - Jornada do Engenheiro de Dados[DTC21] André Marques - Jornada do Engenheiro de Dados
[DTC21] André Marques - Jornada do Engenheiro de Dados
 
MongoDB + PHP
MongoDB + PHPMongoDB + PHP
MongoDB + PHP
 
Performance no MongoDB - TDC 2017 | Florianópolis
Performance no MongoDB - TDC 2017 | FlorianópolisPerformance no MongoDB - TDC 2017 | Florianópolis
Performance no MongoDB - TDC 2017 | Florianópolis
 
Meetup Tivir - Big Data Clusters
Meetup Tivir - Big Data ClustersMeetup Tivir - Big Data Clusters
Meetup Tivir - Big Data Clusters
 
Mongo db
Mongo dbMongo db
Mongo db
 
NoSQL azure
NoSQL azureNoSQL azure
NoSQL azure
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
 
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
 
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
 
Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC
 
Arquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLArquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQL
 
NoSQL no Azure - Azure Tech Nights - 2017
NoSQL no Azure - Azure Tech Nights - 2017NoSQL no Azure - Azure Tech Nights - 2017
NoSQL no Azure - Azure Tech Nights - 2017
 
Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)
 
[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQL[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQL
 
5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 
PASS SQLSATURDAY 663 Rio de Janeiro, Brazil
PASS SQLSATURDAY 663 Rio de Janeiro, BrazilPASS SQLSATURDAY 663 Rio de Janeiro, Brazil
PASS SQLSATURDAY 663 Rio de Janeiro, Brazil
 
SQL Server Heterogêneo: SQL Server + BigData
SQL Server Heterogêneo: SQL Server + BigDataSQL Server Heterogêneo: SQL Server + BigData
SQL Server Heterogêneo: SQL Server + BigData
 
Visão estratégica de como migrar para a cloud
Visão estratégica de como migrar para a cloudVisão estratégica de como migrar para a cloud
Visão estratégica de como migrar para a cloud
 

Mais de Luciano Moreira (7)

Entendendo o paralelismo no SQL Server
Entendendo o paralelismo no SQL ServerEntendendo o paralelismo no SQL Server
Entendendo o paralelismo no SQL Server
 
Do MTA ao MCM*, carreira SQL Server e DBA multiplataforma
Do MTA ao MCM*, carreira SQL Server e DBA multiplataformaDo MTA ao MCM*, carreira SQL Server e DBA multiplataforma
Do MTA ao MCM*, carreira SQL Server e DBA multiplataforma
 
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVOMANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
 
SQLInternalOps - SQLOS
SQLInternalOps - SQLOSSQLInternalOps - SQLOS
SQLInternalOps - SQLOS
 
SQLServerDF XII - Wait Types
SQLServerDF XII - Wait TypesSQLServerDF XII - Wait Types
SQLServerDF XII - Wait Types
 
SQLServerDF XIII - xEvents
SQLServerDF XIII - xEventsSQLServerDF XIII - xEvents
SQLServerDF XIII - xEvents
 
Confiabilidade de pacotes no SSIS
Confiabilidade de pacotes no SSISConfiabilidade de pacotes no SSIS
Confiabilidade de pacotes no SSIS
 

Apresentando o Azure DocumentDB

  • 1. #GlobalAzure Apresentando o Azure DocumentDB Luciano Moreira [ Luti ] luciano.moreira@srnimbus.com.br http://luticm.blogspot.com http://www.linkedin.com/in/luticm @luticm
  • 3. • Roadmap: SQL Server, DB2, Oracle, beyond relational, …
  • 4. ■ Motivação ■ Azure DocumentDB ■ Conceitos e recursos ■ Indexação, consistência e transações ■ Modelagem ■ Programação ■ Demonstrações ■ Conclusão ■ Referências Agenda
  • 5. ■ SGBDRs vão acabar! ■ OK, mas NoSQL tem seu lugar ao sol... ■ Column oriented (Accumulo, Cassandra, HBase, Vertica, ...) ■ Key-value store (MemcacheDB, Redis, Riak, ...) ■ Document store (Apache CouchDB, Couchbase, MongoDB, ...) ■ Graph databases (Neo4j, Allegro, OrientDB, ...) Motivação
  • 6. ■ Michael Stonebreaker ■ Postgre, Ingres, VoltDB ■ Turing award – 25 de março de 2015 Motivação
  • 8. ■Existem cenários em que um modelo diferente do relacional tradicional é interessante ■ Flexibilidade de esquema ■ Agilidade no desenvolvimento ■ Mecanismos de escalabilidade nativos ■ Recursos built-in resolvem problemas complexos Motivação
  • 9. ■ User generated content ■ Catalog data ■ Log data ■ User preferences data ■ Device sensor data (IoT) ■ http://azure.microsoft.com/en- us/documentation/articles/documentdb-use-cases/ Motivação
  • 10. ■ Uma alternativa NoSQL no Azure ■ GA em 08 de Abril de 2015 ■ Suporte nativo JSON e Javascript ■ Linguagem similar ao SQL ■ Cloud based e diferentes níveis de performance ■ Esquema flexível ■ Estruturado sobre “low-latency, write-optimized, SSD storage” ■ Interface RESTful HTTP Azure DocumentDB
  • 11. ■ Recursos ■ Database account ■ Database ■ User ■ Permission ■ Collection ■ Document ■ Attachment ■ Stored procedure, trigger, UDF Azure DocumentDB
  • 12.
  • 13.
  • 14. ■ Indexação automática de todos os documentos ■ “write-optimized, lock-free and log-structured index maintenance techniques” ■ Políticas de indexação ■ Definir política padrão (indexar tudo ou não) ■ Excluir documentos específicos (indexingPolicy ou header de requisição [x-ms-indexingdirective]) ■ Incluir/excluir paths específicos ■ Síncrono (consistente) ou assíncrono (lazy) Azure DocumentDB
  • 15. ■ ACID vs BASE ■ Níveis de consistência suportados ■ Strong ■ Bounded staleness ■ Session ■ Eventual ■ Transações: garantidas para server-side scripts ■ Dentro de uma coleção Azure DocumentDB
  • 16. ■ Stored procedures ■ Triggers: pré e pós operação ■ User defined functions ■ Internamente todo código é envolto em um BEGIN TRANSACTION e COMMIT TRANSACTION ■ Exceção é tratada como ROLLBACK TRANSACTION Azure DocumentDB
  • 17. var createDocumentStoredProc = { id: "createMyDocument", body: function createMyDocument(documentToCreate) { var context = getContext(); var collection = context.getCollection(); var accepted = collection.createDocument(collection.getSelfLink(), documentToCreate, function (err, documentCreated) { if (err) throw new Error('Error' + err.message); context.getResponse().setBody(documentCreated.id) }); if (!accepted) return; } } Azure DocumentDB
  • 18. ■ Sim, existe “modelagem” para o JSON ■ Embed, FKs, N-N e híbridos ■ Limitações do DocumentDB ■ Bancos, usuários, coleções, etc. ■ Maximum Request Units / second per collection ■ Como você irá dividir os documentos entre as coleções? Azure DocumentDB
  • 22. Azure DocumentDB ■ RANGE LOOKUP PARTITION (composto)
  • 23. ■ Bibliotecas ■.NET ■ Java ■ Python ■ Javascript ■ Node.js ■Integrações ■ DocumentDB e Azure Search ■ Hadoop job com conector para o DocumentDB Azure DocumentDB
  • 24.
  • 25. ■ DocumentDB é um banco simples de se trabalhar ■ Escalabilidade e rápido desenvolvimento ■ Transações e modelos de consistências claros, mesmo para mindset relacional ■ Cuidado com modelagem, limitações e políticas ■ “Developer friendly” ■ Donald Feinberg em Maio/2014... Conclusão
  • 26. ■ Portal DocumentDB http://azure.microsoft.com/en-us/services/documentdb/ ■ Blog DocumentDB http://blogs.msdn.com/b/documentdb/ ■ Query playground http://www.documentdb.com/sql/demo ■ Channel 9 Videos http://channel9.msdn.com/Series/Developing-Solutions- with-Azure-DocumentDB Referências