Creación de una Entidad en una base de datos histórica

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.

Disponible desde la versión 3.1.0-KickOff.

Interfaz de usuario: 5.3.2-Ultimate

Introducción

En los años 2000, Hadoop se había estandarizado como solución para la creación de DataLakes ya que permitía construir clusters locales con hardware básico para almacenar y procesar estos nuevos datos de forma barata.

Pero el mundo open source ha seguido evolucionando y en la actualidad con Hadoop es muy difícil conseguir la elasticidad, simplicidad y agilidad en el provisionamiento que otras soluciones basadas en Kubernetes si ofrecen.

La Plataforma propone una solución basada en MinIO+Presto como DataLake.

https://blog.onesaitplatform.com/2021/12/06/datalake-con-minio-y-prestodb/

Por un lado tenemos MinIO que es un almacenamiento distribuido que implementa la API de AWS S3. MinIO puede desplegarse en On-Premise y funciona sobre Kubernetes. En la actualidad es una alternativa interesante a los entornos basados en HDFS.

Para nuestra implementación DataLake proponemos usar Presto que es un motor de consultas SQL distribuido open-source y construido en Java, está pensado para lanzar consultas analíticas interactivas contra un gran número de fuentes de datos (a través de conectores) soportando consultas sobre fuentes de datos que van desde gigabytes hasta petabytes.

En nuestro caso Presto es el motor de consultas los datos almacenados en MinIO, de modo que en lugar de montar HIVE para consultar en formato SQL los datos almacenados en HDFS usaré Presto para consultar los datos almacenados en MinIO

Ventajas de esta aproximación 

  • La combinación es más elástica que la típica configuración Hadoop, y si alguna vez has tenido que añadir y quitar nodos a un clúster Hadoop, sabrás a qué me refiero. Se puede hacer, pero no es fácil, mientras que esa misma tarea es trivial en esta arquitectura.

  • Con Hadoop si quieres añadir más almacenamiento, lo haces añadiendo más nodos (con computación). Si necesitas más almacenamiento, vas a tener más cómputo, lo necesites o no mientras que con la arquitectura de almacenamiento de objetos si necesitas más computación, puedes añadir nodos al cluster Presto y mantener el almacenamiento, de modo que la computación y el almacenamiento no son sólo elásticos, son elásticos de forma independiente. Y eso es bueno, porque tus necesidades de computación y almacenamiento también son elásticas de forma independiente.

  • Mantener un cluster Hadoop estable y fiable es una labor compleja, por ejemplo la actualización de un cluster suele implicar la parada del cluster, las actualizaciones continuas son complejas, etc.

  • Con esta arquitectura tendremos una reducción del coste total de la propiedad, ya que MinIO apenas requiere gestión, y además el almacenamiento de objetos es más barato.

A conitnuación explicamos cómo crear una Entidad de este tipo.

Pasos

Crear la Entidad

Desde el Control Panel, navegaremos al menú de Desarrollo > Mis Entidades.

image-20240315-092532.png

Esto nos llevará al listado de Entidades disponibles. Para crear la Entidad, pulsaremos en el botón de «+» situado en la parte superior derecha de la pantalla.

image-20240227-121951.png

De las distintas Entidades que vamos a poder crear, seleccionaremos la de «Creación Entidad en BD Histórica»:

Rellenar la información general

Esto nos abrirá el asistente de creación de Entidades, en donde al igual que el resto de Entidades tendremos que introducir una información básica:

  • Identificación: el nombre único con el que identificar a la Entidad.

  • Meta-Información: etiquetas con las que caracterizar la Entidad, que servirán para su filtrado a la hora de hacer búsquedas.

  • Descripción: texto descriptivo extendido de la Entidad, como su uso, propiedades, características, etc.

Además, contamos con dos opciones de caracterización de la Entidad:

  • Entidad activa: para que la Entidad funcione o se encuentre bloqueada.

  • Entidad pública: si queremos que la Entidad sea pública, o si la queremos privada.

Una vez definida la información general y las opciones de la Entidad, pulsaremos en el botón de «Continuar» para acceder a la definición del esquema de la Entidad.

Definir las plantillas / esquema JSON

Una vez que pulsemos en el botón de «Continuar», se mostrará el formulario para la creación de la Entidad sobre la base de datos histórica.

Añadir campos

Como en otras Entidades debemos rellenar los campos obligatorios (nombre, meta-información, y descripción), y añadir uno a uno los campos que deseamos que contenga nuestra entidad mediante la interfaz disponible:

Opciones de archivo

El siguiente paso será seleccionar el formato del fichero en el que queremos que se guarden los datos en la Entidad o del archivo que vayamos a subir:

 

Si no se selecciona ninguna opción, los datos se almacenarán por defecto en formato ORC.

Así mismo, si lo que queremos es almacenamiento en CSV, se deberán indicar los caracteres de escapado, entrecomillado y separador, si no se indican cogerá los valores por defecto. Esto es muy importante a la hora de subir un fichero para que los datos sean legibles por el motor.

También se dispone de la opción de particionar los datos, seleccionando uno o varios campos de la entidad que queremos crear. Éstos deben ser los últimos campos en la consulta de creación y estar en el mismo orden:

Una vez rellenados los datos que apliquen a la entidad a crear, se debe pulsar sobre el botón de «Actualizar SQL» para generar la consulta de creación de la tabla que se permite editar:

Después de esto, se debe generar el esquema JSON que permitirá crear la entidad en plataforma, pulsando sobre el botón de «Generar esquema»:

Al pulsar sobre el botón «Crear», si la Entidad se ha generado correctamente, aparecerá un mensaje que nos permitirá subir un fichero a la base de datos:

Esta opción también está disponible en la edición de la Entidad, mediante el botón «Upload file to Entity».

Consultando la información

En caso de que hayamos importado datos a la Entidad recién creada, podemos utilizar la herramienta de consultas para comprobar nuestros datos.

Para ello, accederemos al menú de Herremientas > Herramienta de consultas.

En la ventana que se mostrará, seleccionaremos la Entidad sobre la que queremos consultar la información, y ejecutaremos la consulta pertinente.