SlideShare uma empresa Scribd logo
1 de 105
Microsoft Data Platform
Avanet
Jose Redondo
Microsoft SQL Server MVP | CEO EntornoDB | DPA SolidQ
redondoj@gmail.com | @redondoj | redondoj.wordpress.com
Introducción a Azure DocumentDB
Expositor
• Data Architect
• BI Expert, Data Analysis & Big Data
• Dev Client, Web & Database .NET - Java
• Dev – DBA Microsoft, SyBase, IBM & Oracle
• Speaker Latam “Microsoft, Avanet, FirstCloud,
ShareCol” & USA “ITProCamp”
• SQL Server MCP – MSTS – MTA
• Contributing Technical Reviewer Packt Publishing
Microsoft SQL Server MVP | CEO EntornoDB | DPA SolidQ
Introducción a
Azure DocumentDB
Agenda
• Introducción
• Configuración
• Creando Bases de Datos, Documentos y Colecciones
• Trabajando con Documentos
• Desarrollo con .NET
• Procedimientos Almacenados, Triggers y Funciones
• Demos
• Conclusiones
Introducción
Introducción
• Que es Azure DocumentDB?
• NoSQL… ? Porque… ?
• NoSQL… ? Porque no… ?
• Microsoft Databases en Azure
• Características y Beneficios de DocumentDB
• Modelo de Recursos
• Modelo de Recursos DocumentDB
• Resumen
Que es Azure DocumentDB?
• Orientado a Documentos
• Almacén de datos NoSQL libre de Schema
• Base de datos completamente administrable
como un servicio
• Disponible para suscriptores de Microsoft Azure
NoSQL… ? Porque… ?
• Simplicidad de diseño
• Habilidad de escalar horizontalmente
• Ejecución de aplicaciones de entorno web en
tiempo real y Big Data
NoSQL… ? Porque no… ?
• Consistencia de compromiso con la
tecnología actual
• Uso de lenguajes de consulta de bajo
nivel
• Algunas interfaces estandarizadas
• Numerosas inversiones de SQL en la
actualidad
Microsoft Databases en Azure
• Relacional
• SQL Database (PaaS – Platform as a Services)
• SQL Server (IaaS – Infrastructure as a Service)
• NoSQL
• Azure Tables – Almacén de valores claves
• Azure DocumentDB – Base de datos de documentos
Características y Beneficios de DocumentDB
• Consultas Ad hoc con sintaxis
SQL
• Ejecución de JavaScript dentro de
la base de datos
• Niveles de consistencia regulables
• Completamente administrable
• Almacenamiento y rendimiento
elásticamente escalable
• Abierto al Diseño de Aplicaciones
de bases de datos
Características y Beneficios de DocumentDB
• Base de datos documental
NoSQL, Poca aplicación en
Schema
• Totalmente gestionable, con
capacidad aprovisionada
• Las entidades almacenadas son
documentos JSON
• Consistencia ajustable
• Diseñado para su escalamiento
en Petabytes
Modelo de Recursos
Database Account
Database
Collection
Document
Attachment
Stored Procedure
Trigger
User-defined functions
User
Permission
Media
Modelo de Recursos DocumentDB
Modelo de Recursos DocumentDB
• Database Account
• Una o más unidades de capacidad
• Único DNS
• Database
• Contenedor lógico de usuarios y colecciones
• Particiones a través colecciones
Modelo de Recursos DocumentDB
• Collection
• Contenedor de documentos JSON
• Alcance de las transacciones y consultas
• Unidad más pequeña de la Escalación
• Document
• Objetos CRUD (Acrónimo: Create, Read,
Update y Delete) habilitados en una
colección
• No hay forzamiento de esquema o tipos
de datos especializados
Modelo de Recursos DocumentDB
• Users
• Namespace lógico para alcances
de permisos
• Pueden representar Personas o
Funciones
• Permissions
• Token de autorización asociada a
un usuario
• Controla el acceso a recursos
específicos
Modelo de Recursos DocumentDB
• Stored Procedures, Triggers y User-
Defined-Functions
• Lógica en la aplicación para ejecutarse
directamente en la transacción de la
base de datos
• Escrito completamente en JavaScript
• Attachments y Media
• Permite el almacenamiento de blobs /
medios binarios
• Puede ser en DocumentDB o en una
tienda de medios remoto (Adjunto)
Recursos del Sistema vs.
Recursos Definidos por el Usuario
Propiedad
Configurables por el usuario o
generado por el sistema?
Proposito
_rid Generado por el Sistema
Generados por el sistema, identificador único y
jerárquico de los recursos
_etag Generado por el Sistema
etag de los recursos necesarios para el control
de simultaneidad optimista
_ts Generado por el Sistema Última actualización Timestamp del recurso
_self Generado por el Sistema Direccionamiento único URI del recurso
id Configurado por el Usuario
Nombre único definido por el usuario del
recurso
Resumen
• Libre de Schema
• JSON Document
• Estándar del mercado para pasar datos entre un servidor y una aplicación
web
• Reemplazo para XML
• Jerárquico
• Abreviado
• Tipos de datos simples
Resumen
• Collections
• Unidad de escala, Transacciones y Consultas
• DocumentDB escalable mediante la adición de colecciones adicionales
• Respaldado por almacenamiento SSD flexible
• Indexación automática
• Por defecto, los documentos están indexados como cuando son agregados a la
colección
• Habilitado para la optimización de escritura siendo libre de bloqueo así como técnicas
de mantenimiento de indexación de registros estructurados
• Énfasis en las rápidas escrituras mientras servía consultas consistentes
• Políticas pueden ser configuradas a nivel de colección
Resumen
• Desarrollo contra DocumentDB - Diferentes APIs
• Python
• REST API
• Node.js
• SQL
• .NET/LINQ
• JavaScript
Configuración
Configuración
• Crear una Cuenta
• Costo actuales
• Disponibilidad Geográfica
• Qué es un CU?
• Límites y aplicaciones de cuotas para DocumentDB
• Configuración de las políticas de indexación de Collection
Crear una Cuenta
• Actualmente solo disponible en el nuevo portal en versión Preview
http://portal.azure.com
Crear una Cuenta
• Actualmente solo disponible en el nuevo portal en versión Preview
http://portal.azure.com
Crear una Cuenta
Crear una Cuenta
Crear una Cuenta
Crear una Cuenta
Crear una Cuenta
Crear una Cuenta
Costo actuales
• Solamente en edición Estándar
Disponibilidad Geográfica
Qué es un CU?
• CU = Unidad de Capacidad
• Unidad de Escalabilidad para DocumentDB
• 1 CU de ejecución por segundo
• 2,000 lecturas de documentos simples
• 500 inserciones/actualizaciones/eliminaciones de
documentos simples
• 1,000 consultas de documentos simples
• 20 procedimientos almacenados (Asumiendo la
inserción / ejecución de un procedimiento
almacenado de 50 documentos)
• Si llegamos a necesitar escalar nuestro escenario
de ejecución, añadimos otra CU!
Límites y aplicaciones de cuotas para
DocumentDB
ENTIDAD (OFERTA ESTÁNDAR PARA
LA VERSIÓN PRELIMINAR)
Cuentas de la base de datos 5
Número de bases de datos por cuenta de base de datos 100
Número de usuarios por cuenta de base de datos en todas las bases de
datos
500.000
Número de permisos por cuenta de base de datos en todas las bases de
datos
2.000.000
Almacenamiento anexo por cuenta de base de datos 2 GB
Número máximo de unidades de capacidad por cuenta de base de datos 50
Número de colecciones por unidad de capacidad 3
Límites y aplicaciones de cuotas para
DocumentDB
ENTIDAD (OFERTA ESTÁNDAR PARA
LA VERSIÓN PRELIMINAR)
Almacenamiento asignado mínimo por colección con 1 documento
como mínimo
3,3 GB
Rendimiento asignado mínimo por colección con 1 documento como
mínimo
667 unidades de solicitud (RU)
Elasticidad de una colección 0-10 GB
Unidades de solicitud/s máximos por colección 2000
Número de procedimientos almacenados, desencadenadores y UDF
por colección
25 cada uno
Tiempo de ejecución máximo para el procedimiento almacenado y
desencadenador
5 segundos
Almacenamiento de documentos/unidad de capacidad aprovisionados 10 GB
Límites y aplicaciones de cuotas para
DocumentDB
ENTIDAD (OFERTA ESTÁNDAR PARA
LA VERSIÓN PRELIMINAR)
Unidades de solicitud/s/unidad de capacidad aprovisionadas 2000
Almacenamiento de documentos máximo por base de datos (5 unidades
de capacidad)
500 GB
Longitud máxima de la propiedad de identificador 255 caracteres
Número predeterminado de elementos por página 100
Elementos máximos por página 1000
Tamaño de solicitud máximo del documento y el adjunto 512KB
Tamaño de solicitud máximo del procedimiento almacenado,
desencadenador y UDF
256KB
Tamaño máximo de respuesta 1MB
Límites y aplicaciones de cuotas para
DocumentDB
ENTIDAD (OFERTA ESTÁNDAR PARA
LA VERSIÓN PRELIMINAR)
Número máximo de rutas exclusivas por
colección
100
String
Todas las cadenas se deben ajustar a la codificación UTF-
8. Dado que UTF-8 es una codificación de ancho variable,
los tamaños de las cadenas se determinan mediante los
bytes UTF-8
Longitud máxima de propiedad o valor Sin límite práctico
Número máximo de UDF por consulta 1
Número máximo de JOIN por consulta 2
Número máximo de cláusulas AND por
consulta
5
Número máximo de cláusulas OR por consulta 5
Configuración de las políticas de indexación
de Collection
• Indexación automática
• Puedes activarlo o desactivarlo
• Puedes escoger el incluir o excluir documentos específicos (x-ms-indexingdirective)
Configuración de las políticas de indexación
de Collection
• Incluir o excluir rutas especificas dentro de los documentos
• Indexación Sincrónica vs. Indexación Asincrónica
• Indexación Sincrónica es predeterminada en el sistema
• Indexación divagada ideal para escenarios de ejecución de inserciones masivas en
colecciones de densa lectura
Creando Bases de Datos,
Documentos y Colecciones
Creando Bases de Datos, Documentos y
Colecciones
• Estableciendo la conexión
• Modelando datos RDBMS
• Modelando datos en DocumentDB
• Creando una Base de Datos
• Creando un Documento
Estableciendo la conexión
• Cuenta Endpoint de DocumentDB
• Clave de acceso Primaria y Secundaria
• Proporcionar acceso administrativo a la cuenta
• Puede recuperar las claves con acceso limitado según permisos
Recomendación (Buenas Practicas): No almacenar tokens de acceso
a la aplicación en el código fuente (o en las demos)
Estableciendo la conexión
Modelando datos RDBMS
Modelando datos RDBMS
Modelando datos en DocumentDBLaLecturaesunaoperación
LaEscrituraesunaoperación
Ningúnassembliesesaplicable
Creando una Base de Datos
Creando un Documento
Requierelapropiedad
DocumentsLinkdelCollection
dondesealmacenarael
documento
Trabajando con Documentos
Trabajando con Documentos
• Descargando un Documento
• Eliminando un Documento
• Operaciones
• Escenarios
• Performance - Targets de Escalabilidad
• Escenarios integrados
• Errores
Descargando un Documento
• Las actualizaciones se realizan a través del reemplazo de un
documento
Eliminando un Documento
Operaciones
• Para cada recurso:
• Create
• Replace
• Delete
• Read
• Query
• Read es una operación GET en un ID de recurso especificado, devolviendo un
único recurso.
• Query es una operación POST sobre una colección con un Requests en el
body conteniendo el texto DocumentDB SQL, retornando una posible
colección empty de recursos.
• Query puede ser filtrado solamente en propiedades indexadas
Escenarios
DocumentDB SQL
• SELECT <select-list> FROM <from-specification> WHERE <filter-condition>
• Similar al SQL normal
• Sólo apoyado con Self-Join
• Capacidad para llegar al árbol de JSON:
• Valores accesible para condiciones de filtrado
• Lista de selección de Shape
• Funciones definidas por el usuario
• Soporte de LINQ-to-SQL para .NET
Escenarios
LINQ
Escenarios
LINQ Lambda
Performance - Targets de Escalabilidad
• Unidad de Capacidad
• Cantidad especificada de capacidad de almacenamiento y rendimiento
operacional
• Cuota del Collection por cada unidad de capacidad
• Unidad de aprovisionamiento para la escala de rendimiento y almacenamiento
• Configurado a nivel de cuenta de base de datos
• Compartible entre todas las bases de datos y Collections en la cuenta de base de
datos
• Almacenamiento es SSD respaldado
• Microsoft ha estado usando las bases de datos con terabytes de
almacenamiento (Diseñado para Petabytes)
Performance - Targets de Escalabilidad
Hipótesis:
• Documento de 1 KB con 10 propiedades
• Nivel de consistencia de sesión
• Indexación automática
Operación de Base de Datos
Operaciones / Segundos
(Unidades de Solicitudes)
Read por documento 2000
Insert, Replace, Update por documento 500
Consulta simple (Retornando un documento) 1000
Procedimiento Almacenado con 50 Inserts 20
Solicitudes son neutralizadas si el consumo excede al objetivo que posee la
unidad de capacidad total
Escenarios integrados
• Hay se encuentran las relaciones entre
entidades.
• Hay se albergan algunas relaciones entre
entidades.
• No hay datos integrados que cambia con poca
frecuencia.
• Hay datos integrados que no va a crecer sin
límite.
• Hay datos integrados que son esenciales para
datos en un documento.
Ejemplos de cuándo no integrar
• Como un blog publicar comentarios o pedidos de
los clientes para la empresa
Errores
Importante: Reloj local no está sincronizado con Azure
Desarrollo con .NET
Desarrollo con .NET
• RESTful API
• Download
• Class: DocumentClient
• Class: Resource
• Class: Database
• Class: DocumentCollection
Desarrollo con .NET
• Data Model
• Class: Document
• Class: ResourceResponse<T>
• Read
• Delete
• Replace
Desarrollo con .NET
• Read From a Feed
• DocumentDB Queries
• SQL Query
• LINQ Query
• LINQ Lambda With Paging
RESTful API
• Interfaz base en DocumentDB
• Utilizado por todas las bibliotecas
cliente
• Operaciones estándar con todos
los recursos DocumentDB:
• CREATE, DELETE, PUT, GET, POST
• Devuelve la URL del recurso
permanente en su creación
• Autenticación HMAC utilizando la
clave de gestión o de recursos
• Headers de petición DocumentDB
Download
• NET API alojados en NuGet
• Paquete de instalación
Microsoft.Azure.Documents.Client
(Preview)
• Instala los paquetes
DocumentDB y JSON.NET
Class: DocumentClient
• Construido con Endpoint URL y la key de gestión para la
cuenta de la base de datos
• Proporciona métodos de Async/Await para las
operaciones CRUD (Create, Read, Update & Delete)
sobre recursos DocumentDB
• Gestiona la conexión a DocumentDB
// Create DocumentClient
String documentDbAddress =
"https://{account}.documents.azure.com";
String authorizationKey = "key==";
Uri documentDbUri = new Uri(documentDbAddress);
DocumentClient documentClient =
new DocumentClient(documentDbUri, authorizationKey);
Class: Resource
• Clase base para todas las clases
de recursos de DocumentDB
• Expone lo siguiente:
• ETag - Utilizada para la
concurrencia optimista
• SelfLink – Ruta URL para recursos
• ResourceID – ID interno (Base64
encoded) para recursos
• ID – ID de los recursos,
proporcionada o generada
Class: Database
• Derivado desde los recursos
• Agrega propiedades exponiendo Collections y Users
// Create database
Database database = new Database { Id = databaseId };
ResourceResponse<Database> response = await
documentClient.CreateDatabaseAsync(database);
database = response;
String selfLink = database.SelfLink;
String collections = database.CollectionsLink;
String users = database.UsersLink;
Class: DocumentCollection
• Derivado desde los recursos
• Agrega propiedades exponiendo DocumentsLink,
StoredProceduresLink, TriggersLink,
UserDefinedFunctionsLink
// Create document collection
DocumentCollection documentCollection =
new DocumentCollection { Id = "SomeId" };
ResourceResponse<DocumentCollection> response =
await
documentClient.CreateDocumentCollectionAsync(
database.SelfLink, documentCollection);
documentCollection = response;
Data Model
• Utiliza librería JSON.NET para la
serialización
• Clase simple
• Ninguna clase especial base
• Todas las propiedades públicas se
serializan en JSON
• Evidente asignación de .NET a
JSON
• IList, etc. -> Array
• Int32, etc. -> Integer
• Float, etc. -> Float
• DateTime -> String
• Byte[] -> String
Class: Document
• Derivado desde los recursos
• Agrega la propiedad a exponer
AttachmentsLink
// Insert document
ResourceResponse<Document> response =
await
documentClient.CreateDocumentAsync(
documentCollection.SelfLink,
someDocumentEntity);
Document document = response;
Class: ResourceResponse<T>
• Encapsula la respuesta de una
operación de recurso
DocumentDB
• Provee información de cuotas y
uso dependiendo de los recursos
• Contiene los Headers de respuesta
incluyendo HTTP StatusCode
• Expone implícitamente el recurso
escrito desde el response
Read
• Una operación de lectura
devuelve un solo documento
ResourceResponse<Document>
response =
await
documentClient.ReadDocumentAs
ync(documentLink);
Album album =
JsonConvert.DeserializeObject<Alb
um>(response.Resource.ToString());
Delete
Album album = new Album() {
AlbumName = "Let It Bleed",
BandName = "Rolling Stones",
ReleaseYear = "1969“
};
Document document = await
documentClient.CreateDocumentAsync(
documentCollection.SelfLink, album);
ResourceResponse<Document>
secondResponse = await
documentClient.DeleteDocumentAsync(
document.SelfLink);
Replace
dynamic readResponse = await
documentClient.ReadDocumentAsync(documentLink);
RequestOptions requestOptions = new RequestOptions() {
AccessCondition = new AccessCondition() {
Type = AccessConditionType.IfMatch,
Condition = readResponse.Resource.ETag
}
};
Album album = (Album)readResponse.Resource;
album.ReleaseYear = "1990";
ResourceResponse<Document> replaceResponse = await
documentClient.ReplaceDocumentAsync(
documentLink, album, requestOptions);
Read From a Feed
• La API de .NET puede devolver todos los recursos en una colección como paginada "Feed."
String continuation = String.Empty;
Do {
FeedOptions feedOptions = new FeedOptions {
MaxItemCount = 10,
RequestContinuation = continuation
};
FeedResponse<dynamic> response = await
documentClient.ReadDocumentFeedAsync(
documentCollectionLink, feedOptions);
continuation = response.ResponseContinuation;
} while (!String.IsNullOrEmpty(continuation));
DocumentDB Queries
• DocumentDB soporta consultas en todos
los niveles de recursos, incluyendo:
• Database, DocumentCollection, and
Document
• .NET API soporta los siguientes tipos de
consultas:
• SQL
• LINQ SQL
• LINQ Lambda
La clase DocumentQueryable expone
métodos de extensión helper para crear
varios tipos de consulta
SQL Query
foreach (var album in
documentClient.CreateDocumentQuery
<Album>(
documentCollection.SelfLink,
"SELECT * FROM albums a WHERE
a.bandName = 'Radiohead'")) {
Console.WriteLine("Album name: {0}",
album.AlbumName);
}
Tenga en cuenta que "albums" es el
nombre del DocumentDB Collection
LINQ Query
IQueryable<Album> albums =
from a in
documentClient.CreateDocumentQuery
<Album>(
documentCollection.SelfLink)
where a.BandName == "Radiohead"
select a;
foreach (var album in albums) {
Console.WriteLine("Album name: {0}",
album.AlbumName)
}
LINQ Lambda With Paging
FeedOptions feedOptions = new FeedOptions() {
MaxItemCount = 10
};
var query =
documentClient.CreateDocumentQuery<Album>(
documentCollection.SelfLink, feedOptions)
.Where(a => a.BandName == "Radiohead")
.AsDocumentQuery();
do {
foreach (Album album in await query.ExecuteNextAsync())
{
Console.WriteLine("Album name: {0}",
album.AlbumName);
}
} while (query.HasMoreResults);
Procedimientos Almacenados,
Triggers y Funciones
Procedimientos Almacenados, Triggers y
Funciones
• Creando un Procedimiento Almacenado
• Registrando un Procedimiento Almacenado
• Ejecutando un Procedimiento Almacenado
• Consistencia
• Niveles de Consistencia
• Indexando
• JavaScript como un día
moderno de T-SQL
• Lenguaje de programación de
alto nivel
• Transacciones atómicas
• JavaScript permite optimización
cuando se trata de documentos
JSON
• Procesamiento por lotes
• Compilación previa
• Secuencia
• Lógica de negocio encapsulada
• 5 segundo de timout
Creando un Procedimiento Almacenado
Registrando un Procedimiento Almacenado
Ejecutando un Procedimiento Almacenado
Consistencia
Trade-offentrelatencia,
disponibilidadyconsistencia
Niveles de Consistencia
• Strong
• Write es visible sólo después de
que se ha comprometido de
forma duradera por la mayoría de
las réplicas de quórum
• Menor nivel de rendimiento de
Read/Write
• Bounded Staleness
• Garantiza el fin de la propagación
de Writes
• Reads podría retrasarse detrás o
más allá de las Writes
Niveles de Consistencia
• Session
• Tu puedes ver tus Writes
• Latencia de Writes bajo
• Eventual
• NoSQL clásico
• Consistencia débil
• Rendimiento rápido, Baja latencia
Indexando
• Especificado en el nivel del
Collection
• Soporta indexación lenta
• Todo es indexado por defecto
• Soporta dos modos:
• Automatic Indexing:
• Esto es tunable para documentos
individuales y rutas dentro de un
documento, aplicando inclusión o
exclusión de una ruta establecida
• Los Índices de precisión pueden
especificarse para cadenas y
números
Indexando
• Indexing Mode:
• Consistent - Por índices
predeterminados
sincrónicamente actualización
en Insertn Replace o Delete
• Lazy - Actualización del índice
asíncrono (Dirigido a los
escenarios de Bulk Ingestion)
• Opcional In o Out en la creación
de los objetos Collection
Indexando
• Alcance - Es apropiado para los
números que necesitan filtrarse
con >=, >, <, <=
• Hash - Excelente para los
cadenas
Demos
http://www.documentdb.com/sql/demo
Conclusiones
Conclusiones
• Base de datos documental
totalmente gestionado para
almacenar entidades JSON
• Alta escalabilidad y performance
• Gran variedad de bibliotecas de
desarrollo cliente
• .Net, Node.js, JavaScript, Python
• Soportado sólo en el nuevo portal
de Azure
Preguntas & Respuestas
Recursos
www.documentDB.com/sql/demo
https://social.msdn.microsoft.com/forums/azure/en-US/home?forum=AzureDocumentDB
http://feedback.azure.com/forums/263030-documentdb
https://github.com/mingaliu/DocumentDBStudio
Documentación: http://documentdb.com
Azure Portal: http://portal.azure.com
Channel 9: http://channel9.msdn.com/Shows/Data-Exposed/Introduction-to-Azure-DocumentDB
Jose Redondo
Microsoft SQL Server MVP | CEO EntornoDB | DPA SolidQ
redondoj@gmail.com | @redondoj | redondoj.wordpress.com
Introducción a Azure DocumentDB

Mais conteúdo relacionado

Mais procurados

Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014Enrique Puig
 
SQL Server 2014 y La Plataforma de Datos
SQL Server 2014 y La Plataforma de DatosSQL Server 2014 y La Plataforma de Datos
SQL Server 2014 y La Plataforma de DatosJoseph Lopez
 
SQL Server Analysis Services
SQL Server Analysis ServicesSQL Server Analysis Services
SQL Server Analysis Servicesjorge Muchaypiña
 
Introducción a Power BI bajo escenarios empresariales híbridos con SQL Server...
Introducción a Power BI bajo escenarios empresariales híbridos con SQL Server...Introducción a Power BI bajo escenarios empresariales híbridos con SQL Server...
Introducción a Power BI bajo escenarios empresariales híbridos con SQL Server...Joseph Lopez
 
Global azure bootcamp SQL Azure End to End
Global azure bootcamp   SQL Azure End to End Global azure bootcamp   SQL Azure End to End
Global azure bootcamp SQL Azure End to End jorge Muchaypiña
 
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...SpanishPASSVC
 
Sql azure data warehouse gab jorge muchaypina
Sql azure data warehouse gab   jorge muchaypinaSql azure data warehouse gab   jorge muchaypina
Sql azure data warehouse gab jorge muchaypinaMUG Perú
 
Azure sql database escalabilidad
Azure sql database escalabilidadAzure sql database escalabilidad
Azure sql database escalabilidadEduardo Castro
 
Tablas temporales en SQL Server 2016 y Azure SQL Database v12
Tablas temporales en SQL Server 2016 y Azure SQL Database v12Tablas temporales en SQL Server 2016 y Azure SQL Database v12
Tablas temporales en SQL Server 2016 y Azure SQL Database v12Joseph Lopez
 
Power BI. Dando el salto a la nube con los pies en el suelo
Power BI. Dando el salto a la nube con los pies en el sueloPower BI. Dando el salto a la nube con los pies en el suelo
Power BI. Dando el salto a la nube con los pies en el sueloSolidQ
 
Sql server 2014 y la plataforma de datos
Sql server 2014 y la plataforma de datosSql server 2014 y la plataforma de datos
Sql server 2014 y la plataforma de datosSpanishPASSVC
 
Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016Joseph Lopez
 
Performance Tuning en Azure SQL Database
Performance Tuning en Azure SQL DatabasePerformance Tuning en Azure SQL Database
Performance Tuning en Azure SQL DatabaseJoseph Lopez
 
SQL Server 2014 Nuevas Capacidades
SQL Server 2014  Nuevas CapacidadesSQL Server 2014  Nuevas Capacidades
SQL Server 2014 Nuevas CapacidadesEduardo Castro
 
Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...
Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...
Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...Joseph Lopez
 
Configurar su entorno SharePoint para Business Intelligence
Configurar su entorno SharePoint para Business IntelligenceConfigurar su entorno SharePoint para Business Intelligence
Configurar su entorno SharePoint para Business IntelligenceJoseph Lopez
 
Escalabilidad Analysis Services 2012
Escalabilidad Analysis Services 2012Escalabilidad Analysis Services 2012
Escalabilidad Analysis Services 2012Eduardo Castro
 
Data Amp 2017 - Whats New in SQL Server 2017
Data Amp 2017 - Whats New in SQL Server 2017Data Amp 2017 - Whats New in SQL Server 2017
Data Amp 2017 - Whats New in SQL Server 2017dbLearner
 
Share point 2013, sql server 2012 y las bases de datos
Share point 2013, sql server 2012 y las bases de datosShare point 2013, sql server 2012 y las bases de datos
Share point 2013, sql server 2012 y las bases de datosDaniel Seara
 

Mais procurados (20)

Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
Novedades en el manejo de Grandes volúmenes de datos con SQL Server 2014
 
SQL Server 2014 y La Plataforma de Datos
SQL Server 2014 y La Plataforma de DatosSQL Server 2014 y La Plataforma de Datos
SQL Server 2014 y La Plataforma de Datos
 
SQL Server Analysis Services
SQL Server Analysis ServicesSQL Server Analysis Services
SQL Server Analysis Services
 
Introducción a Power BI bajo escenarios empresariales híbridos con SQL Server...
Introducción a Power BI bajo escenarios empresariales híbridos con SQL Server...Introducción a Power BI bajo escenarios empresariales híbridos con SQL Server...
Introducción a Power BI bajo escenarios empresariales híbridos con SQL Server...
 
Global azure bootcamp SQL Azure End to End
Global azure bootcamp   SQL Azure End to End Global azure bootcamp   SQL Azure End to End
Global azure bootcamp SQL Azure End to End
 
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
 
Sql azure data warehouse gab jorge muchaypina
Sql azure data warehouse gab   jorge muchaypinaSql azure data warehouse gab   jorge muchaypina
Sql azure data warehouse gab jorge muchaypina
 
SQL Azure Datawarehouse
SQL Azure DatawarehouseSQL Azure Datawarehouse
SQL Azure Datawarehouse
 
Azure sql database escalabilidad
Azure sql database escalabilidadAzure sql database escalabilidad
Azure sql database escalabilidad
 
Tablas temporales en SQL Server 2016 y Azure SQL Database v12
Tablas temporales en SQL Server 2016 y Azure SQL Database v12Tablas temporales en SQL Server 2016 y Azure SQL Database v12
Tablas temporales en SQL Server 2016 y Azure SQL Database v12
 
Power BI. Dando el salto a la nube con los pies en el suelo
Power BI. Dando el salto a la nube con los pies en el sueloPower BI. Dando el salto a la nube con los pies en el suelo
Power BI. Dando el salto a la nube con los pies en el suelo
 
Sql server 2014 y la plataforma de datos
Sql server 2014 y la plataforma de datosSql server 2014 y la plataforma de datos
Sql server 2014 y la plataforma de datos
 
Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016
 
Performance Tuning en Azure SQL Database
Performance Tuning en Azure SQL DatabasePerformance Tuning en Azure SQL Database
Performance Tuning en Azure SQL Database
 
SQL Server 2014 Nuevas Capacidades
SQL Server 2014  Nuevas CapacidadesSQL Server 2014  Nuevas Capacidades
SQL Server 2014 Nuevas Capacidades
 
Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...
Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...
Conociendo Dynamic Data Masking en entornos de producción con SQL Server 2016...
 
Configurar su entorno SharePoint para Business Intelligence
Configurar su entorno SharePoint para Business IntelligenceConfigurar su entorno SharePoint para Business Intelligence
Configurar su entorno SharePoint para Business Intelligence
 
Escalabilidad Analysis Services 2012
Escalabilidad Analysis Services 2012Escalabilidad Analysis Services 2012
Escalabilidad Analysis Services 2012
 
Data Amp 2017 - Whats New in SQL Server 2017
Data Amp 2017 - Whats New in SQL Server 2017Data Amp 2017 - Whats New in SQL Server 2017
Data Amp 2017 - Whats New in SQL Server 2017
 
Share point 2013, sql server 2012 y las bases de datos
Share point 2013, sql server 2012 y las bases de datosShare point 2013, sql server 2012 y las bases de datos
Share point 2013, sql server 2012 y las bases de datos
 

Destaque

Inteligencia de Negocio - Que Planeta es eso?
Inteligencia de Negocio - Que Planeta es eso?Inteligencia de Negocio - Que Planeta es eso?
Inteligencia de Negocio - Que Planeta es eso?Joseph Lopez
 
Big Data - Desarrollando soluciones efectivas
Big Data - Desarrollando soluciones efectivasBig Data - Desarrollando soluciones efectivas
Big Data - Desarrollando soluciones efectivasJoseph Lopez
 
Generando Toma de Decisiones Inteligente con Microsoft Big Data
Generando Toma de Decisiones Inteligente con Microsoft Big DataGenerando Toma de Decisiones Inteligente con Microsoft Big Data
Generando Toma de Decisiones Inteligente con Microsoft Big DataJoseph Lopez
 
Aplicando Azure Search en Sistemas Hibridos
Aplicando Azure Search en Sistemas HibridosAplicando Azure Search en Sistemas Hibridos
Aplicando Azure Search en Sistemas HibridosJoseph Lopez
 
DBA para SharePoint
DBA para SharePointDBA para SharePoint
DBA para SharePointJoseph Lopez
 
Microsoft SQL Server Relational Databases and Primary Keys
Microsoft SQL Server Relational Databases and Primary KeysMicrosoft SQL Server Relational Databases and Primary Keys
Microsoft SQL Server Relational Databases and Primary KeysMark Ginnebaugh
 
Introduccion a Power BI
Introduccion a Power BIIntroduccion a Power BI
Introduccion a Power BIJoseph Lopez
 
In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016Joseph Lopez
 
Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...
Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...
Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...Diego López-de-Ipiña González-de-Artaza
 
Configuring SharePoint Server 2013 environment for Business Intelligence Plat...
Configuring SharePoint Server 2013 environment for Business Intelligence Plat...Configuring SharePoint Server 2013 environment for Business Intelligence Plat...
Configuring SharePoint Server 2013 environment for Business Intelligence Plat...Joseph Lopez
 
Como crear aplicaciones de bases de datos con MS SQL Server 2012
Como crear aplicaciones de bases de datos con MS SQL Server 2012Como crear aplicaciones de bases de datos con MS SQL Server 2012
Como crear aplicaciones de bases de datos con MS SQL Server 2012Joseph Lopez
 

Destaque (11)

Inteligencia de Negocio - Que Planeta es eso?
Inteligencia de Negocio - Que Planeta es eso?Inteligencia de Negocio - Que Planeta es eso?
Inteligencia de Negocio - Que Planeta es eso?
 
Big Data - Desarrollando soluciones efectivas
Big Data - Desarrollando soluciones efectivasBig Data - Desarrollando soluciones efectivas
Big Data - Desarrollando soluciones efectivas
 
Generando Toma de Decisiones Inteligente con Microsoft Big Data
Generando Toma de Decisiones Inteligente con Microsoft Big DataGenerando Toma de Decisiones Inteligente con Microsoft Big Data
Generando Toma de Decisiones Inteligente con Microsoft Big Data
 
Aplicando Azure Search en Sistemas Hibridos
Aplicando Azure Search en Sistemas HibridosAplicando Azure Search en Sistemas Hibridos
Aplicando Azure Search en Sistemas Hibridos
 
DBA para SharePoint
DBA para SharePointDBA para SharePoint
DBA para SharePoint
 
Microsoft SQL Server Relational Databases and Primary Keys
Microsoft SQL Server Relational Databases and Primary KeysMicrosoft SQL Server Relational Databases and Primary Keys
Microsoft SQL Server Relational Databases and Primary Keys
 
Introduccion a Power BI
Introduccion a Power BIIntroduccion a Power BI
Introduccion a Power BI
 
In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016In-Memory OLTP en SQL Server 2016
In-Memory OLTP en SQL Server 2016
 
Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...
Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...
Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...
 
Configuring SharePoint Server 2013 environment for Business Intelligence Plat...
Configuring SharePoint Server 2013 environment for Business Intelligence Plat...Configuring SharePoint Server 2013 environment for Business Intelligence Plat...
Configuring SharePoint Server 2013 environment for Business Intelligence Plat...
 
Como crear aplicaciones de bases de datos con MS SQL Server 2012
Como crear aplicaciones de bases de datos con MS SQL Server 2012Como crear aplicaciones de bases de datos con MS SQL Server 2012
Como crear aplicaciones de bases de datos con MS SQL Server 2012
 

Semelhante a Introducción a Azure DocumentDB

Casos de bodegas de datos con SQL Server
Casos de bodegas de datos con SQL ServerCasos de bodegas de datos con SQL Server
Casos de bodegas de datos con SQL ServerEduardo Castro
 
AWS Summit Bogotá Track Básico: Almacenamiento y respaldos en la nube de aws
AWS Summit Bogotá Track Básico: Almacenamiento y respaldos en la nube de awsAWS Summit Bogotá Track Básico: Almacenamiento y respaldos en la nube de aws
AWS Summit Bogotá Track Básico: Almacenamiento y respaldos en la nube de awsAmazon Web Services
 
AWS Summits América Latina 2015- Almacenamiento y respaldos en la nube de aws
AWS Summits América Latina 2015- Almacenamiento y respaldos en la nube de awsAWS Summits América Latina 2015- Almacenamiento y respaldos en la nube de aws
AWS Summits América Latina 2015- Almacenamiento y respaldos en la nube de awsAmazon Web Services LATAM
 
Actividad de aprendizaje 4: base de datos
Actividad de aprendizaje 4: base de datosActividad de aprendizaje 4: base de datos
Actividad de aprendizaje 4: base de datosefrain_bautista
 
Actividad de aprendizaje 4
Actividad de aprendizaje 4Actividad de aprendizaje 4
Actividad de aprendizaje 4efrain_bautista
 
Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)SolidQ
 
Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Enrique Catala Bañuls
 
