Categories
Bigdata General NoSQL OpenSource Social

Datos en formato Grafo (NoSQL) – 1a Entrega

Actualmente las base de datos NoSQL están en auge (http://nosql-database.org). Podemos encontrar una gran diversidad según su arquitectura; las más utilizadas son del tipo Key-Value (como Cassandra o Voldemort) 
o las documentales (por ejemplo MongoDB y CouchDB). Aunque existen otras no tan conocidas como las que os queremos presentar; BBDD NoSQL basadas en grafos o tripletas como DEX y Neo4j. (http://stackoverflow.com/questions/5689091/how-to-choose-which-type-of-nosql-to-use). A parte luego ya hay base de datos NoSQL que ya son casos híbridos que es el caso de OrientDB (http://www.orientechnologies.com/orientdb) que es un híbrido orientado entre base de datos en formato grafo y documentales.
dex
Dex introducción
Os queríamos introducir DEX una base de datos NoSQL de grafos con muchos casos de éxitos. DEX (http://www.sparsity-technologies.com/dex) está escrita en C++ aunque se puede utilizar con muchos otros lenguajes de programación y una de sus características principales es que permite analizar grandes volúmenes de datos.
DEX está basado en el modelo2 de base de datos en grafo, que está caracterizado por cumplir 3 propiedades: las estructuras de los datos son grafos o estructuras similares a un grafo o tripleta, la manipulación de los datos y las consultas se realizan con operaciones orientadas a grafo y existen restricciones para garantizar la integridad de los datos y de sus relaciones.
Un grafo de DEX es un multigrafo dirigido etiquetado y con atributos. Está etiquetado porque tanto nodos como aristas pertenecen a tipos. El grafo es dirigido porque permite que existan tanto aristas dirigidas como no dirigidas. Nodos y aristas pueden tener tantos atributos como se desee. Finalmente también decimos que es un multigrafo porque permite que existan múltiples aristas entre dos nodos aunque éstas sean del mismo tipo.
La principal característica de DEX es su capacidad de almacenamiento de datos y rendimiento, con órdenes de magnitud de miles de millones de nodos, aristas y atributos, gracias a una implementación con estructuras ligeras especializadas. (Wikipedia)

Ref: http://www.cbsolution.net/techniques/ontarget/databases_relational_vs_object_vs

Dex comparación con mysql

Depende mucho de cada caso de uso para saber cuando es más recomendado usar DEX u otro tipo de base de datos. Hemos querido hacer una típica comparación comparando DEX con MySQL. Elegimos MySQL ya que es una de las base de datos más usadas actualmente. Podemos ver en el siguiente listado que ventajas y desventajas nos aportan una base de datos relacional como el MySQL en comparación con una de grafos como DEX.

Ventajas del Mysql:
  • Mejor medición del performance (DEX tiene herramientas pero no suelen ser en tiempo real como pueden ser en MySQL)
  • Madurez. Está claro que las RDB como el MySQL son más maduras que DEX. Este hecho aporta que a nivel seguridad el MySQL es también más maduro y su interfície de gestión es más avanzada.
  • Claramente hay muchos más casos de éxito del MySQL
  • La implementación de MySQL es sencilla y además la mayoría de gente tiene más experiencia en este ámbito de las RDB. Siguiendo a nivel coste, DEX vuelca todos sus datos en RAM por lo cual es más costoso a nivel Hardware que las RDBs. Aunque actualmente el precio de la RAM se está reduciendo cada vez más.
  • Escalabilidad. Curioso caso, el NoSQL suele ser muy utilizado por las carencias de MySQL a nivel escalabilidad. El DEX en sus primeras versiones cojeaba un poco a nivel escalabilidad. Aunque tenemos que estar atentos porque las últimas versiones de DEX mejoran mucho esta característica y quizás este punto ahora sea más favorable para DEX.
Ventajas DEX sobre Mysql:

Ahora viene la parte interesante:

  • Aparentemente MySQL es más ineficiente para modelos de datos complejos o datos flexibles.
  • Es ineficiente para consultas estructurales. O para uso intenso de JOINS.
  • El DEX permite gran capacidad de tratamiento de grandes volumes con un alto rendimiento
  • Los Grafos suelen ser muy utilizado en redes sociales y en el mundo del Big Data.
  • El DEX se puede integrar con dos base de datos públicas.
  • WordNet: definiciones y diccionarios.
  • ConceptNet: relaciones entre conceptos.
  • Muy flexible para manejar Schemas desconocidos o dinámicos
  • El DEX tiene unas consultas estructurales y permite la navegación entre consultas.
  • Fácil mapeo entre ficheros CSV a DEX.
  • Tal como hemos comentado la escalabilidad a mejorado mucho en las últimas versiones. Cosa que seguramente ahora será mejor que el MySQL en este ámbito. Está aun por probar por parte nuestra.

Algunos casos para usarse de forma mucho mejor que MySQL u otras base de datos RDB y NoSQL:
– Encontrar todos los caminos entre 2 saltos de distancia (http://docs.neo4j.org/chunked/stable/cypher-query-lang.html)
– Encontrar amigo con el que tienes más amigos en común. Como también dar recomendaciones de grupos o música.
– Encontrar el camino más cortos entre dos elementos.
– Dijkstraa con DEX: http://architects.dzone.com/articles/graph-databases-features-graph
– Poner pesos entre diversos nodos con un coste. De esta forma podemos buscar el coste más pequeño entre nodos de distintos intereses entre todos . http://docs.neo4j.org/chunked/stable/tutorials-java-embedded-graph-algo.html
Ejemplo simple de un HelloWorld con DEX

public class HelloWorld {
DEX dex = new DEX();
GraphPool gpool = dex.create("/tmp/image.dex");
gpool.close();
dex.close;
System.out.println("Hello, World");
}

En la web de DEX podeis encontrar muchos más ejemplos. (http://www.sparsity-technologies.com/dex)

Las alternativa a DEX

La más conocida y más utilizada a parte de DEX es Neo4j. http://en.wikipedia.org/wiki/Neo4j . También tiene varias versiones como DEX. En el caso del Neo4j, tiene 3 versiones:

  • Comunidad está licenciado bajo GPL, y contiene toda la graphiness impresionante que deseas
  • Advanced es AGPL licencia, y agrega capacidades de seguimiento para su base de datos
  • Enterprise es también AGPL licencia, y agrega el monitoreo, las copias de seguridad en vivo y alta disponibilidad.

A parte de DEX y Neo4j que son las más utilizadas también hay muchas otras más, os recomendamos la siguiente lectura: http://jasperpeilee.wordpress.com/2011/11/25/a-survey-on-graph-databases/
Y por cierto, esta imagen hace un muy buen resumen y clasificación del estado del arte de como esta actualmente el mundo del SQL, NoSQL y el Big data.
451db_map_06.13
Ref: https://blogs.the451group.com/information_management/files/2013/06/451db_map_06.13.jpg

Categories
General

¿Hacia dónde volaran las nubes en 2014?

Es el momento del año para hacer balance de como ha ido el 2013 y hacer previsiones para este 2014 que empezará en breve. También es el momento del año en el que muchos nos ponemos hacer predicciones sobre los temas más calientes que nos pueden afectar, desde cloudadmins no vamos a ser menos y repasaremos a continuación las posibles tendencias que pueden revolucionar el sector TIC en 2014.

  •  NFV & SDN (Network Functions Virtualisation & Software Defined Networks) SDN se está posicionando como solución de entornos productivos cada vez más flexibles, eficientes y altamente programables, es el caso de iniciativas abanderadas por OpenStack y OpenDaylight Projects. Al mismo tiempo es posible que NFV gane importancia y dirija nuevas funcionalidades en nuestros ISP permitiendo administrar los servicios dentro del cloud, reduciendo drásticamente costes e incrementando su agilidad. Estas pueden ser las tecnologías más disruptivas del próximo año.
  • Big Data: el uso de dispositivos BYOD y la explosión de contenido multimedia de altas prestaciones esta causando grandes retos en el ámbito del almacenamiento de datos y como definir su estrategia. En 2014 debemos preguntarnos cuestiones fundamentales sobre los volumen de datos ¿Cuáles son los objetivos de la arquitectura de almacenamiento? ¿Estamos almacenando los datos correctos y de forma adecuada? ¿De que modo les podemos sacar el mayor provecho? ¿Pueden ir de la mano con técnicas de BI (Bussines Intelligence) y/o Inteligencia Operacional? Para los que estamos más verdes en este tema la siguiente presentación puede introducirnos y aclararnos el concepto de Big Data: “Runaway complexity in Big Data. And a plan to stop it
  • Private Cloud: Estos últimos años hemos visto en el sector TIC la adopción de forma exponencial de tecnologías Cloud. Nadie duda ya de los beneficios nos aporta: pago por uso, flexibilidad, disponibilidad, etc… pero las preocupaciones en cuanto a la seguridad y privacidad siguen presentes. Aspectos que hacen que muchas organizaciones requieran que se implemente una nube privada, antes de dar el salto hacía proveedores de servicios cloud públicos.
  • LXC & Configuration Management: A estas alturas podemos decir que ya hemos vivido la eclosión de herramientas destinadas a la gestión de la configuración (puppet, chef, salt, etc..) y vemos como emerge una nueva forma de gestionar recursos a través de LXC (containers). Algunas herramientas como puppet ya se han subido al carro, dónde Dockers se posiciona dando solución al nuevo enfoque de los sistemas frente a los restos del “futuro” PaaS.

Para finalizar os dejo una píldora con las mejores herramientas, en el ámbito de la seguridad, de este 2014 gracias a Team Cymru. Buen despegue de año!

Categories
Bigdata General

EEDC Seminars – Big and Open Data

Last Thursday (April, 19th 2012) was celebrated in Barcelona the first day of the EEDC Seminars, inside the Master in Computer Architecture, Networks and Systems (CANS-UPC). The first day was focused in Big and Open Data,  you can see the program here.
The seminar was divided in two different presentations:

  •  Big Data by Marc de Palol (@lant)

Among the interesting things covered, he talked about the three main actions in Big Data: Inserting, processing and serving/using the data. During the presentation, several free software project references were enumerated by Marc. A little piece of the list :  Hadoop, Hive, Nosqldb, Memcache, Thrift, Mahout,…

He explained that OpenData is the idea that certain data (like scientific and government data) should be freely accessible to everyone to use and republish as they wish without restrictions from copyright, patents or other mechanisms of control. David Sánchez explained that actually in Spain a business model based on OpenData analysis is already a challenge. Here you can see a useful example of Big Data application.

In few days, the next  EEDC Seminar will cover IaaS, SaaS and Mobile Apps topics.  See you there!