Mapeo de Queries sobre Real Time DB a fichero

En Onesait Platform, una entidad sobre la Real Time DB puede almacenar gran cantidad de información dependiendo del proposito de dicha entidad. Por ejemplo supongamos una entidad que recibe eventos de una red de cientos de dispositivos.

Para evitar problemas de colapso de memoria con consultas que no aplican criterios de límites sobre entidades con gran número de registros, se configura a nivel de instalación el número de máximo de registros que devolverán dichas consultas. Pej: en una instálación típica con los valores por defecto, la siguiente sentencia:

select * from MiEntidad;

Devolverá como mucho 2000 registros, independientemente de si la entidad tiene millones de registros.

Para facilitar el tratamiento de este tipo de sentencias en proyectos, en la siguiente release se va a incluir en el Digital Broker una operación para permitir la ejecución de sentencias sin clausulas de límite o con límites muy altos, cuyo resultado se volcará a un fichero que se pondrá disposición de los usuario.

La operación tendrá la siguiente interfaz, con los parámetros:

  • ontology: Entidad sobre la que se realiza añadiendo un parámetro para el tipo de respuesta.

  • query: Sentencia a ejecutar.

  • queryType: Tipo de query (SQL o Nativa)

  • responseType: Destino del fichero a generar:

    • DISK: El fichero se generará en un directorio configurable por instalación dentro del contenedor del Semantic Inf Broker, que se podrá mapear a un volumen compartido para que el fichero quede disponible para otros módulos, como por ejemplo Dataflow, Notebooks…

    • S3_MINIO: El fichero se genera en el bucket de MinIO del propietario del Digital Client.

    • URL: El fichero se genera en un directorio mapeado en una carpeta compartida en el loadbalancer de plataforma, lo que permite descargarlo mediante una URL.

 

image-20241223-113956.png

 

La respuesta del servicio será un JSON con la información donde localizar el fichero:

  • Disco

image-20241223-103459.png
  • URL

  • MinIO

Donde el fichero queda accesible en el bucket del usuario