Apresentando o Azure DocumentDB
-
Upload
luciano-moreira -
Category
Data & Analytics
-
view
989 -
download
1
Transcript of Apresentando o Azure DocumentDB
![Page 1: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/1.jpg)
#GlobalAzure
Apresentando o Azure DocumentDBLuciano Moreira [ Luti ]
http://luticm.blogspot.com
http://www.linkedin.com/in/luticm
@luticm
![Page 2: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/2.jpg)
Patrocinadores
![Page 3: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/3.jpg)
• Roadmap: SQL Server, DB2, Oracle, beyond relational, …
![Page 4: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/4.jpg)
■ Motivação■ Azure DocumentDB
■ Conceitos e recursos■ Indexação, consistência e transações■ Modelagem■ Programação
■ Demonstrações■ Conclusão■ Referências
Agenda
![Page 5: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/5.jpg)
■ 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
![Page 6: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/6.jpg)
■ Michael Stonebreaker■ Postgre, Ingres, VoltDB
■ Turing award – 25 de março de 2015
Motivação
![Page 7: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/7.jpg)
Motivação
![Page 8: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/8.jpg)
■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
![Page 9: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/9.jpg)
■ 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
![Page 10: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/10.jpg)
■ 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
![Page 11: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/11.jpg)
■ Recursos■ Database account■ Database■ User■ Permission■ Collection■ Document■ Attachment■ Stored procedure, trigger, UDF
Azure DocumentDB
![Page 12: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/12.jpg)
![Page 13: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/13.jpg)
![Page 14: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/14.jpg)
■ 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
![Page 15: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/15.jpg)
■ 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
![Page 16: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/16.jpg)
■ 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
![Page 17: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/17.jpg)
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
![Page 18: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/18.jpg)
■ 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
![Page 19: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/19.jpg)
Azure DocumentDB
■ RANGE PARTITION
![Page 20: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/20.jpg)
Azure DocumentDB
■ LOOKUP PARTITION
![Page 21: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/21.jpg)
Azure DocumentDB
■ HASH PARTITION
![Page 22: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/22.jpg)
Azure DocumentDB
■ RANGE LOOKUP PARTITION (composto)
![Page 23: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/23.jpg)
■ Bibliotecas■.NET■ Java■ Python■ Javascript■ Node.js
■Integrações■ DocumentDB e Azure Search■ Hadoop job com conector para o DocumentDB
Azure DocumentDB
![Page 24: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/24.jpg)
![Page 25: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/25.jpg)
■ 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
![Page 26: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/26.jpg)
■ Portal DocumentDBhttp://azure.microsoft.com/en-us/services/documentdb/
■ Blog DocumentDBhttp://blogs.msdn.com/b/documentdb/
■ Query playgroundhttp://www.documentdb.com/sql/demo■ Channel 9 Videoshttp://channel9.msdn.com/Series/Developing-Solutions-with-Azure-DocumentDB
Referências
![Page 27: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/27.jpg)
http://luticm.blogspot.com
http://www.linkedin.com/in/luticm
![Page 28: Apresentando o Azure DocumentDB](https://reader036.fdocuments.net/reader036/viewer/2022062412/587333431a28ab596c8b706f/html5/thumbnails/28.jpg)