Mostrando entradas con la etiqueta No SQl. Mostrar todas las entradas
Mostrando entradas con la etiqueta No SQl. Mostrar todas las entradas

lunes, 11 de mayo de 2015

Administrando documentos en DocumentDB

En el artículo anterior observamos cómo administrar las colecciones de nuestra base de datos a través del portal de Azure, de una forma muy sencilla y amigable, recordemos que las colecciones nos permiten agrupar nuestros documentos de una manera lógica y administrarlos con mucha más facilidad, y precisamente de eso se trata este artículo de cómo administrar nuestros documentos a través del portal de Azure.

Para iniciar como es de costumbre abrimos el portal de Azure con nuestra cuenta asociada, seleccionamos la cuenta previamente creada y en su interior seleccionamos la base de datos con la que estemos trabajando, posteriormente elegimos alguna de las colecciones existentes, y ahora si iniciamos a administrar los documentos de la colección.



Como podemos ver en las imágenes anteriores al igual que para las bases de datos y las colecciones, para los documentos también tenemos opciones para monitorear las peticiones realizadas, el almacenamiento y el nivel de precios, adicional contamos con las opciones para desarrolladores, como lo son el explorador de documentos, que recordemos nos permite ver los documentos existentes en las diferentes colecciones y el explorador de consultas que nos permite realizar consultas detalladas sobre cualquier elemento de la base de datos.

Y en la parte superior izquierda contamos con cuatro opciones las cuales nos permiten propiamente administrar nuestros documentos, veamos de qué se trata cada una de ellas:

Agregar documento: A través de esta opción podemos agregar a una colección un archivo Json existente en nuestro disco, tan solo debemos seleccionar la ubicación del archivo y listo, de esta forma quedará almacenado en nuestra colección y por ende en la base de datos.




Crear documento: A través de esta opción podemos crear un nuevo documento Json en nuestra colección, tan solo debemos escribir la estructura del documento y obviamente su contenido, esta opción puede ser muy útil para creación de datos de configuración y puede ser útil cuando trabajamos con archivos de estructura y datos pequeños.



Consultas de documentos: A través de esta opción podemos realizar diferentes consultas (Las cuales explicaremos más adelante) sobre los diferentes objetos de la base de datos y en especial para obtener archivos en específico que necesitemos, usando un lenguaje sumamente similar a Sql.



Eliminar documento: A través de esta última opción como su nombre lo indica, podemos eliminar algún documento en específico que ya no necesitemos en nuestra base de datos.


Y bueno amigos eso fue todo de este ejemplo de administración de documentos en DocumentDB espero sea de utilidad para ustedes, en el próximo artículo veremos cómo generar consultas sobre los diferentes documentos de la base de datos.

No olvides visitar mi página en Facebook para mantenerte actualizado de lo que pasa en el Tavo.Net https://www.facebook.com/eltavo.net

Saludos y buena suerte!

lunes, 27 de abril de 2015

Administrando colecciones en DocumentDB

En el artículo anterior vimos cómo crear una cuenta de almacenamiento para gestionar nuestra base de datos DocumentDB, de igual forma vimos cómo crear bases de datos al interior de la cuenta de almacenamiento. Recordemos que las bases de datos DocumentDB están divididas en diferentes colecciones, las cuales nos permiten agrupar de una manera lógica nuestros diferentes archivos de tipo Json.

Y es precisamente el foco de este artículo, dar a conocer acerca de la administración de estas colecciones y cómo podemos trabajar con ellas para estructurar nuestra base de datos y clasificar nuestros documentos, además de la importancia que tienen a la hora de modelar nuestras bases de datos, tema que veremos más adelante en esta serie de DocumentDB.

Para iniciar vamos a crear una nueva colección llamada artículos, para esto seleccionamos nuestra cuenta de almacenamiento, posteriormente seleccionamos la base de datos donde deseamos crear la colección y luego seleccionamos la opción "Agregar Colección"


Para terminar con la creación de la colección le debemos especificar un Id, en nuestro caso "Articulos" y debemos seleccionar un nivel de precios, que estará dado por las características de almacenamiento que requiramos y para finalizar debemos hacer clic sobre el botón Aceptar, ahora en cuestión de segundos tendremos lista nuestras colección para almacenar documentos. Y la podemos observar en el listado de colecciones de la base de datos:


Y si la seleccionamos podremos ver todas sus características y funcionalidades que podemos aplicar sobre la colección, como por ejemplo, agregar un documento Json existente, crear un nuevo documento a través del portal de Azure, realizar consultas, eliminar documentos existentes, monitorear los request hechos a la colección y monitorear el estado de almacenamiento de la colección.


Y adicional podemos usar herramientas para desarrolladores como lo son el "Explorador de documentos" y el "Explorador de consultas", los cuales nos permiten observar los documentos existentes en la colección actual u otras colecciones de la base de datos y generar diferentes consultas con el fin de encontrar documentos en específico, respectivamente.



Y bueno amigos eso fue todo de este ejemplo de administración de colecciones en DocumentDB espero sea de utilidad para ustedes, en el próximo artículo veremos cómo administrar documentos al interior de estas colecciones.

No olvides visitar mi página en Facebook para mantenerte actualizado de lo que pasa en el Tavo.Net https://www.facebook.com/eltavo.net

Saludos y buena suerte!

viernes, 17 de abril de 2015

Creando mi primera base de datos DocumentDB

En el artículo anterior vimos una introducción a DocumentDB la base de datos No Sql de Microsoft Azure, en la cual hablamos un poco acerca de su estructura y filosofía. Ahora vamos a ver cómo crear nuestra primera base de datos a través del portal de Azure y cómo podemos visualizar la información.

En primera instancia abrimos la versión preview del portal de Microsoft Azure, hacemos clic sobre el botón nuevo, seleccionamos el menú de datos y almacenamiento y posteriormente seleccionamos la opción "documentDB"


Enseguida se nos muestra la siguiente pestaña en la cual vamos a crear una cuenta de almacenamiento, tal y como lo hacemos cuando creamos una base de datos Sql en Microsoft Azure, y dicha cuenta puede contener N bases de datos DocumentDB.


Ahora solo especificamos un Id para la cuenta de almacenamiento y una ubicación y hacemos clic sobre el botón "Crear", la creación tarda alrededor de 10 minutos.

Una vez finaliza la creación de nuestra cuenta, podemos ver toda la información que corresponde a ella, como por ejemplos las bases de datos que están creadas bajo esta cuenta, monitoreo de peticiones y operaciones, gasto estimado $$$ en la suscripción por concepto de la cuenta de almacenamiento, espacio utilizado y espacio disponible, y como es obvio podemos crear una nueva base de datos DocumentDB.


Para crear la base de datos solo es necesario especificar un Id


Y de igual forma que para la cuenta, una vez creamos la base de datos podemos toda la información concerniente a ella, como por ejemplo, las colecciones que hay en la base de datos, las peticiones y uso y por supuesto los documentos que hay alojados en las diferentes colecciones de la base de datos. Cabe recordar que las bases de datos DocumentDB al igual que MongoDB y muchas otras bases de datos NoSql de tipo documental agrupan sus archivos en colecciones, las cuales para este caso son muy simples de crear:


Y bueno amigos eso fue todo de este ejemplo de creación de nuestra primera base de datos DocumentDB espero sea de utilidad para ustedes, en próximos artículos veremos como manejar las colecciones de la base de datos, como crear, editar, consultar y eliminar documentos existentes.

No olvides visitar mi página en Facebook para mantenerte actualizado de lo que pasa en el Tavo.Net https://www.facebook.com/eltavo.net

Saludos y buena suerte!

jueves, 19 de marzo de 2015

DocumentDB, la base de datos NoSql de Microsoft Azure


En la actualidad las aplicaciones cada vez más demandan y consumen una gran cantidad y volúmenes de datos y requieren seguir teniendo rápidos tiempos de respuesta, es por esto que cada vez toma más fuerza el concepto de NoSql, que fue diseñado para este fin, manejar grandes volúmenes de datos sin afectar la experiencia del usuario, ofreciendo facilidades para la escalabilidad horizontal y el no uso de un esquema rígido para la base de datos (Schema less).


