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 facilitar el tratamiento de este tipo de sentencias en proyectos, en la siguiente 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 tendrá 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.
ATTACHMENT: El fichero se devuelve como un adjunto a la respuesta.
...
La respuesta del servicio será un JSON con la información donde localizar el fichero:
DiscoType Disk
...
Type URL
...
Type S3 (MinIO)
...
Donde el fichero queda accesible en el bucket del usuario
...
Respuesta Asincrona
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 ejecucuó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 fichero.
La operación que permite consultar el estado está disponible en el Digital Broker en el path /rest/ontology/file/{queryId}/status tiene la siguiente interfaz:
...
Por ejemplo:
...
Borrado de ficheros
En el caso de que el resultado no sea almacenado en S3 (MinIO), el fichero quedará accesible durante un tiempo máximo de 1 hora. Transcurrido ese tiempo, el fichero será borrado y si no se ha descargado, será necesario volver a lanzar la sentencia.