Gestores de base de datos
Gestores de base de datosGestores de base de datos
Gestores de base de datosMarlene Torres
 
SQL Azure Administración, Desempeño y Mantenimiento
SQL Azure Administración, Desempeño y MantenimientoSQL Azure Administración, Desempeño y Mantenimiento
SQL Azure Administración, Desempeño y MantenimientoEduardo Castro
 
OpenProdoc Visión General
OpenProdoc Visión GeneralOpenProdoc Visión General
OpenProdoc Visión Generaljhierrot
 

Semelhante a Introducción a Azure DocumentDB (20)

Casos de bodegas de datos con SQL Server
Casos de bodegas de datos con SQL ServerCasos de bodegas de datos con SQL Server
Casos de bodegas de datos con SQL Server
 
Tipos de base de datos
Tipos de base de datosTipos de base de datos
Tipos de base de datos
 
AWS Summit Bogotá Track Básico: Almacenamiento y respaldos en la nube de aws
AWS Summit Bogotá Track Básico: Almacenamiento y respaldos en la nube de awsAWS Summit Bogotá Track Básico: Almacenamiento y respaldos en la nube de aws
AWS Summit Bogotá Track Básico: Almacenamiento y respaldos en la nube de aws
 
AWS Summits América Latina 2015- Almacenamiento y respaldos en la nube de aws
AWS Summits América Latina 2015- Almacenamiento y respaldos en la nube de awsAWS Summits América Latina 2015- Almacenamiento y respaldos en la nube de aws
AWS Summits América Latina 2015- Almacenamiento y respaldos en la nube de aws
 
