Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Version History

Version 1 Next »

Disponible desde la versión 6.3.0-Yoshi

Introducción

Una Entidad en la base de datos RealTime (RealTimeDB) puede almacenar gran cantidad de información dependiendo del propósito de dicha Entidad, como puede ser por ejemplo 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 puede configurar a nivel de instalación el número de máximo de registros que devolverán dichas consultas.

Así, para una consulta genérica como puede ser:

Select * from airportsdata

Se devolverá como máximo 2.000 registros, independientes de si la Entidad tiene millones de registros.

Para facilitar el tratamiento de este tipo de sentencias en proyectos, se incluye en 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 archivo que se pondrá disposición de los usuario.

¿Cómo se utiliza?

La operación disponible en el Digital Broker se encuentra en la ruta /rest/ontology/{ontology}/file , la cual tiene la siguiente interfaz:

Los parámetros a rellenar son los siguientes:

  • ontology: Entidad sobre la que se realiza la consulta, y en la que el usuario tiene que tener permisos.

  • query: consulta a ejecutar.

  • queryType: tipo de consulta que se realiza (SQL o nativa).

  • responseType: destino del archivo a generar:

    • DISK: el fichero se creará 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, etc.

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

    • URL: el archivo se crea en un directorio mapeado en una carpeta compartida en el loadbalancer de la Plataforma, lo que permite descargarlo mediante una URL.

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

  • Type Disk:

  • Type URL:

  • Type S3 (MinIO):

El archivo queda accesible en el bucket del usuario:

Respuesta asíncrona 

La respuesta del servicio es asíncrona, ya que en consultas sobre Entidades grandes el tiempo de consulta puede ser elevado. Para ello, en el JSON de respuesta se incluye un identificador que permite consultar el estado de ejecución de la sentencia, pudiendo estar en:

  • IN_PROGRESS: la sentencia se está ejecutando.

  • FINISHED: la sentencia ha terminado y su resultado se ha volcado por completo al archivo.

La operación que permite consultar el estado está disponible en el Digital Broker en la ruta /rest/ontology/file/{queryId}/status, y tiene la siguiente interfaz:

Un ejemplo de su funcionamiento sería el siguiente:

Borrado de archivos 

En el caso de que el resultado no sea almacenado en S3 (MinIO), el archivo quedará accesible para el usuario durante la siguiente hora. Transcurrido ese tiempo el archivo será borrado y si no se ha descargado previamente, será necesario volver a lanzar la consulta.

  • No labels