> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wirespeed.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Consultas avanzadas

> Consultas y filtrado avanzados

Use SQL de [ClickHouse](https://clickhouse.com/) para investigar los datos SIEM normalizados producidos por sus integraciones. Wirespeed almacena los campos de evento comunes en tablas tipadas `wspd_*` y conserva la carga útil original del proveedor en su tabla `*_logs` específica de la fuente.

> [!TIP]
>
> Empiece por una tabla normalizada para investigaciones entre fuentes y, a continuación, consulte la tabla de origen indicada en `_wspd_table` cuando necesite campos específicos del proveedor.

## Inicio rápido

Para ejecutar una consulta avanzada, vaya a la página **Eventos** y seleccione el icono  en la esquina superior derecha.

Seleccione **Preguntar a Wirespeed** junto al editor SQL para iniciar el flujo de trabajo **Crear consulta avanzada**. Preguntar a Wirespeed inspecciona sus tablas conectadas, verifica los campos seleccionados, ejecuta una consulta representativa acotada, valida el SQL final y devuelve un botón **Ejecutar** que abre la consulta en Eventos avanzados.

## Esquema

Acote siempre las consultas de eventos con `_wspd_time`. La página Avanzado suministra `{startTime: DateTime64}` y `{endTime: DateTime64}` desde su selector de intervalo temporal.

### Tablas

* `wspd_events` — índice consolidado de eventos de todas las fuentes de registro conectadas
* `wspd_authentication_events` — actividad de inicio de sesión y autenticación normalizada
* `wspd_productivity_events` — actividad de correo electrónico, archivos y colaboración normalizada
* `wspd_dns_events` — actividad DNS normalizada
* `*_logs` — tablas de registros en bruto específicas de la fuente, como `microsoft_entra_signin_logs`

La tabla consolidada `wspd_events` incluye:

| Columna | Descripción |
| - | - |
| `_wspd_id` | Identificador del evento |
| `_wspd_team_id` | Equipo propietario; el ámbito lo aplica automáticamente la seguridad a nivel de fila |
| `_wspd_integration_id` | Identificador de la integración de origen |
| `_wspd_integration_slug` | Tipo de la integración de origen |
| `_wspd_table` | Tabla de origen que contiene la carga útil del proveedor |
| `_wspd_event_type` | Tipo de evento normalizado |
| `_wspd_time` | Marca de tiempo del evento en UTC |
| `_wspd_ingested_at` | Momento en que Wirespeed almacenó el evento |
| `_wspd_observables` | Valores normalizados buscables |

**Campos de wspd\_authentication\_events**

| Columna | Descripción |
| - | - |
| `status` | Resultado de la autenticación, incluidos `SUCCESS` y `FAILURE` |
| `is_mfa` | Indica si el evento implicó MFA |
| `actor_email` | Correo electrónico del usuario que se autentica |
| `actor_username` | Nombre de usuario que se autentica |
| `src_ip` | Dirección IP de origen |
| `src_ip_country` | País de origen enriquecido |
| `src_ip_asn_number` | ASN de origen enriquecido |
| `src_ip_asn_name` | Nombre de red de origen enriquecido |
| `src_ip_vpn` | Indicador de VPN |
| `src_ip_proxy` | Indicador de proxy |
| `src_ip_tor` | Indicador de Tor |
| `src_ip_relay` | Indicador de relay |
| `user_agent` | Agente de usuario de origen |
| `session_uid` | Identificador de la sesión de autenticación |

### Ejemplos

**Contar eventos por tipo normalizado**

```sql theme={null}
SELECT
    _wspd_event_type,
    count(*) AS event_count
FROM wspd_events
WHERE _wspd_time >= {startTime: DateTime64}
    AND _wspd_time < {endTime: DateTime64}
GROUP BY _wspd_event_type
ORDER BY event_count DESC;
```

**Buscar actividad de autenticación fallida**

```sql theme={null}
SELECT
    _wspd_time,
    actor_email,
    src_ip,
    src_ip_country,
    user_agent,
    message
FROM wspd_authentication_events
WHERE status = 'FAILURE'
    AND _wspd_time >= {startTime: DateTime64}
    AND _wspd_time < {endTime: DateTime64}
ORDER BY _wspd_time DESC
LIMIT 100;
```

**Buscar inicios de sesión correctos desde países no vistos en los 30 días anteriores**

```sql theme={null}
WITH historical_locations AS (
    SELECT DISTINCT
        lower(actor_email) AS actor_email,
        upper(src_ip_country) AS country
    FROM wspd_authentication_events
    WHERE status = 'SUCCESS'
        AND src_ip_country != ''
        AND _wspd_time >= toDateTime({startTime: DateTime64}) - INTERVAL 30 DAY
        AND _wspd_time < {startTime: DateTime64}
)
SELECT
    current._wspd_time,
    current.actor_email,
    current.src_ip,
    current.src_ip_country,
    current.user_agent
FROM wspd_authentication_events AS current
WHERE
    current.status = 'SUCCESS'
    AND current.src_ip_country != ''
    AND current._wspd_time >= {startTime: DateTime64}
    AND current._wspd_time < {endTime: DateTime64}
    AND (lower(current.actor_email), upper(current.src_ip_country)) NOT IN (
        SELECT actor_email, country
        FROM historical_locations
    )
ORDER BY current._wspd_time DESC
LIMIT 100;
```

### Valores nulos

La mayoría de los campos normalizados usan tipos no anulables. Las cadenas ausentes se representan con `''`, mientras que los valores numéricos ausentes usan el valor predeterminado de la columna.

### Marcas de tiempo

Todas las marcas de tiempo se almacenan y presentan en UTC.

## Límites de recursos

* **2000** filas por consulta interactiva
* **4GB** de memoria por consulta
* **60s** de tiempo de ejecución por consulta

Las [detecciones personalizadas](https://docs.wirespeed.co/es/events/custom-detections.md) se crean y verifican en Preguntar a Wirespeed con un límite de menos de 100 coincidencias en la última hora y un techo de ejecución de 7,5 segundos.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.