Un vistazo al Semantic Data Hub

Desde la versión 3.1.0-KickOff, 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.

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.

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 (vistas por Rol Administrador): con niveles de visibilidad, etc.

image-20241212-112149.png
  • 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:

  • 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.

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.).

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:

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.