Actividad de aprendizaje 4: base de datos
Actividad de aprendizaje 4: base de datosActividad de aprendizaje 4: base de datos
Actividad de aprendizaje 4: base de datos
 
Actividad de aprendizaje 4
Actividad de aprendizaje 4Actividad de aprendizaje 4
Actividad de aprendizaje 4
 
Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)
 
Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)
 
Servicios de Bases de Datos de AWS
Servicios de Bases de Datos de AWSServicios de Bases de Datos de AWS
Servicios de Bases de Datos de AWS
 
Base De Datos
Base De DatosBase De Datos
Base De Datos
 
Grupo BD
Grupo BDGrupo BD
Grupo BD
 
Presentacion
PresentacionPresentacion
Presentacion
 
Base de datos
Base de datosBase de datos
Base de datos
 
Base de datos
Base de datos Base de datos
Base de datos
 
Gestores de base de datos
Gestores de base de datosGestores de base de datos
Gestores de base de datos
 
04 presentacion acosta_claudio
04 presentacion acosta_claudio04 presentacion acosta_claudio
04 presentacion acosta_claudio
 
Sistema de Bases de Datos AWS
Sistema de Bases de Datos AWSSistema de Bases de Datos AWS
Sistema de Bases de Datos AWS
 
SQL Azure Administración, Desempeño y Mantenimiento
SQL Azure Administración, Desempeño y MantenimientoSQL Azure Administración, Desempeño y Mantenimiento
SQL Azure Administración, Desempeño y Mantenimiento
 
