DocumentDB, Microsoft Azure, NoSQL

Micrososft Azure + DocumentDB

DocumentDB es un servicio de bases de datos NoSQL que posee algunas ventajas respecto a otras bases de datos de este tipo, por ejemplo:

  • Consultas mediante SQL
  • Procedimientos almacenados.
  • Triggers.
  • Funciones definidas por el usuario.

Como se puede observar este servicio cuenta con algunas características de una base de datos relacional por lo que si estamos familiarizados a éstas podemos obtener provecho de ese conocimiento con este servicio.

Nota: Si desean obtener más información de este servicio pueden consultar https://azure.microsoft.com/en-us/documentation/articles/documentdb-introduction/

En este artículo aprenderemos a crear nuestra cuenta de DocumentDB y en los próximos tutoriales accederemos desde C# y nodeJS.

Antes de iniciar debemos mencionar que DocumentDB tiene la siguiente jerarquía:

  • Cuenta de DocumentDB
    • Bases de datos
      • Colecciones (Procedimientos almacenados, disparadores y funciones definidas por el usuario)
        • Documentos

A continuación se presenta una imagen con la estructura

00a
Imagen tomada de https://azure.microsoft.com/en-us/documentation/articles/documentdb-introduction

 

Una vez que comprendemos la estructura de DocumentDB vamos a ingresar en Microsoft Azure y crearemos una cuenta de DocumentDB

00

Configuramos nuestro servicio con los siguientes datos:

  1. Id de la cuenta de DocumentDB
  2. La suscripción (en mi caso es BizSpark pero puede aparecerles otra opción)
  3. Grupo de recursos, pueden utilizar uno nuevo o ya existente
  4. Ubicación, en nuestro caso Este de Estados Unidos

01

Esperamos a que el servicio se cree

02

Una vez que se ha creado se nos va desplegar una ventana similar a la siguiente, acá seleccionamos «Agregar base de datos»

03

 

Ingresamos el nombre de nuestra base de datos

04

En nuestra de DocumentDB vamos a observar que ya contamos con una base de datos, vamos a dar click sobre ella

05

Ahora vamos a crear una colección

06

En la colección debemos de configurar los siguientes datos:

  1. Id
  2. Precio, en nuestro caso estándar
  3. Modo de partición (En nuestro caso la más sencilla ya que es una demo, si están desarrollando para producción deben de analizar esto):
    1. Single: almacenamiento de hasta 10GB y entre 400-1000 unidades de solicitud por segundo, cada unidad es equivalente a 1kb.
    2. Particionado: almacenamiento hasta 250GB y entre 10 000 – 250 000 unidades de solicitud por segundo.
  4. Llave de partición (solo disponible para opción de particionado), es una propiedad de nuestros documentos que utilizamos para dividirlos. Por ejemplo en caso que se desarrolle una aplicación que cuente con artículos y comentarios, los comentarios pueden ser demasiados por lo que se recomendaría tener una colección para artículos y otra para comentarios, los comentarios tendrían el id del artículo (similar a una llave foránea). Recordemos que es una recomendación y nosotros manejamos el esquema de nuestras bases de datos NoSQL como deseemos.

07

Ahora seleccionamos nuestra colección

08

Vamos a crear un documento

09Ingresamos la estructura de éste, en nuestro caso será la siguiente

{
"nombre": "Carlos",
"edad": 21
}

Nota: Si no establecemos una propiedad id DocumentDB se encargará de hacerlo por nosotros

Agregamos el documento y se nos desplegará una ventana similar a la siguiente

11

Una vez que tenemos un documento vamos a consultar, para ello en la sección de nuestra colección seleccionamos «Explorador de documentos»

12

Acá podemos buscar un documento por el id o bien realizando una consulta mediante SQL, pero primero vamos a seleccionar el documento que nos aparece

13

En una nueva ventana vamos a observar la estructura de éste

14

 

Ahora vamos a filtrar nuestros documentos

Opción de id

Ingresamos el id del documento y en caso que coincida con alguno existente aparecerá abajo

15

 

Opción de SQL

Debemos seleccionar la opción de «Filtrar» y aparecerá una nueva sección, por defecto la consulta viene como


SELECT *

FROM c

Si están familiarizados con SQL recordarán que no hace falta agregarle un alias a la tabla o indicar la tabla con la que se trabaja si es solo una o bien si ninguna de las tablas cuenta con una columna con nombres similares sin embargo en DocumenDB si debemos de realizarlo por lo que si deseamos filtrar por nombre debemos agregar el siguiente código


c.nombre = "Carlos"

16

También podemos utilizar la cláusula Order By, en nuestro agregaremos un documento más


{
"nombre": "Emma",
"edad": 22
}

Ahora agregamos en la sección de Order By lo siguiente


c.edad ASC

También podemos ordenar descendente, en lugar de ASC colocamos DESC

17Bueno hemos aprendido a trabajar con nuestra cuenta de DocumentDB, crear colecciones, documentos y consultarlos. En los próximos artículos aprenderemos a crear procedimientos almacenados, además de trabajar con nuestra cuenta desde C# y nodeJS 🙂

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s