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