Servicios de Bases de Datos de AWS
Servicios de Bases de Datos de AWSServicios de Bases de Datos de AWS
Servicios de Bases de Datos de AWS
 
OpenProdoc Visión General
OpenProdoc Visión GeneralOpenProdoc Visión General
OpenProdoc Visión General
 

Mais de Joseph Lopez

Entorno de datos Microsoft Cloud
Entorno de datos Microsoft CloudEntorno de datos Microsoft Cloud
Entorno de datos Microsoft CloudJoseph Lopez
 
Microsoft Azure Data Environment
Microsoft Azure Data EnvironmentMicrosoft Azure Data Environment
Microsoft Azure Data EnvironmentJoseph Lopez
 
Building The Modern Architecture of Hybrid Data for Big Data with Microsoft D...
Building The Modern Architecture of Hybrid Data for Big Data with Microsoft D...Building The Modern Architecture of Hybrid Data for Big Data with Microsoft D...
Building The Modern Architecture of Hybrid Data for Big Data with Microsoft D...Joseph Lopez
 
Instalando y configurando PowerPivot para SharePoint 2013 y SQL Server 2014
Instalando y configurando PowerPivot para SharePoint 2013 y SQL Server 2014Instalando y configurando PowerPivot para SharePoint 2013 y SQL Server 2014
Instalando y configurando PowerPivot para SharePoint 2013 y SQL Server 2014Joseph Lopez
 
