---
title: "Un vistazo al Semantic Data Hub"
canonical: "https://onesaitplatform-es.refined.site/space/DOC/2215925366/Un%20vistazo%20al%20Semantic%20Data%20Hub"
format: markdown
---
> ℹ️ Desde la [versión 3.1.0-KickOff](https://dev.onesaitplatform.com/space/ruta/2217052456/Publicada+Release+3.1.0+(KickOff)+de+Onesait+Platform), en el Control Panel se ha pasado a denominar a las Ontologías como «**Entidades**». Esto no altera ninguna funcionalidad; simplemente se ha cambiado la nomenclatura para un mejor entendimiento del concepto.

> Macro (toc)

# Introducción

Onesait Platform propone una **arquitectura** ***data centric***; es decir, una arquitectura donde los datos son el activo principal y permanente, mientras que las aplicaciones van y vienen. En estas arquitecturas el modelo de datos precede a la implementación de cualquier aplicación dada y será válido mucho después de que se reemplacen.

En la Plataforma se soporta, a través del concepto de **Entidad** (también llamada **Ontología**), este concepto es el que permite aislar a la Plataforma de las tecnologías de persistencia subyacentes, ofreciendo una capa de abstracción SQL. La información que proviene de la ingesta y procesamiento queda almacenada en el ***Semantic Data Hub*** de la Plataforma que, como hemos dicho, **es el motor de persistencia de la Plataforma**.

![image](media://2e96b7de-a017-4dc2-8962-a3e06ca48fef)

# Características

Las principales características son:

- Soporta el almacenamiento de la información en diferentes repositorios *Stores* (actualmente se soporta MongoDB, Bases de datos relacionales, Elasticsearch, Kudu, BigQuery, HIVE, CosmosDB, base de datos de grafos y a nivel de consulta cualquier base de datos con *driver* JDBC), además de permitir consultar siempre en SQL sea cual sea el repositorio subyacente.
- La Plataforma permite, en función de los requerimientos de cada proyecto (volúmenes de información en tiempo real e histórico, accesos mayoritariamente de lectura o escritura, mayor cantidad de procesos analíticos, tecnologías previamente existentes en los clientes, etc.), seleccionar el motor de persistencia más adecuado. Conceptualmente se manejan estos conceptos en la Plataforma:
  - **Base de datos en tiempo real (RealTimeDB):** está pensada para soportar un gran volumen de inserciones y consultas *online* de forma muy eficiente. La Plataforma abstrae de la tecnología subyacente, permitiendo usar bases de datos como Mongo, Elastic, Kudu, bases de datos relacionales, etc.
  - **Base de datos histórica y de analítica (HistoricalDB):** está pensada para almacenar toda la información que ya no forma parte del mundo *online* (por ejemplo, información de años anteriores que ya no se consulta) y para soportar procesos analíticos que extraen conocimiento de estos datos (algoritmos). La Plataforma soporta tecnologías como HIVE (con Impala o Presto para consultas online), SAP HANA, BigQuery, Cosmos DB, SparkSQL, etc.
  - **Área de *****Staging*****:** permite almacenar ficheros en *raw* y sin procesar por la Plataforma, para su posterior ingesta. Suele usarse HDFS como almacenamiento, aunque la Plataforma permite usar otros como GridFS.
  - **Base de datos para GIS:**  permite el almacenamiento de información geográfica y su posterior consulta y procesamiento. La Plataforma soporta MongoDB, Elastic y PostGIS entre otras.
- Toda la definición y manejo de estas Entidades se realiza desde el Control Panel de la Plataforma:
  - **Listado de Entidades/Ontologías**: con niveles de visibilidad, etc.

![image-20250506-075630.png](media://d181ae58-9747-4ea5-b48d-eeb4db540bbb)

- **El asistente de creación de Entidades (Ontología)**: la Plataforma ofrece ayudas para crear estas Entidades de forma guiada, permitiendo entre otras opciones cargar un fichero del que la Plataforma extraerá la información para modelar la Entidad y cargar este fichero, creación paso a paso, conexión con una base de datos relacional:

![image-20250506-075728.png](media://a739992e-7ba7-4078-8a5e-a55ad2e3521d)

- **Creación de la Entidad**: cuando creamos la Entidad, vamos a poder darle un nombre, etiquetarla, activarla o desactivarla, hacerla pública, asignarle permisos de acceso (quien puede verla, quien puede insertar datos, etc.), definir una auditoría, etc.

![image-20241212-112629.png](media://b1cff276-df7e-45b3-91dc-c5f1d885e01f)

Si seleccionamos la opción de creación paso a paso, vamos a poder ir definiendo los atributos de la Entidad y su tipo (estos tipos los mapea de forma transparente la Plataforma hacia la persistencia seleccionada: HIVE, Mongo, Elastic, BD relacional, etc.).

![image-20241212-112820.png](media://ee42dd9a-c768-49ed-afeb-9a0f81d8ff39)

También podemos ver como se puede seleccionar una de las plantillas como base para la creación de mi entidad (esto es opcional) y como se puede seleccionar que un atributo se encripte, en este caso la plataforma almacenará este atributo encriptado en el repositorio seleccionado y permitirá desencriptarlo a la hora de retornarlo.

- Cuando se crea la Entidad, se va a poder hacer una **gestión avanzada de la misma:**

![image-20241212-112923.png](media://f67f04c2-a5df-473e-9230-8abc01eeddf8)

En la que puedo mapear la entidad a un tópico Kafka, indicar si los datos de la entidad se deben borrar automáticamente paso un tiempo o pasarse a la BD histórica e **indicar el repositorio sobre el que deseo almacenar la Entidad, **en el ejemplo se ven diferentes repositorios, estos repositorios se configuran en función de los módulos de persistencia desplegados.