#CATAzureDay
Robert Bermejo
.NET Architect & Mobile & Azure Practice Lead (Sogeti España,SLU)
Organizador meetup CATzure (@cat_zure)
www.robertbermejo.com
@robertbemejo
https://es.linkedin.com/in/robert-bermejo-blasco-75a73b2a
bermejoblasco@live.com
MarçalMontserrat
@Marcal_MC
Senior Developer & Cloud Specialist (Sogeti España,SLU)
https://es.linkedin.com/in/marçal-montserrat-
53469a41
https://itblogsogeti.com/
https://itblogsogeti.com/
http://www.compartimoss.com/
#CATAzureDay
Agenda
ANTES DEMO DEMO
#CATAzureDay
Las Aplicaciones modernas de hoy
• Consumir datos rápidamente
• Tiempos de respuesta casi instantáneos
• Modelos de datos en constante evolución
• Crecimiento rápido e impredecible.
#CATAzureDay
{ }
DocumentDB
Schema Free
query
JavaScript
as a
modern
T-SQL
Tunable
Consistency
Fully
Managed
#CATAzureDay
NoSQL document database-as-a-service
#CATAzureDay
DocumentDB Esquema
/docs/{id} /attachments/{id}
/sprocs/{id}
/triggers/{id}
/functions/{id}
/colls/{id}/dbs/{id}
/users/{id}
/permissions/{id}
#CATAzureDay
Collections != tables
Particionamiento
Transacciones sobre
collection
Schema flexible
Queried or updated se
realiza sobre una collection
DocumentDB Collections
#CATAzureDay
Collections
Document 1 Document 2
Document 3 Document 4
DocumentDB
Application
{
"name": "John",
"country": "Canada",
"age": 43,
"lastUse": "March 4, 2014"
}
{
"name": "Lou",
"country": "Australia",
"age": 51,
"firstUse": "May 8, 2013"
}
{
"docCount": 3,
"last": "May 1, 2014"
}
{
"name": "Eva",
"country": "Germany",
"age": 25
}
JSON
#CATAzureDay
{
“locations”:
[
{“country”: “Germany”, “city”: “Berlin”},
{“country”: “France”, “city”: “Paris”},
],
“headquarter”: “Belgium”,
“exports”:[{“city”; “Moscow”},{“city: ”Athens”}]
};
JSON document as tree
Locations Headquarter
Belgium
Country City Country City
Germany Berlin France Paris
Exports
CityCity
Moscow Athens
0 10 1
#CATAzureDay
SQL SELECT location.country FROM location IN company.locations
WHERE location.city = 'Berlin'
Results
[
{"country": "Germany"}
]
Var company1= { “locations” : [
{“country”: “Germany”, “city”: “Berlin”},
{“country”: “France”, “city”: “Paris”},
], “headquarter”: “Belgium”, “exports”: [
{ “city”; “Moscow” },{ “city: ”Athens” }]
};
Var company2= { “locations” :
[{“country”: “Germany”, “city”: “Bonn”,
revenue”: 200 } ], “headquarter”: “Italy”,
“exports”: [ { “city”; “Berlin” },{ “dealers”:
[{“name”: “Hans”}] }, {city”: ”Athens” }]
};
Locations Headquarter Exports
City CityDealers
Germany Bonn 200 Berlin Name Athens
0 Italy 0 1
Hans
Country City Revenue
Locations Headquarter
Belgium
Country City Country City
Germany Berlin France Paris
Exports
CityCity
Moscow Athens
0 10 1
#CATAzureDay
http://www.documentdb.com/sql/demo
#CATAzureDay
• Javascript
• Mediante stored procedures o triggers
• La inserción de los documentos está bajo una
transacción
• ACID
#CATAzureDay
Document DB soporta la opción multi región
#CATAzureDay
DocumentDB Index
Data consistency policy
Strong Bounded
Staleness
Session Eventual
Indexing
mode
Lazy Eventual Eventual Eventual Eventual
Consistent Strong Bounded
Staleness
Session Eventual
#CATAzureDay
#CATAzureDay
DEMO
#CATAzureDay

Catzure documentdb