N.World
bases de datos

Bases de datos NoSQL y su relación con arquitecturas Big Data y Data Mesh

Las bases de datos son el repositorio de información por excelencia en las empresas. Solemos identificar a los proveedores más conocidos con modelos relacionales: Oracle, Microsoft, SAP o IBM, etc.

Gracias al desarrollo de soluciones Big Data, han surgido herramientas enfocadas a mejorar el rendimiento y escalabilidad de las bases de datos. En esta dirección disponemos de bases de datos que distribuyen el trabajo entre varios nodos, bases de datos que cargan toda la base de datos en memoria o una mezcla de ambas.

El nuevo paradigma Data Mesh y su descentralización, facilita la adquisición de nuevas tecnologías ultra especializadas. Este modelo de arquitectura defiende compartir la información entre departamentos (dominios) con independencia del software utilizado. Además, debido a que cada dominio es propietario de sus datos, se facilita la adopción de nuevas tecnologías dentro de cada dominio.

Tipos de bases de datos No SQL

Actualmente existen multitud de bases de datos de uso muy específico que no son muy conocidas fuera de su ámbito de aplicación. Casi todas ellas podrían incluirse en la categoría de las bases de datos No-SQL y una clasificación podría ser:

Clave-valor (key-value)

Es el tipo más sencillo de base de datos No SQL. Las tablas se componen únicamente por dos columnas: la primera actúa a modo de clave para acceder al registro y la segunda contiene un listado variable de campos. Es posible denominarlas también tablas diccionario o tablas Hash en referencia a sus claves.

Ejemplos: DynamoDB,  Redis o Hazelcast.

Basadas en documentos JSON

Almacena la información en documentos JSON o XML y puede contener tanto datos estructurados como semiestructurados. El acceso a cada registro es por una clave de acceso único.

Ejemplos: MongoDB o Couchbase.

Motores de búsqueda (search engines)

Almacena la información en documentos sin formato específico y aplican motores de búsqueda optimizados. Estas bases de datos captura la información de dichos documentos y la disponen de forma ordenada según la prioridad marcada por el usuario. Son especialmente utilizadas para la lectura automática de ficheros de log.

Ejemplos: Splunk, ElasticSearch o Apache SolR.

Grafos

Utilizan una modelización y diseño específico para distribuir la información mediante grafos. Existen nodos y relaciones entre nodos de forma que, con esta configuración, se pueden aplicar lógica de grafos y encontrar el camino más corto entre dos nodos, la identificación de redes de nodos aisladas, etc.

Ejemplos: Neo4J, OrientDB o TigerGraph.

Columnares (Wide-column)

Este tipo específico de bases de datos almacena la información de cada registro a través de las diferentes filas de una única columna. Equivale a pivotar una tabla tradicional y mejora el rendimiento de escritura en grandes volúmenes de datos al trabajar con áreas de información que están más próximas entre sí.

Ejemplos: Amazon Redshift, Apache Cassandra, MonetDB y ScyllaDB.

Temporales

Se encuentran optimizadas para casos de uso en que los datos se encuentren relacionados con una marca de tiempo. Por este motivo son muy utilizadas para monitorizar, rastrear o trabajar con intervalos de tiempo.

Ejemplos: InfluxDB, Prometheus, Graphite o AWS TimeStream

Espaciales

Posibilitan el almacenamiento de las geometrías de archivos cartográficos. Facilita operaciones con formatos shapefile utilizados en aplicaciones GIS.

Ejemplos: PostGIS, Spatialite o H2GIS.

Vectoriales

Es uno de los tipos más recientes. Tiene una fuerte relación con modelos de machine learning y de inteligencia artificial. Al definir entidades como vectores podemos aplicar operaciones algebraicas de similitud y comparar activos de formas no tradicionales.

Ejemplos: Milvus, PineconeQdrant.

Álvaro Saénz

Álvaro Saénz

Head of Data Management en Bosonit.

Te puede interesar

Da el salto
tecnológico.

Contacta con nosotros.