Como respuesta a esto Microsoft combina el concepto de NoSql con el flexible y potente concepto de Cloud, a través del cual nos ofrece un servicio de base de datos NoSql documental llamado DocumentDb alojado en su plataforma en la nube Microsoft Azure.

como mencioné anteriormente DocumentDb es una base de datos NoSql de tipo documental, es decir que almacena la información en documentos, y usa notación JSON para esto, de igual forma como lo hacen otras base de datos como MongoDb y CouchDb por ejemplo. Cabe recordar que la sombrilla de NoSql tiene los siguientes tipos: Documental, clave valor, grafos y familia de columnas, cada tipo con ventajas para diferentes escenarios, si estás interesando en conocer los conceptos básicos de NoSql te invito a darle un vistazo a la siguiente diapositiva: Introducción a las bases de datos NoSql.

Una de las ventajas de DocumentDb es que podemos realizar consultas a nuestros documentos utilizando un lenguaje de consulta muy similar a Sql, y podemos crear procedimientos almacenados, triggers, y funciones utilizando javascript, en dónde podemos realizar operaciones Crud a través de este lenguaje. Adicional otra ventaja de DocumentDb al ser una base de datos diseñada para la nube es su flexibilidad para escalabilidad y elasticidad que se ajustan a nuestras necesidades.

La estructura de recursos de una base de datos DocumentDb es la siguiente:


Como podemos ver, debemos contar con una cuenta de almacenamiento, y sobre esta cuenta podemos tener N bases de datos, las cuales tienen usuarios con permisos asociados y colecciones, que nos permiten agrupar de una manera lógica nuestro documentos, como por ejemplo podríamos tener una colección para artículos, otra para autores, otra para categorías, etc. Y en cada colección tendremos nuestros documentos Json que contendrán nuestra información y para cada colección podemos manejar procedimientos almacenados, triggers y funciones, que recordemos programaremos con JavaScript.

Ahora, para el tema de desarrollo de aplicaciones DocumentDb nos ofrece una Api Rest a través de la cual expone los recursos de la base de datos, lo cual quiere decir que podemos interactuar con la base de datos mediante cualquier lenguaje o plataforma capaz de consumir servicios de este tipo y adicional al utilizar Apis de tipo Rest podemos consumirlas muy fácilmente desde cualquier dispositivo.

Además del Api Rest que expone DocumentDb también contamos con librerías específicas para plataformas las cuales nos ayudan y facilitan la interacción con la base de datos, en la actualidad tenemos librerías para las siguientes plataformas:
  • .Net
  • Node Js
  • JavaScript
  • Pyton
Y bueno amigos eso fue todo de esta introducción sobre DocumentDb la base de datos NoSql del Microsoft Azure, espero sea de utilidad, en próximos artículos observaremos cómo crear la base de datos y sus diferentes recursos, así mismo veremos como interactuar con ella a través del SDK para .Net y también a través de las Apis Rest.

Si quieres profundizar más sobre el tema te recomiendo el sitio oficial de Microsoft Azure: https://azure.microsoft.com/es-es/services/documentdb/

No olvides visitar mi página en Facebook para mantenerte actualizado de lo que pasa en el Tavo.Net https://www.facebook.com/eltavo.net

Saludos y buena suerte!

Presentación: DocumentDB, la base de datos NoSql de Microsoft Azure

Hola amigos, hace un par de días tuve la oportunidad de dictar una introducción a documentDB, ya que fui invitado por parte de DevAcademy para participar en uno de sus Hangouts, aquí les comparto la presentación de mi charla y espero sea de utilidad.

domingo, 15 de marzo de 2015

Introducción a DocumentDB, la base de datos NoSql de Microsoft Azure.

Hola amigos, hace un par de días tuve la oportunidad de dictar una introducción a documentDB, ya que fui invitado por parte de DevAcademy para participar en uno de sus Hangouts, aquí les comparto la grabación de la charla y espero sea de utilidad.

martes, 23 de diciembre de 2014

Usando ExistDB (No Sql) desde .Net con C#