MS SQL Server 2014 - In-Memory OLTP
MS SQL Server 2014 - In-Memory OLTPMS SQL Server 2014 - In-Memory OLTP
MS SQL Server 2014 - In-Memory OLTPJoseph Lopez
 
MS SQL Server 2012 SP1 para desarrolladores
MS SQL Server 2012 SP1 para desarrolladoresMS SQL Server 2012 SP1 para desarrolladores
MS SQL Server 2012 SP1 para desarrolladoresJoseph Lopez
 
Diseño de aplicaciones de bases de datos SQL Azure
Diseño de aplicaciones de bases de datos SQL AzureDiseño de aplicaciones de bases de datos SQL Azure
Diseño de aplicaciones de bases de datos SQL AzureJoseph Lopez
 
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...Joseph Lopez
 

Mais de Joseph Lopez (8)

Entorno de datos Microsoft Cloud
Entorno de datos Microsoft CloudEntorno de datos Microsoft Cloud
Entorno de datos Microsoft Cloud
 
Microsoft Azure Data Environment
Microsoft Azure Data EnvironmentMicrosoft Azure Data Environment
Microsoft Azure Data Environment
 
Building The Modern Architecture of Hybrid Data for Big Data with Microsoft D...
Building The Modern Architecture of Hybrid Data for Big Data with Microsoft D...Building The Modern Architecture of Hybrid Data for Big Data with Microsoft D...
Building The Modern Architecture of Hybrid Data for Big Data with Microsoft D...
 
