Consultas SQL (Presto)
RolAnalistaLectura12 min
Ruta: /logs → Query Editor
Affinity ejecuta tus consultas con **SQL Presto** (SQL estándar): si sabés SQL, ya sabés consultar tus logs.
Para qué sirve
Escribir y ejecutar consultas SQL sobre tus eventos de seguridad. Conocé la sintaxis Presto, las reglas de comillas y los controles de tiempo del editor.
Antes de empezar
- Debe existir al menos una integración con datos ingestados.
- Permiso de acceso a
/logs. - Cada integración expone una tabla (p. ej.
cloudtrail,google_admin,azure_sql_audit).
Pasos
- 1
Andá a LOGS → Query Editor.
- 2
Escribí tu consulta en la pestaña (
Query 1). Ejemplo mínimo:SELECT * FROM "cloudtrail"; - 3
Elegí el rango de tiempo: 1h / 3h / 12h / 1d / 1w / Custom.
- 4
(Opcional) Cambiá la zona horaria con el selector UTC / UTC-3.
- 5
Hacé clic en Run Query (para cancelar una consulta larga: Stop Query → muestra Stopping...).
- 6
El editor pasa a Table View automáticamente para mostrar los resultados.
Resultado esperado
- La tabla muestra las filas del resultado y el contador
{mostrados} / {total} results. - Sección Query Execution Statistics con tiempos y datos escaneados.
Errores comunes
| Síntoma | Qué hacer |
|---|---|
| `No Logs To Display` / `Run a query or adjust filters to see results.` | Ejecutá la consulta o ampliá el rango temporal |
| `No results found` | Ajustá filtros; **Clear search to see all logs** |
| Error de columna/palabra reservada | Encerrá el identificador entre comillas dobles: `"..."` |
| Consulta lenta o costosa | Reducí el rango temporal, seleccioná solo las columnas necesarias y agregá `LIMIT` |
Consejos
- El nombre de la tabla coincide con la integración. Si no recordás las columnas, abrí el Query Builder y mirá la lista de la fuente.
- Para investigar incidentes, podés enviar IOCs desde Incident Response y la consulta se genera automáticamente.
Reglas de sintaxis (Presto)
- Identificadores entre comillas dobles: nombres de tabla y columna van entre
"..."(p. ej.SELECT "activity_name" FROM "cloudtrail"). Es obligatorio cuando el nombre es una palabra reservada. - Literales de texto entre comillas simples:
WHERE "activity_name" = 'ConsoleLogin'. Para escapar una comilla simple, duplicala:'O''Reilly'. - Comodín `LIKE`: usá
%(cualquier secuencia) —WHERE "http_request_url_path" LIKE '%/admin%'. - Listas con `IN`:
WHERE "src_endpoint_ip" IN ('1.2.3.4', '5.6.7.8'). - Filtrar por tiempo:
WHERE "time" BETWEEN ... AND ...(o usá el selector de rango del editor). - Siempre acotá con `LIMIT` mientras explorás (p. ej.
LIMIT 100) para respuestas rápidas y baratas.
Estructura de una consulta
SELECT <columnas> FROM "<tabla>" WHERE <condiciones> GROUP BY <columnas> ORDER BY <columna> [ASC|DESC] LIMIT <n>- Agregaciones disponibles:
COUNT,SUM,AVG,MIN,MAX. - Operadores de filtro:
=,!=,>,<,>=,<=,LIKE,IN,NOT IN,IS NULL,IS NOT NULL.
Herramientas del editor
- Run Query / Stop Query, Clear Query, Format SQL.
- SQL Intellisense Help (autocompletado de tablas y columnas), Lists y Query History (icono de reloj).
- Lists — inserta referencias a lookup tables (
{{nombre_tabla}}) creadas en Management → Lookup Tables (ver Lookup Tables). - Show/Hide Execution Statistics y Share Query (compartir consulta + resultados por enlace).
- Query Builder — si preferís no escribir SQL a mano (ver Query Builder visual).
Lookup tables en consultas (Lists)
- Las lookup tables se gestionan en
/management/lookup-tables, no en Logs. - En el editor, Lists abre un popover para buscar tablas e insertarlas en el SQL.
- Modo recomendado Reference ✦: inserta
({{blocked_ips}})— los valores se resuelven al ejecutar la query. - También podés usar Value list, IN list o WITH CTE para casos ad-hoc en investigación.
- Ejemplo:
WHERE "src_endpoint_ip" NOT IN ({{trusted_ips}})