ExistDB es una base de datos No Sql, de la familia documental, es decir es una base de datos basada en documentos, y estos documentos tienen notación Xml. A través de las bases de datos No Sql podemos llegar a suplir requerimientos de manejo de grandes volúmenes de datos sin afectar el rendimiento de nuestras aplicaciones, y pensadas para aplicaciones donde la consistencia y transaccionalidad de datos no sean la prioridad, al contrario de los sistemas de bases de datos relaciones RDBMS como Sql Server por ejemplo. Si no estás muy familiarizado con las bases de datos No Sql aquí te dejo esta presentación que te puede orientar un poco: Introducción a las bases de datos No Sql


Si quieres encontrar más información acerca de ExistDB, puedes observar su sitio oficial exist-db.org, adicional en la siguiente página toda la documentación del producto ExistDB Documentación y como no puede faltar también cuenta con una guía para desarrolladores.

Y después de esta breve introducción, ahora si vamos a ver cómo podemos guardar documentos Xml en una base de datos ExistDB desde .Net, con nuestro lenguaje preferido C#. Y este artículo surge básicamente por la falta de documentación del tema en Internet, ya que la verdad no pude encontrar ejemplos de esto y por eso les quiero compartir un ejemplo muy sencillo, de como interactuar con esta base de datos a través de unas Apis Rest que expone (de otras opciones que tiene)

var credenciales = new HttpClientHandler { Credentials = new NetworkCredential("user""pass")};
            
using (var httpClient = new HttpClient(credenciales))
{
     var request = new HttpRequestMessage(HttpMethod.Put, string.Concat("UrlExistDB""NombreColeccion""nombreArchivo"))
     {
        Content = new StringContent("DocumentoXML"Encoding.UTF8, "text/xml")
     };
     var response = httpClient.SendAsync(request).Result;
     //response.Content.ReadAsStringAsync();
}


Como podemos ver es algo bastante sencillo, en donde consumimos el Api expuesta por la instalación que hicimos de ExistDB, indicamos en que colección queremos almacenar el archivo, ExistDB agrupa en diferentes colecciones que creamos para almacenar los diferentes archivos xml el nombre del archivo y por último enviamos el archivo xml que queremos almacenar, y todo usando un httpClient o cualquiera de las otras opciones que nos ofrece .Net para realizar este tipo de peticiones.

Nótese que en esta ocasión usamos el verbo http Put, pero podríamos usar cualquier otro dependiendo de la operación que queramos realizar en la base de datos.

Cabe resaltar que el secreto está en estudiar las diferentes Apis que nos ofrece ExistDB y obviamente comprender REST, y al manejar esta filosofía es bastante eficiente el almacenamiento, lo puedo decir ya que he tenido óptimos resultados almacenando archivos xml bastante grandes.

Y bueno amigos eso es todo de este ejemplo de cómo interactuar con ExistDB desde .Net usando el lenguaje C#, espero sea de utilidad. saludos y buena suerte!

domingo, 1 de diciembre de 2013

[WebCast] Avanet - Web móvil, Introducción a No Sql, KnocKoutJS, EmberJS, Google DART

Hola amigos, les comparto el evento virtual de nuestra comunidad Avanet realizado el día de hoy 30/11/2013, donde se tocan bastantes temas interesantes como Web Móvil con BootStrap, knockoutjs, MVC 5, Ember.js, No sql y demás, en esta oportunidad estuve compartiendo una introducción a las bases de datos No Sql y como usar MongoDB con C#, espero les sea de utilidad:


lunes, 7 de octubre de 2013

[Patrones] - Acceso a datos para soluciones escalables usando sql, No sql y persistencia políglota

Hola amigos, les comparto esta interesante guía publicada por Microsoft para el desarrollo de acceso a datos para soluciones altamente escalables, da a conocer ventajas de las bases de datos No Sql y como se pueden hacer soluciones combinando Sql y No SQL, usando buenas prácticas.

http://msdn.microsoft.com/en-us/library/dn271399.aspx

espero les sea de utilidad.

Saludos!!

domingo, 11 de agosto de 2013

Creando un mini blog con Asp.net y MongoDB

En este artículo vamos a ver como crear un mini blog utilizando asp.net conectándonos a una base de datos no sql como lo es MongoDB, que es una base de datos documental que usa archivos en formato JSON para almacenar información. para mayor detalle acerca de esta base de datos remitirse al su sitio oficial http://www.mongodb.org/

