Encuentra tu curso ideal

9%

¿Qué quieres estudiar?

Las Vs de Data: Variedad

“El verdadero viaje de descubrimiento no consiste en buscar nuevos paisajes,  sino en tener nuevos ojos”. Marcel Proust

El neurólogo Antonio Damasio, tratando el problema de la consciencia en el ser humano [1], define metafóricamente la “película en el cerebro”. Para crear esta “película”, la mente es capaz de generar una composición unificada e integrada de las distintas sensaciones producidas por los cinco sentidos que se forma cuando interaccionamos con el mundo. Algo similar les ocurre a las Arquitecturas de Datos actualmente. Aparte de su cometido original de describir el estado interno de las organizaciones, están creando su “conciencia” con información que proviene de fuentes heterogéneas como son la navegación web, los sensores o las redes sociales. Además, esta información presenta diversas formas: imágenes, audios o vídeos que no se ajustan a los modelos tradicionales relacionales. Almacenar esta informaciones un reto por la Variedad de los datos.

Cada vez tenemos más Volumen de datos de fuentes heterogéneas y de diversos tipos. Junto a este incremento ocurren dos hechos importantes: una notoria bajada del precio del hardware de almacenamiento y una mayor concienciación por parte de las empresas de la valía de los datos (más importante calidad que cantidad). Aumenta la necesidad de tecnologías de almacenamiento escalables que admitan modelos flexibles en la representación de los datos. En este contexto nacen las bases de datos NoSQL (Not only SQL) una nueva generación de bases de datos con gran rendimiento, escalabilidad (inherentemente distribuidas) y flexibilidad. También repasaremos las bases de datos SQL. No hay que olvidar que no existe una base de datos que sea buena para todos los escenarios posibles,cada una tiene sus casos de uso.

Tipos NoSQL

Básicamente hay cuatro tipos:

  • Bases de datos con modelo clave-valor. Almacenan datos como una colección de pares (clave, valor). Los valores almacenados pueden ser de tipo json, textos o imágenes y se accede a ellos mediante una clave. Similares a una tabla hash distribuida (DHT, Distributed Hash Table). Ejemplos: DynamoDB, Redis, Riak, VoldemortBerkeleyDB.
  • Bases de datos orientadas a columnas. Organizan la información por columnas en vez de por filas como las bases de datos relacionales. El objetivo es escribir y leer datos de forma eficiente, pero pensando en el disco en el que se almacena la información. Así se favorece la compresión de los datos y se mejora la eficacia de las consultas analíticas. Ejemplos: BigTable, Cassandra, SimpleDB y Hbase.
  • Bases de datos orientadas a documentos. Añaden un grado de complejidad al modelo clave-valor. El valor es un documento que almacena todos los datos relacionados con una clave específica. Esta clave es única y se utiliza para recuperar el documento. Además de recuperar el documento por el valor de la clave, se pueden realizar búsquedas por contenido de los documentos (que no se pueden hacer en el modelo clave-valor). Los documentos pueden tener campos y estructura diferentes. Ejemplos: MongoDBCouchDB.
  • Bases de datos orientadas a grafos. Utilizan los componentes de un grafo para representar la información, con datos o elementos como vértices y relaciones o propiedades como aristas. Son muy útiles para modelar relaciones dinámicas y complejas entre datos y se puede usar la teoría de grafos para analizarlos. Ejemplos: Neo4j, OrientDBPolyglotl.

Las bases de datos NoSQL presentan propiedades BASE: Basically Available, Soft state y Eventual consistency.

Bases de Datos NoSQL vs SQL (tomado de: blog.monitis.com/picking-the-right-nosql-database-tool)

… y las SQL?

Las bases de datos “tradicionales” son de tipo relacional. Constan de relaciones tabulares de datos con el objetivo de almacenar la información de la forma más coherente y eficiente posible. El uso de las bases de datos relacionales está totalmente extendido. Proporcionan alto rendimiento y propiedades ACID:

  • Atomicity. Las transacciones se ejecutan de forma completa o no se ejecutan.
  • Consistency. Después de una transacción, la base de datos está en un estado consistente.
  • Isolation. Las transacciones no interfieren entre sí.
  • Durability. Las transacciones completas persisten.

Aunque sigue habiendo debate sobre este tema, está aceptado que las bases de datos tradicionales presentan problemas de escalabilidad y flexibilidad. Principalmente tienen problemas con el sharding, el mantenimiento de las propiedades ACID en Sistemas Distribuidos y la paralelización. Ejemplos de estas bases de datos son: Oracle, MySQL, PostgreSQL, MicrosoftSQLServer, etc.

El destino de ambos tipos de bases de datos parece converger en el futuro. La aparición de las Relational NoSQL, que dotan a las bases de datos NoSQL de propiedades ACID, y de las New SQL, que dotan a las bases de datos SQL de escalabilidad horizontal y paralelismo, así parece indicarlo.

Ya conocemos la forma de resolver el primero de los retos que plantea el universo digital a las Arquitecturas de Datos. En la siguiente entrega abordaremos el segundo, cómo gestionar el gran Volumen de información que manejan las grandes empresas actualmente.

Entrada siguiente: Las Vs de Data: Volumen >>

 Bibliografía

[1]: Damasio, A. (2001). La sensación de lo que ocurre: cuerpo y emoción en la construcción de la conciencia, Madrid: Editorial Debate.

Tomado del artículo: “Arquitecturas de Datos, de Hadoop a Beam” que escribí para el libro de MBIT School

Fuente: Alejandro Rodríguez García, alumni del Máster en Big Data de MBIT School

Deja un comentario