Publicidad

RSS MongoDB

Cuándo pensamos en bases de datos relacionales a nuestra mente suelen acudir los mismos nombres. En la parte comercial tenemos Oracle y Microsoft SQL Server. Del lado del software libre, tenemos opciones como Postgre SQL o MySQL. Aunque cada una tiene sus peculiaridades, para un desarrollador no es difícil elegir entre un sistema y otro. Al final todo son tablas, columnas, claves primarias, y sobre todo, consultas SQL. La decisión de cuál elegir, se basará en sus características y precio. Si hablamos de bases de datos NoSQL, la cosa se complica. A día de hoy existen unos 150 sistemas de bases de datos NoSQL. Elegir uno de ellos puede ser muy difícil, ya que ninguno ha obtenido todavía la fama que sí han conseguido las bases de datos relacionales. Pero el problema principal que encontramos, es que aunque todas se denominan NoSQL, en realidad hay diferentes tipos. Dependiendo de lo que necesitemos, deberemos decantarnos por una u otra. Aunque hay varias aproximaciones diferentes para clasificar las bases de datos NoSQL (Teorema CAP, basándonos en el modelo de datos etc.), en general se considera que existen cuatro tipos diferentes: orientadas a documentos, orientadas a columnas, de clave-valor y en grafo. Así que veamos en qué consisten estos sistemas, para que podamos elegir la opción que mejor se adapte a nuestras necesidades. Orientadas a documentos Son aquellas que gestionan datos semi estructurados. Es decir documentos. Estos datos son almacenados en algún formato estándar como puede ser XML, JSON o BSON. Para hacernos una idea un documento suele ser algo parecido a: { Name: "Genbeta Dev", Tipo: "Blogging", Categorias: [ { Título: "Desarrollo", Articulos: 89 }, { Título: "Formación", Artículos: 45 } ] } Son las bases de datos NoSQL más versátiles. Se pueden utilizar en gran cantidad de proyectos, incluyendo muchos que tradicionalmente funcionarían sobre bases de datos relacionales. En esta categoría encontramos: MongoDB: probablemente la base de datos NoSQL más famosa del momento. En octubre del año pasado, MongoDB conseguía 150 millones de dólares en financiación, convirtiéndose en una da las startups más prometedoras. Algunas compañías que actualmente utilizan MongoDB son Foursquare o eBay. CouchDB: es la base de datos orientada a documentos de Apache. Una de sus interesantes características es que los datos son accesibles a través de una API Rest. Este sistema es utilizado por compañías como Credit Suisse y la BBC. Orientadas a columnas Este tipo de bases de datos están pensadas para realizar consultas y agregaciones sobre grandes cantidades de datos. Funcionan de forma parecida a las bases de datos relacionales, pero almacenando columnas de datos en lugar de registros. En esta categoría encontramos: Cassandra: incluida en esta sección, aunque en realidad sigue un modelo híbrido entre orientada a columnas y clave-valor. Es utilizada por Facebook y Twitter (aunque dejaron de usarla para almacenar tweets). HBase. Escrita en Java y mantenida por el Projecto Hadoop de Apache, se utiliza para procesar grandes cantidades de datos. La utilizan Facebook, Twitter o Yahoo. De clave valor Estas son las más sencillas de entender. Simplemente guardan tuplas que contienen una clave y su valor. Cuándo se quiere recuperar un dato, simplemente se busca por su clave y se recupera el valor. En esta categoría encontramos: DynamoDB: desarrollada por Amazon, es una opción de almacenaje que puedemos usar desde los Amazon Web Services. La utilizan el Washington Post y Scopely. Redis: desarrollada en C y de código abierto, es utilizada por Craiglist y Stack Overflow (a modo de caché). En grafo Basadas en la teoría de grafos utilizan nodos y aristas para representar los datos almacenados. Son muy útiles para guardar información en modelos con muchas relaciones, como redes y conexiones sociales. En esta categoría encontramos: Infinite Graph: escrita en Java y C++ por la compañía Objectivity. Tiene dos modelos de licenciamiento: uno gratuito y otro de pago. Neo4j: base de datos de código abierto, escrita en Java por la compañía Neo Technology. Utilizada por compañías como HP, Infojobs o Cisco. Como veis los tipos son muy diferentes. Si tenéis pensado en usar algún sistema NoSQL, aseguraros bien de qué es lo que necesitáis. Imagen | tec_estromberg En GenbetaDev | El concepto NoSQL, o cómo almacenar tus datos en una base de datos no relacional, UnQL, un lenguaje de consulta unificado para todas las bases de datos NoSQL

