Transformaciones de datos
Una de las características en tiempo real de la aplicación de tareas pendientes es mostrar la lista de usuarios en línea. Necesitamos una manera de buscar esta información según el valor de last_seen
que dice cuándo el usuario estuvo por última vez en línea.
Hasta ahora estábamos construyendo tablas y relaciones. Postgres le permite realizar transformaciones de datos mediante el uso de:
- Vistas
- Funciones SQL
En este ejemplo, vamos a hacer uso de Views
. La aplicación requiere esta vista para encontrar a los usuarios que han iniciado sesión y están en línea en los últimos 30 segundos.
Crear una vista
La instrucción de SQL para crear esta vista es como esto:
CREATE OR REPLACE VIEW "public"."online_users" ASSELECT users.id,users.last_seenFROM usersWHERE (users.last_seen >= (now() - '00:00:30'::interval));
Agregamos esta vista y rastreamos la vista con Hasura para poder consultarla.
Diríjase a Console -> DATA -> página de SQL.
Haga clic en Run
para crear la vista.
Suscripción a los usuarios en línea
Ahora vamos a probar mediante una consulta de suscripción a la vista online_users
.
subscription {online_users {idlast_seen}}
En otra pestaña, actualice el valor last_seen
de un usuario existente para ver la respuesta de suscripción que se está actualizando.
Ingrese el valor como now()
para la columna last_seen
y haga clic en Save
.
Ahora cambie a la pestaña en la que se está ejecutando la consulta de suscripción para ver la respuesta actualizada.
- Build apps and APIs 10x faster
- Built-in authorization and caching
- 8x more performant than hand-rolled APIs