miércoles, 31 de julio de 2013

Cómo instalar CouchDB en Linux

Después de la breve introducción a CouchDB que hicimos en la entrada anterior, hoy vamos a explicar cómo instalar CouchDB en linux. Nuestra recomendación es realizar la instalación desde el source ya que cumpliendo los requisitos de dependencias se podría instalar en cualquier linux.

Lo primero de todo es tener en cuenta el listado de dependencias que necesitamos:
  1. Instalación de las dependencias

sábado, 27 de julio de 2013

Introducción a CouchDB

En entradas anteriores hemos estado hablando de MongoDB, existen otras base de datos NoSQL como por ejemplo CouchDB, al igual que MongoDB, se basa en JSON para almacenar datos y JavaScript como lenguaje de consulta. CouchDB es de código abierto, fue liberada por primera vez en 2005, transformándose en un proyecto Apache en 2008. Couch es un acrónimo para cluster of unreliable commodity hardware, una de sus características principales es la facilidad con la que permite hacer replicaciones, a demás CouchDB se basa principalmente en solicitudes HTTP.

Como hemos indicado anteriormente, las consultas en CouchDB se realizan por medio de MapReduce y HTTP como API. A través de la interfaz REST se accede a los métodos HTTP POST, GET, PUT y DELETE por medio de las operaciones de Create, Read, Update, Delete, este proceso es conocido como CRUD, usando un indentificador único o URI.

Por ejemplo, supongamos que tenemos una colección llama articulos y un documento con la siguiente estructura:
{
   "_id" : "832t41121621a326ec63382f846d3142",
   "_rev" : "1-524521c989ff07s4fa62dad0366677b5",
   "nombre" : "Daniel Romero",
   "articulo" : "CouchDB en HispaBigData",
   "blog" : "HispaBigData",  
}

lunes, 22 de julio de 2013

Trabajando con Indices en MongoDB (2 Parte)

La semana pasada estuvimos viendo la primera parte de como trabajar con indices en MongoDB, en esta semana vamos a explicar como crear indices en un Replica Set.

El procedimiento para crear un indice en un Replica Set es el siguiente:

  1. Convertir un nodo secundario en modo standalone: Vamos a parar el proceso mongod, y lo iniciamos sin la opción --replSet y con un puerto diferente al que usa habitualmente, así podemos trabajar con el en modo standalone, nosotros usaremos por ejemplo el 48018.
    mongod --port 48018
  2. Crearemos el indice o lo reconstruimos en el nodo que hemos dejado en modo standalone:
    db.Coleccion.ensureIndex( { campo: 1 } ) 
  3. Una vez vez el indice se haya construido volvemos a levantar el nodo con la opción --replSet y el mismo puerto en el que trabaja habitualmente, suponiendo que usa el puerto 27017 y que el nombre del Replica Set es NombreReplicaSet0.
     mongod --port 27017 --replSet NombreReplicaSet0 

miércoles, 17 de julio de 2013

Trabajando con Indices en MongoDB (1 Parte)

En cualquier sistema de base de datos, SQL o NoSQL, es muy importante el uso de índices para procesar búsquedas(querys) de forma rápida y eficiente. En MongoDB cuando creamos una colección, ésta crea por defecto un indice en el campo _id permitiéndonos crear un índice en cualquier campo de un documento.

La forma de crear un indice es la siguiente:
db.coleccion.ensureIndex( { "campo": 1 } ) 
EnsureIndex() únicamente crea el índice si este no existe, usaremos un 1 si queremos que la ordenación sea ascendente y -1 si es descendente.

Crear un índice provoca un bloqueo en la colección, por lo que si creamos un índice en una colección con gran cantidad de documentos podemos dejarla bloqueada con el riesgo de si estamos usando algún aplicativo en producción que use esta colección podría producir errores. La forma que tenemos para solucionar esto es crear el indice en Background.
db.coleccion.ensureIndex( { "campo": 1 }, { background: true } ) 
Por defecto MongoDB establece la opción de Background a false.