Para una introducción a las bases de datos no sql, recomiendo observar mi presentación anterior:
http://eltavodev.blogspot.com/2013/07/introduccion-las-bases-de-datos-no-sql.html

Lo primero que debemos hacer para realizar nuestro ejemplo es descargar e instalar la base de datos MongoDB, para su instalación se deben seguir las siguientes instrucciones:
http://docs.mongodb.org/manual/installation/

Una vez instalada nuestra base de datos, debemos descargar las dll que ofrece MongoDB para trabajar en la plataforma .NET, estas dll las descargamos en la siguiente url:
http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-csharp-driver/#getting-started-with-csharp-driver

Ahora creamos un proyecto web asp.net en nuestro Visual Studio, y agregamos la referencia de la dll MongoDB.Driver.dll, y en nuestra página agregamos la instrucción:

using MongoDB.Driver;
using MongoDB.Driver.Builders;



Con estas referencias ya podemos interactuar con la base de datos.

Ahora vamos a iniciar a implementar nuestro ejemplo, en el cual podremos guardar un nuevo articulo en nuestro blog y buscarlo posteriormente. Visualmente es de la siguiente forma:


En primera instancia vamos a crear un método para abrir la conexión con nuestra base de datos y especificamos en que colección vamos a guardar o consultar:

private void ConectarDB()
{
      string connectionString = "mongodb://localhost";
      MongoClient client = new MongoClient(connectionString);
      MongoServer server = client.GetServer();
      MongoDatabase database = server.GetDatabase("MiBlog");
      this.collection = database.GetCollection<Articulo>("Articulos");
}

En el fragmento de código anterior especificamos una cadena de conexión básica, con los objetos MongoClient y MongoServer obtenemos acceso al servidor de base de datos, con el objeto MongoDataBase especificamos a que base de datos nos deseamos conectar y con el método GetCollection indicamos que queremos efectuar operaciones sobre la colección Articulos, el termino colección en Mongo se puede homologar como una tabla en una base de datos relacional.

Como en nuestro ejemplo vamos a usar nuestros objetos del dominio para almacenarlos en la base de datos, y no estructuras dinámicas vamos a crear una entidad Articulo para almacenarla en nuestra colección de artículos:

public class Articulo
{
      public ObjectId Id { getset; }
 
      public string Titulo { getset; }
 
      public string Contenido { getset; }
}

Ahora en el evento click de nuestro botón guardar vamos a copiar lo siguiente:

this.ConectarDB();
 
Articulo articulo = new Articulo { Titulo = this.txtTitulo.Text, Contenido = this.txtContenido.Text };
this.collection.Insert(articulo);

En el fragmento de código anterior, en primer lugar nos conectamos a nuestra base de datos, posteriormente creamos un nuevo objeto artículo con los datos digitados por el usuario y por ultimo lo insertamos en la base de datos.

Para finalizar nuestro ejemplo vamos a ver como recuperar un artículo de nuestra base de datos, donde el titulo contenga las palabras digitadas por el usuario en el cuadro de texto de búsqueda, para ello copiamos lo siguiente en el evento click del botón Buscar:

this.ConectarDB();
var query = Query<Articulo>.Matches(c => c.Titulo, this.txtBusqueda.Text);
Articulo articulo = collection.FindOne(query);
 
this.txtTitulo.Text = articulo.Titulo;
this.txtContenido.Text = articulo.Contenido;

Con el fragmento de código anterior, en primer lugar nos conectamos a nuestra base de datos, luego con una expresión lambda especificamos que se busquen los artículos cuyo titulo contenga las palabras digitadas en el cuadro de texto de búsqueda, y posteriormente decimos que nos traiga un solo artículo con la extensión FinOne, y por ultimo mostramos el artículo al usuario.

Con esto damos por terminado nuestro ejemplo de como crear un blog básico con Asp.net y MongoDB, espero los sea de gran utilidad, a continuación el link de descarga del código de ejemplo:

https://www.dropbox.com/s/le3xw5opf7ry8cp/Ejemplo%20MongoDB.rar

Saludos y buena suerte!!!