Instalando y configurando PowerPivot para SharePoint 2013 y SQL Server 2014
Instalando y configurando PowerPivot para SharePoint 2013 y SQL Server 2014Instalando y configurando PowerPivot para SharePoint 2013 y SQL Server 2014
Instalando y configurando PowerPivot para SharePoint 2013 y SQL Server 2014
 
MS SQL Server 2014 - In-Memory OLTP
MS SQL Server 2014 - In-Memory OLTPMS SQL Server 2014 - In-Memory OLTP
MS SQL Server 2014 - In-Memory OLTP
 
MS SQL Server 2012 SP1 para desarrolladores
MS SQL Server 2012 SP1 para desarrolladoresMS SQL Server 2012 SP1 para desarrolladores
MS SQL Server 2012 SP1 para desarrolladores
 
Diseño de aplicaciones de bases de datos SQL Azure
Diseño de aplicaciones de bases de datos SQL AzureDiseño de aplicaciones de bases de datos SQL Azure
Diseño de aplicaciones de bases de datos SQL Azure
 
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
 

Último

certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 

Último (20)

certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 

Introducción a Azure DocumentDB

  • 1.
  • 2. Microsoft Data Platform Avanet Jose Redondo Microsoft SQL Server MVP | CEO EntornoDB | DPA SolidQ redondoj@gmail.com | @redondoj | redondoj.wordpress.com Introducción a Azure DocumentDB
  • 3. Expositor • Data Architect • BI Expert, Data Analysis & Big Data • Dev Client, Web & Database .NET - Java • Dev – DBA Microsoft, SyBase, IBM & Oracle • Speaker Latam “Microsoft, Avanet, FirstCloud, ShareCol” & USA “ITProCamp” • SQL Server MCP – MSTS – MTA • Contributing Technical Reviewer Packt Publishing Microsoft SQL Server MVP | CEO EntornoDB | DPA SolidQ
  • 4.
  • 6. Agenda • Introducción • Configuración • Creando Bases de Datos, Documentos y Colecciones • Trabajando con Documentos • Desarrollo con .NET • Procedimientos Almacenados, Triggers y Funciones • Demos • Conclusiones
  • 8. Introducción • Que es Azure DocumentDB? • NoSQL… ? Porque… ? • NoSQL… ? Porque no… ? • Microsoft Databases en Azure • Características y Beneficios de DocumentDB • Modelo de Recursos • Modelo de Recursos DocumentDB • Resumen
  • 9. Que es Azure DocumentDB? • Orientado a Documentos • Almacén de datos NoSQL libre de Schema • Base de datos completamente administrable como un servicio • Disponible para suscriptores de Microsoft Azure
  • 10. NoSQL… ? Porque… ? • Simplicidad de diseño • Habilidad de escalar horizontalmente • Ejecución de aplicaciones de entorno web en tiempo real y Big Data
  • 11. NoSQL… ? Porque no… ? • Consistencia de compromiso con la tecnología actual • Uso de lenguajes de consulta de bajo nivel • Algunas interfaces estandarizadas • Numerosas inversiones de SQL en la actualidad
  • 12. Microsoft Databases en Azure • Relacional • SQL Database (PaaS – Platform as a Services) • SQL Server (IaaS – Infrastructure as a Service) • NoSQL • Azure Tables – Almacén de valores claves • Azure DocumentDB – Base de datos de documentos
  • 13. Características y Beneficios de DocumentDB • Consultas Ad hoc con sintaxis SQL • Ejecución de JavaScript dentro de la base de datos • Niveles de consistencia regulables • Completamente administrable • Almacenamiento y rendimiento elásticamente escalable • Abierto al Diseño de Aplicaciones de bases de datos
  • 14. Características y Beneficios de DocumentDB • Base de datos documental NoSQL, Poca aplicación en Schema • Totalmente gestionable, con capacidad aprovisionada • Las entidades almacenadas son documentos JSON • Consistencia ajustable • Diseñado para su escalamiento en Petabytes
  • 15. Modelo de Recursos Database Account Database Collection Document Attachment Stored Procedure Trigger User-defined functions User Permission Media
  • 16. Modelo de Recursos DocumentDB
  • 17. Modelo de Recursos DocumentDB • Database Account • Una o más unidades de capacidad • Único DNS • Database • Contenedor lógico de usuarios y colecciones • Particiones a través colecciones
  • 18. Modelo de Recursos DocumentDB • Collection • Contenedor de documentos JSON • Alcance de las transacciones y consultas • Unidad más pequeña de la Escalación • Document • Objetos CRUD (Acrónimo: Create, Read, Update y Delete) habilitados en una colección • No hay forzamiento de esquema o tipos de datos especializados
  • 19. Modelo de Recursos DocumentDB • Users • Namespace lógico para alcances de permisos • Pueden representar Personas o Funciones • Permissions • Token de autorización asociada a un usuario • Controla el acceso a recursos específicos
  • 20. Modelo de Recursos DocumentDB • Stored Procedures, Triggers y User- Defined-Functions • Lógica en la aplicación para ejecutarse directamente en la transacción de la base de datos • Escrito completamente en JavaScript • Attachments y Media • Permite el almacenamiento de blobs / medios binarios • Puede ser en DocumentDB o en una tienda de medios remoto (Adjunto)
  • 21. Recursos del Sistema vs. Recursos Definidos por el Usuario Propiedad Configurables por el usuario o generado por el sistema? Proposito _rid Generado por el Sistema Generados por el sistema, identificador único y jerárquico de los recursos _etag Generado por el Sistema etag de los recursos necesarios para el control de simultaneidad optimista _ts Generado por el Sistema Última actualización Timestamp del recurso _self Generado por el Sistema Direccionamiento único URI del recurso id Configurado por el Usuario Nombre único definido por el usuario del recurso
  • 22. Resumen • Libre de Schema • JSON Document • Estándar del mercado para pasar datos entre un servidor y una aplicación web • Reemplazo para XML • Jerárquico • Abreviado • Tipos de datos simples
  • 23. Resumen • Collections • Unidad de escala, Transacciones y Consultas • DocumentDB escalable mediante la adición de colecciones adicionales • Respaldado por almacenamiento SSD flexible • Indexación automática • Por defecto, los documentos están indexados como cuando son agregados a la colección • Habilitado para la optimización de escritura siendo libre de bloqueo así como técnicas de mantenimiento de indexación de registros estructurados • Énfasis en las rápidas escrituras mientras servía consultas consistentes • Políticas pueden ser configuradas a nivel de colección
  • 24. Resumen • Desarrollo contra DocumentDB - Diferentes APIs • Python • REST API • Node.js • SQL • .NET/LINQ • JavaScript
  • 26. Configuración • Crear una Cuenta • Costo actuales • Disponibilidad Geográfica • Qué es un CU? • Límites y aplicaciones de cuotas para DocumentDB • Configuración de las políticas de indexación de Collection
  • 27. Crear una Cuenta • Actualmente solo disponible en el nuevo portal en versión Preview http://portal.azure.com
  • 28. Crear una Cuenta • Actualmente solo disponible en el nuevo portal en versión Preview http://portal.azure.com
  • 35. Costo actuales • Solamente en edición Estándar
  • 37. Qué es un CU? • CU = Unidad de Capacidad • Unidad de Escalabilidad para DocumentDB • 1 CU de ejecución por segundo • 2,000 lecturas de documentos simples • 500 inserciones/actualizaciones/eliminaciones de documentos simples • 1,000 consultas de documentos simples • 20 procedimientos almacenados (Asumiendo la inserción / ejecución de un procedimiento almacenado de 50 documentos) • Si llegamos a necesitar escalar nuestro escenario de ejecución, añadimos otra CU!
  • 38. Límites y aplicaciones de cuotas para DocumentDB ENTIDAD (OFERTA ESTÁNDAR PARA LA VERSIÓN PRELIMINAR) Cuentas de la base de datos 5 Número de bases de datos por cuenta de base de datos 100 Número de usuarios por cuenta de base de datos en todas las bases de datos 500.000 Número de permisos por cuenta de base de datos en todas las bases de datos 2.000.000 Almacenamiento anexo por cuenta de base de datos 2 GB Número máximo de unidades de capacidad por cuenta de base de datos 50 Número de colecciones por unidad de capacidad 3
  • 39. Límites y aplicaciones de cuotas para DocumentDB ENTIDAD (OFERTA ESTÁNDAR PARA LA VERSIÓN PRELIMINAR) Almacenamiento asignado mínimo por colección con 1 documento como mínimo 3,3 GB Rendimiento asignado mínimo por colección con 1 documento como mínimo 667 unidades de solicitud (RU) Elasticidad de una colección 0-10 GB Unidades de solicitud/s máximos por colección 2000 Número de procedimientos almacenados, desencadenadores y UDF por colección 25 cada uno Tiempo de ejecución máximo para el procedimiento almacenado y desencadenador 5 segundos Almacenamiento de documentos/unidad de capacidad aprovisionados 10 GB
  • 40. Límites y aplicaciones de cuotas para DocumentDB ENTIDAD (OFERTA ESTÁNDAR PARA LA VERSIÓN PRELIMINAR) Unidades de solicitud/s/unidad de capacidad aprovisionadas 2000 Almacenamiento de documentos máximo por base de datos (5 unidades de capacidad) 500 GB Longitud máxima de la propiedad de identificador 255 caracteres Número predeterminado de elementos por página 100 Elementos máximos por página 1000 Tamaño de solicitud máximo del documento y el adjunto 512KB Tamaño de solicitud máximo del procedimiento almacenado, desencadenador y UDF 256KB Tamaño máximo de respuesta 1MB
  • 41. Límites y aplicaciones de cuotas para DocumentDB ENTIDAD (OFERTA ESTÁNDAR PARA LA VERSIÓN PRELIMINAR) Número máximo de rutas exclusivas por colección 100 String Todas las cadenas se deben ajustar a la codificación UTF- 8. Dado que UTF-8 es una codificación de ancho variable, los tamaños de las cadenas se determinan mediante los bytes UTF-8 Longitud máxima de propiedad o valor Sin límite práctico Número máximo de UDF por consulta 1 Número máximo de JOIN por consulta 2 Número máximo de cláusulas AND por consulta 5 Número máximo de cláusulas OR por consulta 5
  • 42. Configuración de las políticas de indexación de Collection • Indexación automática • Puedes activarlo o desactivarlo • Puedes escoger el incluir o excluir documentos específicos (x-ms-indexingdirective)
  • 43. Configuración de las políticas de indexación de Collection • Incluir o excluir rutas especificas dentro de los documentos • Indexación Sincrónica vs. Indexación Asincrónica • Indexación Sincrónica es predeterminada en el sistema • Indexación divagada ideal para escenarios de ejecución de inserciones masivas en colecciones de densa lectura
  • 44. Creando Bases de Datos, Documentos y Colecciones
  • 45. Creando Bases de Datos, Documentos y Colecciones • Estableciendo la conexión • Modelando datos RDBMS • Modelando datos en DocumentDB • Creando una Base de Datos • Creando un Documento
  • 46. Estableciendo la conexión • Cuenta Endpoint de DocumentDB • Clave de acceso Primaria y Secundaria • Proporcionar acceso administrativo a la cuenta • Puede recuperar las claves con acceso limitado según permisos Recomendación (Buenas Practicas): No almacenar tokens de acceso a la aplicación en el código fuente (o en las demos)
  • 50. Modelando datos en DocumentDBLaLecturaesunaoperación LaEscrituraesunaoperación Ningúnassembliesesaplicable
  • 51. Creando una Base de Datos
  • 54. Trabajando con Documentos • Descargando un Documento • Eliminando un Documento • Operaciones • Escenarios • Performance - Targets de Escalabilidad • Escenarios integrados • Errores
  • 55. Descargando un Documento • Las actualizaciones se realizan a través del reemplazo de un documento
  • 57. Operaciones • Para cada recurso: • Create • Replace • Delete • Read • Query • Read es una operación GET en un ID de recurso especificado, devolviendo un único recurso. • Query es una operación POST sobre una colección con un Requests en el body conteniendo el texto DocumentDB SQL, retornando una posible colección empty de recursos. • Query puede ser filtrado solamente en propiedades indexadas
  • 58. Escenarios DocumentDB SQL • SELECT <select-list> FROM <from-specification> WHERE <filter-condition> • Similar al SQL normal • Sólo apoyado con Self-Join • Capacidad para llegar al árbol de JSON: • Valores accesible para condiciones de filtrado • Lista de selección de Shape • Funciones definidas por el usuario • Soporte de LINQ-to-SQL para .NET
  • 61. Performance - Targets de Escalabilidad • Unidad de Capacidad • Cantidad especificada de capacidad de almacenamiento y rendimiento operacional • Cuota del Collection por cada unidad de capacidad • Unidad de aprovisionamiento para la escala de rendimiento y almacenamiento • Configurado a nivel de cuenta de base de datos • Compartible entre todas las bases de datos y Collections en la cuenta de base de datos • Almacenamiento es SSD respaldado • Microsoft ha estado usando las bases de datos con terabytes de almacenamiento (Diseñado para Petabytes)
  • 62. Performance - Targets de Escalabilidad Hipótesis: • Documento de 1 KB con 10 propiedades • Nivel de consistencia de sesión • Indexación automática Operación de Base de Datos Operaciones / Segundos (Unidades de Solicitudes) Read por documento 2000 Insert, Replace, Update por documento 500 Consulta simple (Retornando un documento) 1000 Procedimiento Almacenado con 50 Inserts 20 Solicitudes son neutralizadas si el consumo excede al objetivo que posee la unidad de capacidad total
  • 63. Escenarios integrados • Hay se encuentran las relaciones entre entidades. • Hay se albergan algunas relaciones entre entidades. • No hay datos integrados que cambia con poca frecuencia. • Hay datos integrados que no va a crecer sin límite. • Hay datos integrados que son esenciales para datos en un documento. Ejemplos de cuándo no integrar • Como un blog publicar comentarios o pedidos de los clientes para la empresa
  • 64. Errores Importante: Reloj local no está sincronizado con Azure
  • 66. Desarrollo con .NET • RESTful API • Download • Class: DocumentClient • Class: Resource • Class: Database • Class: DocumentCollection
  • 67. Desarrollo con .NET • Data Model • Class: Document • Class: ResourceResponse<T> • Read • Delete • Replace
  • 68. Desarrollo con .NET • Read From a Feed • DocumentDB Queries • SQL Query • LINQ Query • LINQ Lambda With Paging
  • 69. RESTful API • Interfaz base en DocumentDB • Utilizado por todas las bibliotecas cliente • Operaciones estándar con todos los recursos DocumentDB: • CREATE, DELETE, PUT, GET, POST • Devuelve la URL del recurso permanente en su creación • Autenticación HMAC utilizando la clave de gestión o de recursos • Headers de petición DocumentDB
  • 70. Download • NET API alojados en NuGet • Paquete de instalación Microsoft.Azure.Documents.Client (Preview) • Instala los paquetes DocumentDB y JSON.NET
  • 71. Class: DocumentClient • Construido con Endpoint URL y la key de gestión para la cuenta de la base de datos • Proporciona métodos de Async/Await para las operaciones CRUD (Create, Read, Update & Delete) sobre recursos DocumentDB • Gestiona la conexión a DocumentDB // Create DocumentClient String documentDbAddress = "https://{account}.documents.azure.com"; String authorizationKey = "key=="; Uri documentDbUri = new Uri(documentDbAddress); DocumentClient documentClient = new DocumentClient(documentDbUri, authorizationKey);
  • 72. Class: Resource • Clase base para todas las clases de recursos de DocumentDB • Expone lo siguiente: • ETag - Utilizada para la concurrencia optimista • SelfLink – Ruta URL para recursos • ResourceID – ID interno (Base64 encoded) para recursos • ID – ID de los recursos, proporcionada o generada
  • 73. Class: Database • Derivado desde los recursos • Agrega propiedades exponiendo Collections y Users // Create database Database database = new Database { Id = databaseId }; ResourceResponse<Database> response = await documentClient.CreateDatabaseAsync(database); database = response; String selfLink = database.SelfLink; String collections = database.CollectionsLink; String users = database.UsersLink;
  • 74. Class: DocumentCollection • Derivado desde los recursos • Agrega propiedades exponiendo DocumentsLink, StoredProceduresLink, TriggersLink, UserDefinedFunctionsLink // Create document collection DocumentCollection documentCollection = new DocumentCollection { Id = "SomeId" }; ResourceResponse<DocumentCollection> response = await documentClient.CreateDocumentCollectionAsync( database.SelfLink, documentCollection); documentCollection = response;
  • 75. Data Model • Utiliza librería JSON.NET para la serialización • Clase simple • Ninguna clase especial base • Todas las propiedades públicas se serializan en JSON • Evidente asignación de .NET a JSON • IList, etc. -> Array • Int32, etc. -> Integer • Float, etc. -> Float • DateTime -> String • Byte[] -> String
  • 76. Class: Document • Derivado desde los recursos • Agrega la propiedad a exponer AttachmentsLink // Insert document ResourceResponse<Document> response = await documentClient.CreateDocumentAsync( documentCollection.SelfLink, someDocumentEntity); Document document = response;
  • 77. Class: ResourceResponse<T> • Encapsula la respuesta de una operación de recurso DocumentDB • Provee información de cuotas y uso dependiendo de los recursos • Contiene los Headers de respuesta incluyendo HTTP StatusCode • Expone implícitamente el recurso escrito desde el response
  • 78. Read • Una operación de lectura devuelve un solo documento ResourceResponse<Document> response = await documentClient.ReadDocumentAs ync(documentLink); Album album = JsonConvert.DeserializeObject<Alb um>(response.Resource.ToString());
  • 79. Delete Album album = new Album() { AlbumName = "Let It Bleed", BandName = "Rolling Stones", ReleaseYear = "1969“ }; Document document = await documentClient.CreateDocumentAsync( documentCollection.SelfLink, album); ResourceResponse<Document> secondResponse = await documentClient.DeleteDocumentAsync( document.SelfLink);
  • 80. Replace dynamic readResponse = await documentClient.ReadDocumentAsync(documentLink); RequestOptions requestOptions = new RequestOptions() { AccessCondition = new AccessCondition() { Type = AccessConditionType.IfMatch, Condition = readResponse.Resource.ETag } }; Album album = (Album)readResponse.Resource; album.ReleaseYear = "1990"; ResourceResponse<Document> replaceResponse = await documentClient.ReplaceDocumentAsync( documentLink, album, requestOptions);
  • 81. Read From a Feed • La API de .NET puede devolver todos los recursos en una colección como paginada "Feed." String continuation = String.Empty; Do { FeedOptions feedOptions = new FeedOptions { MaxItemCount = 10, RequestContinuation = continuation }; FeedResponse<dynamic> response = await documentClient.ReadDocumentFeedAsync( documentCollectionLink, feedOptions); continuation = response.ResponseContinuation; } while (!String.IsNullOrEmpty(continuation));
  • 82. DocumentDB Queries • DocumentDB soporta consultas en todos los niveles de recursos, incluyendo: • Database, DocumentCollection, and Document • .NET API soporta los siguientes tipos de consultas: • SQL • LINQ SQL • LINQ Lambda La clase DocumentQueryable expone métodos de extensión helper para crear varios tipos de consulta
  • 83. SQL Query foreach (var album in documentClient.CreateDocumentQuery <Album>( documentCollection.SelfLink, "SELECT * FROM albums a WHERE a.bandName = 'Radiohead'")) { Console.WriteLine("Album name: {0}", album.AlbumName); } Tenga en cuenta que "albums" es el nombre del DocumentDB Collection
  • 84. LINQ Query IQueryable<Album> albums = from a in documentClient.CreateDocumentQuery <Album>( documentCollection.SelfLink) where a.BandName == "Radiohead" select a; foreach (var album in albums) { Console.WriteLine("Album name: {0}", album.AlbumName) }
  • 85. LINQ Lambda With Paging FeedOptions feedOptions = new FeedOptions() { MaxItemCount = 10 }; var query = documentClient.CreateDocumentQuery<Album>( documentCollection.SelfLink, feedOptions) .Where(a => a.BandName == "Radiohead") .AsDocumentQuery(); do { foreach (Album album in await query.ExecuteNextAsync()) { Console.WriteLine("Album name: {0}", album.AlbumName); } } while (query.HasMoreResults);
  • 87. Procedimientos Almacenados, Triggers y Funciones • Creando un Procedimiento Almacenado • Registrando un Procedimiento Almacenado • Ejecutando un Procedimiento Almacenado • Consistencia • Niveles de Consistencia • Indexando
  • 88. • JavaScript como un día moderno de T-SQL • Lenguaje de programación de alto nivel • Transacciones atómicas • JavaScript permite optimización cuando se trata de documentos JSON • Procesamiento por lotes • Compilación previa • Secuencia • Lógica de negocio encapsulada • 5 segundo de timout
  • 93. Niveles de Consistencia • Strong • Write es visible sólo después de que se ha comprometido de forma duradera por la mayoría de las réplicas de quórum • Menor nivel de rendimiento de Read/Write • Bounded Staleness • Garantiza el fin de la propagación de Writes • Reads podría retrasarse detrás o más allá de las Writes
  • 94. Niveles de Consistencia • Session • Tu puedes ver tus Writes • Latencia de Writes bajo • Eventual • NoSQL clásico • Consistencia débil • Rendimiento rápido, Baja latencia
  • 95. Indexando • Especificado en el nivel del Collection • Soporta indexación lenta • Todo es indexado por defecto • Soporta dos modos: • Automatic Indexing: • Esto es tunable para documentos individuales y rutas dentro de un documento, aplicando inclusión o exclusión de una ruta establecida • Los Índices de precisión pueden especificarse para cadenas y números
  • 96. Indexando • Indexing Mode: • Consistent - Por índices predeterminados sincrónicamente actualización en Insertn Replace o Delete • Lazy - Actualización del índice asíncrono (Dirigido a los escenarios de Bulk Ingestion) • Opcional In o Out en la creación de los objetos Collection
  • 97. Indexando • Alcance - Es apropiado para los números que necesitan filtrarse con >=, >, <, <= • Hash - Excelente para los cadenas
  • 98. Demos
  • 101. Conclusiones • Base de datos documental totalmente gestionado para almacenar entidades JSON • Alta escalabilidad y performance • Gran variedad de bibliotecas de desarrollo cliente • .Net, Node.js, JavaScript, Python • Soportado sólo en el nuevo portal de Azure
  • 104. Jose Redondo Microsoft SQL Server MVP | CEO EntornoDB | DPA SolidQ redondoj@gmail.com | @redondoj | redondoj.wordpress.com