apresentando o azure documentdb

28
#GlobalAzure Apresentando o Azure DocumentDB Luciano Moreira [ Luti ] [email protected] http://luticm.blogspot.com http://www.linkedin.com/in/luticm @luticm

Upload: luciano-moreira

Post on 16-Apr-2017

982 views

Category:

Data & Analytics


1 download

TRANSCRIPT

Page 1: Apresentando o Azure DocumentDB

#GlobalAzure

Apresentando o Azure DocumentDBLuciano Moreira [ Luti ]

[email protected]

http://luticm.blogspot.com

http://www.linkedin.com/in/luticm

@luticm

Page 2: Apresentando o Azure DocumentDB

Patrocinadores

Page 3: Apresentando o Azure DocumentDB

• Roadmap: SQL Server, DB2, Oracle, beyond relational, …

Page 4: Apresentando o Azure DocumentDB

■ 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

■ 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

■ Michael Stonebreaker■ Postgre, Ingres, VoltDB

■ Turing award – 25 de março de 2015

Motivação

Page 7: Apresentando o Azure DocumentDB

Motivação

Page 8: Apresentando o Azure DocumentDB

■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

■ 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

■ 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

■ Recursos■ Database account■ Database■ User■ Permission■ Collection■ Document■ Attachment■ Stored procedure, trigger, UDF

Azure DocumentDB

Page 12: Apresentando o Azure DocumentDB
Page 13: Apresentando o Azure DocumentDB
Page 14: Apresentando o 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

Page 15: Apresentando o 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

Page 16: Apresentando 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

Page 17: Apresentando o 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

Page 18: Apresentando o 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

Page 19: Apresentando o Azure DocumentDB

Azure DocumentDB

■ RANGE PARTITION

Page 20: Apresentando o Azure DocumentDB

Azure DocumentDB

■ LOOKUP PARTITION

Page 21: Apresentando o Azure DocumentDB

Azure DocumentDB

■ HASH PARTITION

Page 22: Apresentando o Azure DocumentDB

Azure DocumentDB

■ RANGE LOOKUP PARTITION (composto)

Page 23: Apresentando o Azure DocumentDB

■ 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
Page 25: Apresentando o 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

Page 26: Apresentando o Azure DocumentDB

■ 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

[email protected]

http://luticm.blogspot.com

http://www.linkedin.com/in/luticm

Page 28: Apresentando o Azure DocumentDB