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, 7 de diciembre de 2014

Big Data & Hadoop & HDInsight

Hola amigos, el día de ayer 6 de diciembre de 2014, estuve en el evento CloudCamp Medellín organizado por Microsoft Colombia DX, en el cual estuve compartiendo sobre Big data en general, y acerca de una herramienta como lo es Hadoop, y obviamente compartiendo la propuesta por parte de Microsoft llamada HDInsight, la cual esta basada sobre Hadoop y nos permite tener una versión on premise y una versión en la nube, acá les dejo la presentación y espero sea de utilidad para ustedes. Saludos!