miércoles, 6 de junio de 2018

Almacenamiento NoSQL

El término NoSQL se refiere a Not Only SQL (no solo SQL) y son sistemas de almacenamiento que no cumplen con el esquema entidad-relación. Proveen un sistema de almacenamiento mucho más flexible y concurrente y permiten manipular grandes cantidades de información de manera mucho más rápida que las bases de datos relacionales.

Distinguimos cuatro grandes grupos de bases de datos NoSQL:
  • Almacenamiento clave-valor (key-value): los datos se almacenan de forma similar a los mapas o diccionarios de datos, donde se accede al dato a partir de una clave única. Los valores (datos) son aislados e independientes entre ellos, y no son interpretados por el sistema. Pueden ser variables simples como enteros o caracteres, u objetos. Por otro lado, este sistema de almacenamiento carece de una estructura de datos clara y establecida, por lo que no requiere un formateo de los datos muy estricto.
Son útiles para operaciones simples basadas en las claves. Un ejemplo es el aumento de velocidad de carga de un sitio web que puede utilizar diferentes perfiles de usuario, teniendo mapeados los archivos que hay que incluir según el id de usuario y que han sido calculados con anterioridad. Apache Cassandra es la tecnología de almacenamiento clave-valor más reconocida por los usuarios.
  • Almacenamiento documental: las bases de datos documentales guardan un gran parecido con las bases de datos Clave-Valor, diferenciándose en el dato que guardan. Si en el anterior no se requería una estructura de datos concreta, en este caso guardamos datos semiestructurados. Estos datos pasan a llamarse documentos, y pueden estar formateados en XML, JSON, Binary JSON o el que acepte la misma base de datos.Todos los documentos tienen una clave única con la que pueden ser accedidos e identificados explícitamente. Estos documentos no son opacos al sistema, por lo que pueden ser interpretados y lanzar queries sobre ellos.​ Un ejemplo que aclare cómo se usa lo encontramos en un blog: se almacena el autor, la fecha, el título, el resumen y el contenido del post.
CouchDB o MongoDB​ son quizá las más conocidas. Hay que hacer mención especial a MapReduce, una tecnología de Google inicialmente diseñada para su algoritmo PageRank, que permite seleccionar un subconjunto de datos, agruparlos o reducirlos y cargarlos en otra colección, y a Hadoop que es una tecnología de Apache diseñada para almacenar y procesar grandes cantidades de datos.
  • Almacenamiento en grafo: las bases de datos en grafo rompen con la idea de tablas y se basan en la teoría de grafos, donde se establece que la información son los nodos y las relaciones entre la información son las aristas,​ algo similar al modelo relacional. Su mayor uso se contempla en casos de relacionar grandes cantidades de datos que pueden ser muy variables. Por ejemplo, los nodos pueden contener objetos, variables y atributos diferentes en unos y otros. Las operaciones de join se sustituyen por recorridos a través del grafo, y se guarda una lista de adyacencias entre los nodos. Encontramos un ejemplo en las redes sociales: en Facebook cada nodo se considera un usuario, que puede tener aristas de amistad con otros usuarios, o aristas de publicación con nodos de contenidos. Soluciones como Neo4J y GraphDB son las más conocidas dentro de las bases de datos en grafo.
  • Almacenamiento orientado a columnas: por último, este almacenamiento es parecido al documental. Su modelo de datos es definido como «un mapa de datos multidimensional poco denso, distribuido y persistente».​ Se orienta a almacenar datos con tendencia a escalar horizontalmente, por lo que permite guardar diferentes atributos y objetos bajo una misma clave. A diferencia del documental y el clave-valor, en este caso se pueden almacenar varios atributos y objetos, pero no serán interpretables directamente por el sistema. Permite agrupar columnas en familias y guardar la información cronológicamente, mejorando el rendimiento. Esta tecnología se acostumbra a usar en casos con 100 o más atributos por clave. Su precursor es BigTable de Google, pero han aparecido nuevas soluciones como HBase o HyperTable.

No hay comentarios:

Publicar un comentario

Caracteristicas

Los macrodatos se pueden describir por las siguientes características: Volumen: la cantidad de datos generados y guardado. El tamaño de los...