ToroDB Stampede, toda la potencia de una base de datos NoSQL en un entorno relacional mucho más eficiente

6 Comentarios
ToroDB Stampede, toda la potencia de una base de datos NoSQL en un entorno relacional mucho más eficiente

Poder realizar queries como si de una base de datos MongoDB se tratase pero hasta 100 veces más rápidas y con las ventajas de una base relacional. Esto es lo que propone el reciente lanzamiento de ToroDB Stampede. Simplificando el stack de ToroDB nos encontramos con una base de datos NewSQL, es decir, una base de datos que intenta proporcionar las funcionalidades y características de las bases de datos NoSQL, principalmente escalabilidad, sin renunciar al ACID de toda la vida de una base de datos relacional.

Viendo el ecosistema actual de base de datos, siempre nos ha llamado la atención la centena o miles de ellas que existen y sus diferentes protocolos. Lanzar una nueva base de datos es siempre complejo. Aquí está la primera aclaración sobre ToroDB, en lugar de implementar un nuevo protocolo y un sistema de queries propio, incompatible con el resto de sistema, la gente de ToroDB ha decidido implementar el mismo protocolo de MongoDB.

Leer más »

Stratio Sparta, una forma muy simple de hacer agregaciones con Spark Streaming

Comentar
Stratio Sparta, una forma muy simple de hacer agregaciones con Spark Streaming

Es habitual tener la necesidad de agrupar grandes cantidades de datos en tiempo real, ya sean procedentes del uso de un servicio, de redes sociales como Twitter o de un medio físico como es la meteorología. Una buena forma de procesar toda esta información es con Spark Streaming, para poder disponer en tiempo real de la información para ser servida, pero tiene un inconveniente: hay que programar la lógica.

La gente de Stratio nos cuenta cómo evitar realizar el desarrollo de la propia agregación de datos usando Stratio Sparta, que se encarga de reducir la información en bruto para poder disponer de una información útil para ser servida. Todo a través de una interfaz web muy simple de usar y siendo totalmente flexible. Tras el procesamiento, persistiremos el resultado en un cluster de MongoDB y serviremos en streaming a través de WebSockets con Node.js.

Leer más »
Publicidad

MongoDB: encuentra tus datos con consultas simples

1 Comentario
MongoDB: encuentra tus datos con consultas simples

A lo largo de varios artículos sobre MongoDB, hemos visto como insertar datos, modificarlos o como crear y gestionar índices. Pero todavía nos queda una de las partes más importantes: la consulta de datos.

Está claro que uno de los pilares en el uso de una base datos, es localizar la información. Las bases de datos relacionales de toda la vida, tienen un lenguaje propio para realizar consultas. Es el Structured Query Language, más conocido como SQL. Pero en MongoDB no tenemos la posibilidad de utilizar SQL. En este caso, y al igual que con los otros tipos de consultas, las búsquedas se realizarán con Javascript.

En este artículo, vamos a ver como podemos realizar consultas sencillas desde la shell de MongoDB.

Leer más »

RoboMongo y MongoDB

6 Comentarios
RoboMongo y MongoDB

Poco a poco las bases de datos NoSQL se van asentando en el mercado y cada día es más necesario trabajar con ellas de una forma más sencilla. Quizás la base de datos NoSQL que más se esta utilizando hoy en día es MongoDB. Su sintaxis es muy sencilla de entender sin embargo muchas veces uno echa en falta una buena herramienta gráfica que nos acerque al mundo de MySQL WorkBench o similares.

Leer más »

Diez tecnologías que los javeros amamos (o al menos hablamos bien de ellas)

6 Comentarios
Diez tecnologías que los javeros amamos (o al menos hablamos bien de ellas)

Siempre que lees un informe que “intenta” predecir tendencias de futuro o que analiza estadísticas/encuestas hay que cogerlo con pinzas. Hace unos días cayó en mis manos el informe Geek Choice Award 2014 realizado por RebelLabs. El objetivo era seleccionar ese puñado de tecnologías que han marcado y siguen marcando la forma de desarrollar para un programador, en este caso Javero, aunque veréis que hay tecnologías para los que no lo sean.

