3. L A S A P L I C A C I O N E S
M O D E R N A S E N F R E N TA N
N U E V O S D E S A F Í O S
Administrar y sincronizar datos distribuidos en todo el mundo
Entregar personalización que responde muy adecuadamente y
en tiempo real
Procesamiento y análisis de muchos datos complejos
Escalación tanto de rendimiento como de almacenamiento con
base en demanda global
Entrega de baja latencia a usuarios globales
Modernización de aplicaciones y datos existentes
4. SQL: MongoDB
API de
tabla
Distribución global
Escalabilidad horizontal elástica
de almacenamiento y rendimiento
Baja latencia garantizada en el percentil 99
SLAs completos
Cinco modelos de consistencia
bien definidos
A Z U R E C O S M O S D B
DocumentoFamilia de columnas
Valor de clave Gráfico
Un servicio de base de datos globalmente distribuido, escalable
masivamente y multi-modelo
5. C A R A C T E R I S T I C A S P R I N C I PA L E S
6. D I S T R I B U C I Ó N G LO B A L
PONGA SUS DATOS DONDE ESTÁN SUS USUARIOS
Replique automáticamente todos los datos de todo el mundo,
y en más regiones que Amazon y Google combinados.
• Disponible en todas las regiones de Azure
• Conmutación por error manual y automática
• Replicación multi-región automática y sincrónica
7. E S C A L A B I L I D A D E L Á S T I C A D E A L M A C E N A M I E N TO Y
R E N D I M I E N TO
SE ESCALA EN LA MEDIDA EN QUE SUS APLICACIONES
NECESITEN CAMBIAR
Independientemente y elásticamente escale almacenamiento
y rendimiento en todas las regiones, incluso durante ráfagas
de tráfico imprevisibles - con una base de datos que se
adapta a las necesidades de su aplicación.
• Escale el rendimiento de forma elástica de 10 a 100s de
millones de solicitudes/seg en múltiples regiones
• Soporte para solicitudes/seg para distintas cargas de trabajo
• Pague sólo por el rendimiento y el almacenamiento que
necesita
8. B A J A L AT E N C I A G A R A N T I Z A D A
PROPORCIONAR A LOS USUARIOS DE TODO EL
MUNDO ACCESO RÁPIDO A DATOS
Servir a <10 ms solicitudes de lectura y de escritura
en el 99o percentil de la región más cercana a los
usuarios, mientras se entregan los datos a nivel
mundial.
9. Robusta Obsolescencia limitada Sesión Prefijo consistente Eventual
C I N C O M O D E LO S D E C O N S I S T E N C I A B I E N D E F I N I D O S
ELEGIR EL MEJOR MODELO DE CONSISTENCIA PARA SU APLICACIÓN
Ofrece cinco modelos de consistencia
Proporciona control sobre las compensaciones de
rendimiento-consistencia, respaldado por amplios SLAs.
Un modelo de programación intuitiva que ofrece baja latencia
y alta disponibilidad para su aplicación a escala del planeta.
10. M Ú LT I P L E S M O D E LO S D E D ATO S Y A P I S
UTILICE EL MODELO QUE MEJOR SE ADAPTE A SUS
NECESIDADES, Y LAS APIS, HERRAMIENTAS Y MARCOS DE
TRABAJO QUE PREFIERA
Familia de columna Documento
Valor de clave
API de
tabla
SQL:
MongoDB
Gráfico
Cosmos DB ofrece una multitud de APIs para el acceso y la consulta
de datos incluyendo, SQL, diversas APIs OSS populares y soporte
nativo para cargas de trabajo de NoSQL.
Uso de datos de valor de clave, tabulares, gráficos y de documentos
Los datos se indexan automáticamente, sin esquema o índices
secundarios necesarios
Consultas ultrarrápidas sin ningún retraso
11. M A N E J E C U A LQ U I E R T I P O D E D ATO S S I N
R E Q U E R I R D E E S Q U E M A O I N D E X A C I Ó N
El servicio sin esquema de Azure Cosmos DBs indexa automáticamente
todos sus datos, independientemente del modelo de datos, para
entregar consultas rapidísimas.
Ítem Color
Seguro para
microondas
Capacidad
Líquida
CPU Memoria
Almacen
amiento
Taza
geek
Grafito Sí 16ox ??? ??? ???
Taza de
grano de
café
Cuero No 12oz ??? ??? ???
Surface
book
Gris ??? ??? 3.4 GHz
Intel
Skylake
Core i7-
6600U
16GB 1 TB SSD
• Administración automática de índice
• Auto-indexación automática sincrónica
• No se necesitan esquemas ni índices secundarios
• Funciona a través de cada modelo de datos
GEEK
12. S L A S C O M P L E TO S
EJECUTE SUS APLICACIONES EN UNA INFRAESTRUCTURA DE CLASE
MUNDIAL
Azure Cosmos DB es el único servicio con SLAs respaldados financieramente
para una latencia de milisegundos en el 99o percentil, 99,999% de HA y
rendimiento y consistencia garantizados
HALatencia
<10 ms
Percentil 99o
99.999%
Rendimiento Consistencia
Garantizado Garantizado
13. C O N F Í E S U S D ATO S A L A S E G U R I D A D Y
C O N F O R M I D A D L Í D E R E S E N L A I N D U S T R I A
Azure es la nube más confiable del mundo, con más
certificaciones que cualquier otro proveedor de nube.
• Seguridad de nivel empresarial
• Cifrado en reposo
• El cifrado es activado automáticamente de manera
predeterminada
• Certificación completa de conformidad de Azure
14. D ATO S D I S T R I B U I D O S Y
D I S P O N I B L E S E N TO D O E L M U N D O
Ponga sus datos donde están sus usuarios para brindar
acceso en tiempo real y servicio ininterrumpido a los
clientes en cualquier parte del mundo.
• Replicación de datos global "turnkey" en todas las
regiones de Azure
• Experiencia de baja latencia garantizada para usuarios
globales
• Resiliencia para alta disponibilidad y recuperación ante
desastres
15. G E N E R E E X P E R I E N C I A S D E
C L I E N T E E N T I E M P O R E A L
Ofrece aplicaciones sensibles a la latencia con
personalización, licitación y detección de fraudes.
• Los modelos de aprendizaje de máquina generan
recomendaciones en tiempo real a través de
catálogos de productos
• Análisis de productos en milisegundos
• La baja latencia garantiza un alto rendimiento de
las aplicaciones en todo el mundo
• Modelos de consistencia sintonizables para
obtener conocimientos rápidos
Servicio de recomendaciones en línea
Ruta de acceso ACTIVA
Motor de recomendaciones sin conexión
Ruta de acceso INACTIVA
16. I D E A L PA R A J U E G O S Y
C O M E R C I O E L E C T R Ó N I C O
Mantener la calidad del servicio durante períodos de
alto tráfico que requieren escalabilidad y
rendimiento masivos.
• La escalación instantánea y elástica maneja las
ráfagas de tráfico
• Experiencia de usuario global ininterrumpida
• Acceso y procesamiento de datos de baja latencia
para bases de usuarios grandes y cambiantes
• Alta disponibilidad a lo largo de múltiples centros
de datos
17. T E L E M E T R I A D E S D E I OT
Las cargas de trabajo de sensor de IoT que son
diversas e imprevisibles requieren una plataforma
de datos que responda adecuadamente
• Manipulación perfecta de cualquier salida o
volumen de datos
• Los datos se ponen a disposición de manera
inmediata y son automáticamente indexados
• Alto número de escrituras por segundo, con
rendimiento estable de ingesta y consultas
18. D E S A R R O L LO S I M P L I F I C A D O
C O N A R Q U I T E C T U R A S I N
S E R V I D O R
Experimente una disminución en el tiempo de
implementación, una mejor escalabilidad y la libertad
de la administración de marco de trabajo con micro-
servicios orientados hacia eventos.
• Manipulación perfecta de cualquier salida o
volumen de datos
• Los datos se ponen a disposición de manera
inmediata y son automáticamente indexados
• Alto número de escrituras por segundo, con
rendimiento estable de ingesta y consultas
• Feeds de cambio resilientes y en tiempo real
siempre conectados y accesible
• Integración nativa con Azure Functions
19. N O S Q L L I F T & S H I F T
Facilite la modernización de datos con una migración
de perfecta de cargas de trabajo de NoSQL hacia la
nube.
• Las APIs de Azure Cosmos DB APIs para MongoDB
y Cassandra traen datos de aplicaciones desde
cualquier lugar hacia Azure Cosmos DB
• Aproveche las herramientas, controladores y
bibliotecas existentes y continúe utilizando los
SDKs de las aplicaciones existentes
• Geo-replicación "turnkey"
• No requiere infraestructura o administración de
VM
.NET
21. Cuenta
Base de
datos
Base de
datos
Base de
datos
Base de
datos
Base de
datosContenedor
Base de
datos
Base de
datosÍtem
U R I Y C R E D E N C I A L E S D E C U E N TA
********.azure.com
IGeAvVUp …
22. C R E A R U N A C U E N TA
Cuenta
Base de
datos
Base de
datos
Base de
datos
Base de
datos
Base de
datosContenedor
Base de
datos
Base de
datosÍtem
23. R E P R E S E N TA C I O N E S D E B A S E D E D ATO S
Cuenta
Base de
datos
Base de
datos
Base de
datos
Base de
datos
Base de
datosContenedor
Base de
datos
Base de
datosÍtem
Base de
datos
Base de
datosContenedor
Base de
datos
Base de
datosÍtem
24. R E P R E S E N TA C I O N E S D E C O N T E N E D O R
Cuenta
Base de
datos
Base de
datos
Base de
datos
Base de
datos
Base de
datosContenedor
Base de
datos
Base de
datosÍtem
= Colección Gráfico Tabla
25. C R E A C I Ó N D E C O L E C C I O N E S - S Q L A P I
Cuenta
Base de
datos
Base de
datos
Base de
datos
Base de
datos
Base de
datosContenedor
Base de
datos
Base de
datosÍtem
26. R E C U R S O S A N I V E L D E C O N T E N E D O R
Cuenta
Base de
datos
Base de
datos
Base de
datos
Base de
datos
Base de
datosContenedor
Base de
datos
Base de
datosÍtem ConflictoSproc Triggers UDF
27. TO P O LO G I A Y PA R T I C I O N A M I E N TO
28. TO P O LO G Í A D E S I S T E M A
Resource
Manager
Language
Runtime(s)
Hosts
Query
Processor
RSM
Index Manager
Bw-tree++/ LLAMA++
Log Manager
IO Manager
Resource Governor
Transport
Database engine
Admission control
…
…
Planeta tierra Regiones de Azure Datacenters Stamps Fault domains
Cluster Machine Replica Database engine
Container
Various agents
29. TO P O LO G I A D E S I S T E M A
CONTENEDORES
Los recursos lógicos se “proyectan" en APIs como
tablas, colecciones o gráficos, que se compone de una
o más particiones físicas o servidores.
PARTICIONES DE RECURSOS
• Primitivos de coordinación altamente disponibles y
gobernados por recursos
• Constan de conjuntos de réplicas, con cada réplica
hospedando una instancia del motor de base de
datos
Contenedores
Particiones de recursos
ColeccionesTablas Gráficos
Inquilinos
Líder
Seguidor
Seguidor
Reenviador
Conjunto de réplicas
A partición(es) de recurso remoto
30. PA R T I C I O N E S
Cosmos DB Container
(ej. Colección)
Clave de partición: ID
de usuario
Abstracción de particionamiento lógico
Tras Bambalinas:
Conjuntos de particiones físicas
Hash (ID de usuario)
Distribución pseudo aleatoria de datos a lo largo de un rango de posibles valores
con hash
31. PA R T I C I O N E S
…
Partición 1 Partición 2 Partición n
# frugal de particiones con base en las necesidades reales de rendimiento y almacenamiento
(produciendo la escalabilidad con un bajo costo total de propiedad)
Hash (ID de usuario)
Distribución pseudo aleatoria de datos a lo largo de un rango de posibles valores
con hash
Andrew
Mike
…
Bob
Dharma
Shireesh
Karthik
Rimma
Alice
Carol
…
32. PA R T I C I O N E S
…
Partición 1 Partición 2 Partición n
¿Qué sucede cuando las particiones necesitan crecer?
Hash (ID de usuario)
Distribución pseudo aleatoria de datos a lo largo de un rango de posibles valores
con hash
Andrew
Mike
…
Bob
Dharma
Shireesh
Karthik
Rimma
Alice
Carol
…
33. PA R T I C I O N E S
Los Rangos de partición pueden ser dinámicamente sub-
divididos para hacer que la base de datos crezca perfectamente
conforme la aplicación crezca mientras se mantiene una alta
disponibilidad de manera simultánea.
La administración de particiones está completamente
administrada por Azure Cosmos DB, de modo que usted no
tiene que escribir código ni administrar sus particiones.
+
Partición x Partición
x1
Partición
x2
Hash (ID de usuario)
Distribución pseudo aleatoria de datos a lo largo de un rango de posibles valores
con hash
Rimma
Karthik
…
Dharma
Shireesh
Karthik
Rimma
Alice
Carol
…
Dharma
Shireesh
…
35. U N I D A D E S D E S O L I C I T U D
Las Unidades de solicitud (RUS) son una unidad basada en
velocidad
Abstrae los recursos físicos para llevar a cabo las solicitudes
Clave para eficiencia de multi-inquilinos, SLAs y COGS
Actividades en primero y segundo plano
% IOPS% CPU% Memoria
36. U N I D A D E S D E S O L I C I T U D
Normalizado a través de diversos métodos de acceso
1 RU = 1 lectura de documento de 1 KB
Cada solicitud consume RUs fijos
Se aplica a lecturas, escrituras, consultas y ejecución de
procedimiento almacenado
GET
POST
PUT
QUERY
…
=
=
=
=
37. U N I D A D E S D E S O L I C I T U D
Aprovisionado en términos de RU/seg
Limitación de velocidad en función de la cantidad de
rendimiento aprovisionado
Puede ser aumentado o disminuido de forma instantánea
Se mide cada hora
Los procesos en segundo plano como expiración de TTL y
transformaciones de índice se programan cuando están
inactivos
Min RU/seg
Máx RU/seg
Solicitudesentrantes
Réplica inactiva
Límite de
velocidad
No hay límite de
velocidad
38. U N I D A D E S D E S O L I C I T U D
Cuenta
Base de
datos
Base de
datos
Base de
datos
Base de
datos
Base de
datosContenedor
39. U N I D A D E S D E S O L I C I T U D
Cuenta
Base de
datos
Base de
datos
Base de
datos
Base de
datos
Base de
datosContenedor
Base de
datos
Base de
datosContenedor
Base de
datos
Base de
datosContenedor
40. VA L I D A C I Ó N D E L A O P C I Ó N D E N I V E L D E
R E N D I M I E N TO
1. Compruebe si sus operaciones tienen limitación
de velocidad.
• Solicitudes que exceden el gráfico de capacidad
2. Verifique si el rendimiento consumido supera el
rendimiento aprovisionado en cualquiera de las
particiones físicas
• Max RU/segundo consumido de acuerdo al
gráfico de partición
3. Seleccione el momento en que el rendimiento
máximo consumido por partición exceda el
aprovisionado en el gráfico
• Rendimiento máximo consumido por cada
gráfico de partición
42. M A N E J E C U A LQ U I E R T I P O D E D ATO S S I N
R E Q U E R I R D E E S Q U E M A O I N D E X A C I Ó N
El servicio sin esquema de Azure Cosmos DBs indexa automáticamente
todos sus datos, independientemente del modelo de datos, para
entregar consultas rapidísimas.
Ítem Color
Seguro para
microondas
Capacidad
Líquida
CPU Memoria
Almacen
amiento
Taza
geek
Grafito Sí 16ox ??? ??? ???
Taza de
grano de
café
Cuero No 12oz ??? ??? ???
Surface
book
Gris ??? ??? 3.4 GHz
Intel
Skylake
Core i7-
6600U
16GB 1 TB SSD
• Administración automática de índice
• Auto-indexación automática sincrónica
• No se necesitan esquemas ni índices secundarios
• Funciona a través de cada modelo de datos
GEEK
43. I N D E X A D O D E D O C U M E N TO S
{
"locations": [
{
"country": "Germany",
"city": "Berlin"
},
{
"country": "France",
"city": "Paris"
}
],
"headquarter": "Belgium",
"exports": [
{ "city": "Moscow" },
{ "city": "Athens" }
]
}
locations headquarter exports
0
country city
Germany Berlin
1
country city
France Paris
0 1
city
Athens
city
Moscow
Belgium
44. I N D E X A D O D E D O C U M E N TO S
{
"locations": [
{
"country": "Germany",
"city": "Bonn",
"revenue": 200
}
],
"headquarter": "Italy",
"exports": [
{
"city": "Berlin",
"dealers": [
{ "name": "Hans" }
]
},
{ "city": "Athens" }
]
}
locations headquarter exports
0
country city
Germany Bonn
revenue
200
0 1
citycity
Berlin
Italy
dealers
0
name
Hans
45. I N D E X A D O D E D O C U M E N TO S
locations headquarter exports
0
country city
Germany Bonn
revenue
200
0 1
citycity
Berlin
Italy
dealers
0
name
Hans
locations headquarter exports
0
country city
Germany Berlin
1
country city
France Paris
0 1
city
Athens
city
Moscow
Belgium
46. Í N D I C E I N V E R T I D O
locations headquarter exports
0
country city
Germany
Berlin
revenue
200
0 1
city
Athens
city
Berlin
Italy
dealers
0
name
Hans
Bonn
1
country city
France Paris
Belgium
Moscow
47. Í N D I C E I N V E R T I D O
Terms Postings (Doc Ids)
$/locations/0/ 1, 2
locations/0/country 1, 2
locations/0/city 1, 2
0/country/Germany 1, 2
1/country/France 1
0/city/Moscow 1
0/dealers/0 2
… …
48. P O L Í T I C A S D E I N D E X A C I Ó N
POLÍTICAS DE INDEXACIÓN PERSONALIZADA
Aunque todos datos de Azure Cosmos DB están indexados
de manera predeterminada, usted puede especificar una
política de indexación personalizada para sus colecciones. Las
políticas de indexación personalizadas le permiten diseñar y
personalizar la forma de su índice, manteniendo la flexibilidad
del esquema.
• Defina compensaciones entre rendimiento de
almacenamiento, escritura y consultas y consistencia de
consulta
• Incluya o excluya documentos y rutas hacia y desde el
índice
• Configure diversos tipos de índice
{
"automatic": true,
"indexingMode": "Consistent",
"includedPaths": [{
"path": "/*",
"indexes": [{
"kind": "Hash",
"dataType": "String",
"precision": -1
}, {
"kind": "Range",
"dataType": "Number",
"precision": -1
}, {
"kind": "Spatial",
"dataType": "Point"
}]
}],
"excludedPaths": [{
"path": "/nonIndexedContent/*"
}]
}
49. T R A N S F O R M A C I O N E S D E Í N D I C E E N L Í N E A
CAMBIOS AL ÍNDICE SOBRE LA MARCHA
En Azure Cosmos DB usted puede realizar cambios a la
política de indexación de una colección sobre la marcha.
Los cambios pueden afectar la forma del índice,
incluyendo rutas, valores de precisión y su modelo de
consistencia.
Un cambio en la política de indexación requiere una
transformación efectiva del índice antiguo en un nuevo
índice.
51. S Q L Q U E R Y S Y N TA X
SELECT
tickets.id,
tickets.pricePaid
FROM tickets
BASIC QUERY SYNTAX
Las palabras clave SELECT & FROM son los componentes básicos de cada
consulta.
SELECT
t.id,
t.pricePaid
FROM tickets t
52. S Q L Q U E R Y S Y N TA X - W H E R E
FILTRADO
WHERE admite expresiones escalares complejas incluyendo operadores
aritméticos, de comparación y lógicos
SELECT
tickets.id,
tickets.pricePaid
FROM tickets
WHERE
tickets.pricePaid > 500.00 AND
tickets.pricePaid <= 1000.00
53. S Q L Q U E R Y S Y N TA X - P R O Y E C C I Ó N
PROYECCIÓN JSON
Si sus cargas de trabajo requieren un determinado esquema de JSON, Azure
Cosmos DB admite proyección JSON dentro de sus consultas
SELECT {
"id": tickets.id,
"flightNumber": tickets.assignedFlight.flightNumber,
"purchase": {
"cost": tickets.pricePaid
},
"stops": [
tickets.assignedFlight.origin,
tickets.assignedFlight.destination
]
} AS ticket
FROM tickets
54. S Q L Q U E R Y S Y N TA X - P R O Y E C C I Ó N
SELECT VALUE
La palabra clave VALUE puede aplanar aún más la colección de resultados si
es necesario para una determinada carga de trabajo de aplicación
SELECT VALUE {
"id": tickets.id,
"flightNumber": tickets.assignedFlight.flightNumber,
"purchase": {
"cost": tickets.pricePaid
},
"stops": [
tickets.assignedFlight.origin,
tickets.assignedFlight.destination
]
}
FROM tickets
55. J O I N I N T R A - D O C U M E N TO
Azure Cosmos DB admite JOINs intra-documento para matrices no normalizadas
Supongamos que tenemos dos documentos JSON en una colección:
SQL:
56. J O I N I N T R A - D O C U M E N TO
Podemos filtrar en una determinada posición de índice de matriz sin JOIN:
SQL:
57. J O I N I N T R A - D O C U M E N TO
JOIN nos permite combinar matrices o documentos incorporados en múltiples documentos y retornar un conjunto de
resultados aplanado:
SQL:
58. J O I N I N T R A - D O C U M E N TO
Junto con JOIN, también podemos filtrar los productos cruzados sin conocer la posición de índice de
matriz:
SQL:
59. B Ú S Q U E D A D E U B I C A C I Ó N V I N C U L A D A U T I L I Z A N D O
G E O - D ATO S
ESPECIFICACIÓN GEOJSON
Azure Cosmos DB admite la indexación y consulta de datos de punto
geoespacial que son representados mediante la especificación de GeoJSON.
BUSCAR POR DISTANCIA DESDE PUNTO
La función incorporada ST_DISTANCE retorna la distancia entre los dos
expresiones de punto GeoJSON.
BUSCAR SIN POLÍGONO ENLAZADO
La función incorporada ST_WITHIN retorna un valor booleano que indica la
primera expresión de punto GeoJSON está dentro de una expresión de
polígono GeoJSON.
60. B Ú S Q U E D A D E D I S TA N C I A D E S D E E L P U N TO C E N T R A L
ST_DISTANCE
ST_DISTANCE puede ser utilizarse para medir la distancia entre dos puntos.
Normalmente esta función se utiliza para determinar si un punto se encuentra
dentro de un rango especificado (metros) de otro punto.
61. B U S C A R F O R M A D E P O L Í G O N O
ST_WITHIN
ST_WITHIN puede utilizarse para comprobar si un punto se encuentra dentro
de un Polígono. Los Polígonos son usados comúnmente para representar
fronteras como códigos postales, fronteras estatales o formaciones naturales.
Los argumentos de polígono en ST_WITHIN pueden contener solo un único
anillo, es decir, los Polígonos no deben contener agujeros dentro de ellos.
62. A G R E G A D O D E PA R T I C I Ó N C R U Z A D A
LA AGREGACIÓN DE BAJA LATENCIA FUNCIONA A
TRAVÉS DE MÚLTIPLES PARTICIONES
Puede enviar una consulta SQL sencilla y Azure Cosmos DB
maneja el enrutamiento de la consulta entre las particiones
de datos y combina los resultados para retornar los valores
agregados finales.
Ejemplo – Contoso Air
65. PA R A L E L I S M O D E C O N S U LTA D E L C L I E N T E
LAS CONSULTAS DE PARTICIÓN CRUZADA SE PUEDEN PARALELIZAR
PARA UTILIZAR TANTOS SUBPROCESOS COMO SEA POSIBLE
Los procesadores modernos vienen con núcleos tanto físicos como virtuales
(hyper-threading). Para cualquier consulta de partición cruzada, el SDK puede
utilizar subprocesos simultáneos para emitir la consulta a través de las
particiones subyacentes.
De manera predeterminada, el SDK usa un algoritmo de inicio lento para
consultas de partición cruzada, que aumenta la cantidad de subprocesos lo
largo del tiempo. Este incremento es exponencial hasta cualquier limitación
física o de red.
Subproceso de
consulta
DOP = 1
Subproceso primario
Subproceso
simultáneo
Subproceso
simultáneo
Subproceso
simultáneo
DOP = 4
66. B Ú F E R D E R E S P U E S TA D E C L I E N T E
1 3
2
4
5
6
71. C O N T R O L A R L A C O N C U R R E N C I A U T I L I Z A N D O E TA G S
CONCURRENCIA OPTIMISTA
• La SQL API admite el control de simultaneidad optimista (OCC) a través de etiquetas de entidad HTTP, o ETags
• Cada recurso SQL API tiene una propiedad de sistema de ETag, y el valor de ETag se genera en el servidor cada vez que un
documento se actualiza.
• Si el valor de ETag se mantiene constante, eso significa que ningún otro proceso ha actualizado el documento. Si el valor de
ETag muta inesperadamente, eso significa que otro proceso simultáneo ha actualizado el documento.
• Las ETags pueden utilizarse con el encabezado de solicitud HTTP If-Match para permitir que el servidor decida si un
recurso debe ser actualizado:
HTTP 412
72. BENEFICIOS
• Lenguaje de programación familiar
• Transacciones atómicas
• Optimizaciones incorporadas
• Encapsulamiento lógico de negocios
P R O C E D I M I E N TO S
A L M A C E N A D O S
73. T R A N S A C C I O N E S D E M Ú LT I P L E S D O C U M E N TO S
TRANSACCIONES DE BASE DE DATOS
En una base de datos típica, una transacción puede ser
definida como una secuencia de operaciones realizadas
como una sola unidad lógica de trabajo. Cada
transacción proporciona garantías ACID.
En Azure Cosmos DB, JavaScript se hospeda en el mismo
espacio de memoria que la base de datos. Por lo tanto,
las solicitudes realizadas dentro de los procedimientos y
desencadenadores almacenados se ejecutan en el
mismo ámbito de una sesión de base de datos.
Crear nuevo
documento
Colección
de
consulta
Actualizar
documento
existente
Eliminar
documento
existente
Los procedimientos almacenados
utilizan aislamiento de instantánea
para garantizar que todas las lecturas
dentro de la transacción observen una
instantánea consistente de los datos
74. E J E C U C I Ó N V I N C U L A D A
EJECUCIÓN DENTRO DE LOS LÍMITES DE TIEMPO
Todas las operaciones de Azure Cosmos DB se deben completar dentro de la duración del tiempo de expiración de la
solicitud especificada por el servidor. Si una operación no se completa dentro de ese plazo, la transacción se revierte.
VALOR BOOLEANO DE APLICACIÓN AUXILIAR
Todas las funciones bajo el objeto de colección (para crear, leer, reemplazar y eliminar documentos y archivos adjuntos)
retornan un valor Booleano que describe si esa operación se completa:
• If true, se espera que la operación se complete
• If false, el plazo pronto expirará y su función debería finalizar la ejecución tan pronto como sea posible.
75. M O D E LO D E C O N T I N U A C I Ó N D E T R A N S A C C I Ó N
CONTINUACIÓN DE TRANSACCIONES DE LARGA EJECUCIÓN
• Las funciones de JavaScript pueden implementar un modelo
basado en continuación para colocar en masa/reanudar la
ejecución
• El valor de continuación puede ser cualquier valor que usted
elija. Este valor puede ser utilizado por sus aplicaciones para
reanudar una transacción desde un nuevo "punto de inicio"
Crear documentos en masa
Retornar un "puntero" para reanudar más tarde
Observar
Retornar
Valor
Intentar crear
Cada
documento
Hecho
76. R E V E R T I R T R A N S A C C I O N E S
REVERSIÓN DE TRANSACCIONES
Dentro de una función de JavaScript, todas las operaciones son ajustadas automáticamente bajo una única transacción:
• Si la función se completa sin ninguna excepción, todos los cambios de datos son ejecutados
• Si se arroja alguna excepción desde el script, el tiempo de ejecución de JavaScript de Azure Cosmos DB revertirá toda la
transacción.
Crear nuevo
documento
Colección de
consulta
Actualizar
documento
existente
Eliminar
documento
existente
En caso de excepción, deshacer cambios
Ámbito de la transacción
77. F U N C I O N E S D E F I N I D A S P O R U S U A R I O
UDF
• Las Funciones definidas por usuario (UDFs) se usan para extender la gramática de lenguaje de consulta de la
SQL API de Azure Cosmos DB e implementar lógica de negocios personalizada. Las UDFs sólo pueden llamarse
desde dentro de las consultas
• No tienen acceso al objeto de contexto y están destinadas a ser utilizadas como código exclusivo de cómputo
78. D E F I N I C I Ó N D E F U N C I Ó N D E F I N I D A P O R U S U A R I O
79. U S O D E L A F U N C I Ó N D E F I N I D A P O R U S U A R I O E N
C O N S U LTA S
SQL:
80. C H A N G E F E E D
Registros persistentes dentro un contenedor Azure
Cosmos DB. Presentados en el orden en que fueron
modificados
82. C H A N G E F E E D P R O C E S S O R L I B R A R Y
https://www.nuget.org/packages
/Microsoft.Azure.DocumentDB.ChangeFeedProcessor/
83. Nivel de aplicación de
procesamiento de
evento/stream
C H A N G E F E E D C O N PA R T I C I O N E S
Paralelización de consumidor
El Change Feed escucha para detectar cualquier cambio en la
colección de Azure Cosmos DB. A continuación, brinda como
salida la lista ordenada de documentos que fueron
cambiados en el orden en que fueron modificados.
Los cambios se conservan, pueden ser procesados de forma
asíncrona y progresivamente y la salida puede ser
posteriormente distribuida a través de uno o más
consumidores para el procesamiento paralelo. El Change
Feed está disponible para cada rango de clave de partición
dentro de la colección de documentos y, por lo tanto, puede
ser distribuido a través de uno o más consumidores para
procesamiento paralelo.
Consumidor 1
Consumidor 2
Consumidor 3
84. C H A N G E F E E D C O N PA R T I C I O N E S
85. I N T E G R A C I O N C O N A Z U R E F U N C T I O N S
86. I N T E G R A C I O N C O N A Z U R E F U N C T I O N S
88. D I S T R I B U C I O N G LO B A L
Alta disponibilidad
• Conmutación por error automática y manual
• La API de hospedaje múltiple elimina la necesidad de una
redistribución
Baja latencia (en cualquier parte del mundo)
• Los paquetes no pueden moverse más rápido que la
velocidad de la luz
• El envío de un paquete al otro lado del mundo bajo
condiciones de red ideales toma 100s de milisegundos.
• Usted puede engañar a la velocidad de la luz, empleando
localidad de datos
• CDN solucionó esto para contenido estático
• Azure Cosmos DB resuelve esto para contenido
dinámico
89. D I S T R I B U C I Ó N G LO B A L
• Replicación automática y transparente en todo el
mundo
• Cada partición contiene hospeda un conjunto de
réplicas por región
• Los clientes pueden probar la disponibilidad de
aplicaciones de extremo a extremo mediante la
simulación programática de conmutaciones por
error
• Todas las regiones están ocultas detrás de un único
URI global con capacidades de hospedaje múltiple
• Los clientes pueden agregar / eliminar
dinámicamente regiones adicionales en cualquier
momento
Escribe/
Lee
Lee
"airport" : “AMS" "airport" : “MEL"
Oeste de los
EE. UU:
Contenedor
"airport" : "LAX"
Distribución local (a través de partición horizontal)
Distribuciónmundial(departicionesderecursos)
Lee
30K de
transacciones/seg
Escribe
/
Lee
Lee
Lee
Europa
Occidental
30K de
transacciones/seg
Partition-key = "airport"
90. R E P L I C A C I Ó N D E D ATO S E N TO D O E L M U N D O
91. R E P L I C A C I Ó N D E D ATO S E N TO D O E L M U N D O
92. R E P L I C A C I Ó N D E D ATO S E N TO D O E L M U N D O
95. S O P O R T E M U LT I M A S T E R
aka.ms/multimasterdocs
Region A
Region B
Region C
Azure
Traffic
Manager
Master
(read/write)
Master
(read/write)
Master
(read/write)
Master
(read/write)
Replica
(read)
Replica
(read)
96. S O P O R T E M U LT I M A S T E R
Reads
(1KB)
P50
P99
<2ms
<10ms
Indexed writes
(1KB)
<6ms
<10ms
97. R E S O L U C I O N D E C O N F L I C TO S
Last Writer Wins
• Por defecto
• Los conflictos se resuelven por el valor de una propiedad
numérica definida por el usuario o el timestamp (_ts)
• Disponible en todos los modelos de datos.
98. R E S O L U C I O N D E C O N F L I C TO S
User Defined Procedure
• Ejecuta un Stored Procedure ante el conflicto
• Permite acceder otros datos en el contenedor
99. R E S O L U C I O N D E C O N F L I C TO S
Manual o Asincrónico
• Se configura como Custom sin Stored Procedure
100. R E S O L U C I O N D E C O N F L I C TO S
Manual o Asincrónico
• Puede resolverse programáticamente o a través de
herramientas
101. Robusta Obsolescencia limitada Sesión Prefijo consistente Eventual
C I N C O M O D E LO S D E C O N S I S T E N C I A B I E N D E F I N I D O S
ELEGIR EL MEJOR MODELO DE CONSISTENCIA PARA SU APLICACIÓN
Cinco modelos de consistencia bien definidos
Reemplazar por solicitud
Proporciona control sobre las compensaciones de
rendimiento-consistencia, respaldado por amplios SLAs.
Un modelo de programación intuitiva que ofrece baja latencia
y alta disponibilidad para su aplicación a escala del planeta.
COMPENSACIONES CLARAS
• Latencia
• Disponibilidad
• Rendimiento
102. D E S M I T I F I C A R M O D E LO S D E C O N S I S T E N C I A
Consistencia robusta
Garantiza instrucción atómica. Una vez que la operación se completa, será
visible para todos los lectores de una manera muy consistente a través de las
réplicas.
Consistencia eventual
Las réplicas son eventualmente consistentes con cualquier operación. Hay un
potencial de lecturas fuera de orden. Menor costo y mayor rendimiento para
lecturas de todos los niveles de consistencia.
Robusta
Eventual
103. Obsolescencia limitada
Sesión
Prefijo consistente
D E S M I T I F I C A R M O D E LO S D E C O N S I S T E N C I A
Obsolescencia limitada
Lee el desfase que está por detrás de las escrituras en la mayoría de los
prefijos k o intervalos t. Propiedades similares para una consistencia robusta
excepto dentro de la ventana de obsolescencia.
Sesión
Dentro de una sesión, las lecturas y escrituras son monotónicas. Esto se
conoce como "lea sus escrituras" y "escritura sigue a lecturas". Consistencia
previsible para una sesión. Alto rendimiento de lectura y baja latencia fuera de
la sesión.
Prefijo consistente
Las lecturas nunca verán escrituras fuera de orden.
104. Algunos datos producidos por aplicaciones sólo
son útiles durante un periodo limitado de tiempo:
• Datos de eventos generados por máquina
• Datos de registro de aplicación
• Información de sesión de usuario
Es importante que el sistema de base de datos
sistemáticamente purgue estos datos a intervalos
preconfigurados.
D ATO S D E T I E M P O D E
V I D A C O R TO
105. P E R Í O D O D E V I D A ( T T L )
PURGAR LOS DATOS AUTOMÁTICAMENTE
Azure Cosmos DB le permite configurar el intervalo de
tiempo en el cual radiquen los documentos en la base de
datos antes de que se purguen automáticamente. El "Período
de vida" (TTL) de un documento se mide en segundos desde
la última modificación y se puede configurar a nivel de
colección con reemplazo bajo un régimen por documento.
.
106. R E G I S T R O S Q U E E X P I R A N U T I L I Z A N D O P E R Í O D O D E
V I D A
COMPORTAMIENTO TTL
La característica TTL es controlada por las propiedades TTL en dos
niveles: el nivel de colección y el nivel de documento.
• DefaultTTL para la colección
• Si faltan (o están configurados como nulos), los documentos
no se eliminan automáticamente.
• Si están presentes y el valor es "-1" = infinito, los documentos
no expiran predeterminadamente
• Si están presentes, y el valor es un número ("n"), los
documentos expiran "n" segundos después de la última
modificación
• TTL para los documentos:
• La propiedad es aplicable sólo s/i DefaultTTL está presente en
la colección primaria.
• Reemplaza el valor DefaultTTL de la colección primaria.
Los valores se configuran en segundos y se tratan como un delta de _ts
de cuando se modificó el documento por última vez.
Documento
Documento TTL
TTL predeterminado
107. QUÉ ES REGISTRADO POR AZURE DIAGNOSTIC
LOGS
Todas las solicitudes de backend autenticadas a lo largo
de todos los protocolos y APIs
• Incluye solicitudes con error
Operaciones de base de datos
• Incluye operaciones CRUD sobre todos los recursos
Operaciones de clave de cuenta
Solicitudes no autenticadas
• Solicitudes que generan una respuesta 401
R E G I S T R O D E A C T I V I D A D
108.
109. P R O B A R LO C A L M E N T E
Azure Cosmos DB Emulator
aka.ms/cosmosdb-emulator
110. Azure Cosmos DB gratis
azure.microsoft.com/try/cosmosdb/
P R O B A R E N L A N U B E