Queries sobre RealTimeDB mapeadas a fichero

Introducción

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

¿Cómo se usa?

La operación disponible en el Digital Broker en el path /rest/ontology/{ontology}/file tiene 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:

  • Type Disk

image-20241223-103459.png
  • Type URL

  • Type S3 (MinIO)

Donde el fichero queda accesible en el bucket del usuario