¿Cuáles son ese puñado de tecnologías que “amas”? Entendamos amar como que al menos no te sacan de quicio todos los días y han influido en la forma de desarrollar software. El estudio basa su leitmotiv en tres puntos valiosos: cuota de mercado, feedback positivo en diversas encuestas, el ruido mediático que hacen (noticias, tweets, presencia en conferencias) y, por supuesto, las experiencias de los desarrolladores con esas tecnologías.

Obviamente, todas tienen que aportar un valor: resolver problemas, hacer más eficiente la tarea de desarrollar y reimaginar algo ya preestablecido para hacerlo mejor. Sin duda, son buenas caracteristicas.

De entre todas, 10 son las elegidas. La podemos llamar “modern technologies” que siempre suena mejor, aunque son tecnologías muy presentes y algunas de ellas ya llevan una década aportando valor.

Leer más »

JPA vs Hibernate

9 Comentarios
JPA vs Hibernate

Muchas personas me suelen preguntar que diferencias existen entre JPA ( Java Persistence API) e Hibernate como frameworks de persistencia. La realidad es que la diferencia es mucha ya que JPA es una parte de la especificación de EJB 3 ( JSR 220) . Por lo tanto no existe realmente como framework, sino que es simplemente un documento. Un documento en el cual se especifica los principios básicos de gestión de la capa de persistencia en el mundo de Java EE. Hibernate en cambio si que es algo real y se trata de un framework que gestiona la capa de persistencia a traves de ficheros xml o anotaciones.
Leer más »
Publicidad

NoSQL y Relaciones

5 Comentarios
NoSQL y Relaciones

Poco a poco las bases de datos NoSQL tipo MongoDB se van haciendo un hueco en el mercado. Son bases de datos orientadas al concepto de documento. Un documento no es ni más ni menos que un conjunto de entidades de bases de datos agrupados como una “gran” entidad. Por ejemplo podríamos tener los conceptos de Persona, Historial Médico y Compra que en un diagrama entidad relación crearían las siguientes tres tablas independientes.

Leer más »

MongoDB: creación y utilización de índices

1 Comentario
MongoDB: creación y utilización de índices

Una vez que hemos aprendido a insertar, modificar y eliminar datos en MongoDB, estamos casi preparados para empezar a realizar consultas. Y digo casi, porque todavía nos queda conocer una parte muy importante de MongoDB: los índices.

En las bases de datos relacionales, los índices son algo indispensable. Sería inconcebible consultar una tabla con millones de registros si no hemos configurado al menos un índice.

Con MongoDB pasa lo mismo. No podemos pensar en tener una colección con millones de documentos, sin tener índices sobre uno o varios campos. Las diferencia entre realizar una consulta sobre campo con índice, y realizarla sin él, puede ser abismal. Saber crear y configurar índices en nuestras colecciones, es algo vital.

Leer más »

Cómo la simplicidad de JSON ha cambiado la forma de intercambiar datos

27 Comentarios
Cómo la simplicidad de JSON ha cambiado la forma de intercambiar datos

Hasta hace 5 o 6 años cuando se quería transmitir información desde un servidor a una aplicación (ya fuese una aplicación como tal o una web dinámica) se usaba XML, pero parece que esta tendencia ha cambiado totalmente apostando la mayoría de las empresas y servicios por JSON, una alternativa menos restrictiva, ligera, dinámica y probablemente más fácil de leer (para los humanos).

¿Y es la simplicidad la que hace nacer algunas tecnologías basadas en JSON?

Leer más »

La nueva versión 2.6 de MongoDB lista para usarse en producción

6 Comentarios
La nueva versión 2.6 de MongoDB lista para usarse en producción

Os comentábamos en un artículo anterior que la versión 2.6 de MongoDB había pasado a ser release candidate, y que para la ocasión se había organizado una caza de bugs.

Pues bien, tras corregir los fallos detectados, MongoDB Inc acaba de presentar, la que según ellos, es la mayor release que han liberado nunca.

Semejante afirmación merece un buen puñado de novedades. Y es cierto que son muchas:

Leer más »
Publicidad

Ver más artículos