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

# Introducción al modo avanzado del Explorador de datos

> Aprenda a escribir consultas personalizadas del Explorador de datos de PlayFab en modo avanzado con el lenguaje de consulta Kusto sobre la tabla events.all para obtener análisis más profundos.

<Info>
  La característica Explorador de datos está en versión preliminar pública. Prevemos cambios continuos en ella a medida que seguimos recopilando comentarios
</Info>

y optimizando para el uso de los clientes.

El modo avanzado del Explorador de datos está diseñado para consultas más complejas y conclusiones más profundas mediante el [lenguaje de consulta de Azure Data Explorer](https://learn.microsoft.com/en-us/azure/data-explorer/write-queries), un lenguaje similar a SQL optimizado para la exploración de datos ad hoc. Para aprender a escribir consultas no técnicas, consulte el tutorial [Introducción al modo básico del Explorador de datos](/services/playfab/data-analytics/learn-data/data-explorer/getting-started-with-data-explorer-basic).

## Creación de consultas personalizadas

Para empezar a crear sus propias consultas en modo avanzado, es importante entender primero la forma de los datos a los que va a acceder.

### La tabla events.all

La tabla `events.all` es el destino predeterminado de todos los eventos entrantes. Es una única tabla semiestructurada con columnas para valores comunes, como la hora y el nombre del evento. Se familiarizará rápidamente con la columna EventData, que contiene la carga JSON original completa y es útil en casi todas las consultas. Puede leer la siguiente documentación sobre la [tabla events.all](/services/playfab/data-analytics/acting-data/schemas-events-all).

### La anatomía de una consulta

Una expresión de consulta suele comenzar con el nombre de la tabla. A esto le sigue el delimitador de canalización (|).
A continuación vienen uno o más operadores. Cada operador se separa con el delimitador de canalización.

<img src="https://mintcdn.com/microsoft-4404708b/MjJ0-cTsb1bpaMcX/images/playfab/data-analytics/learn-data/data-explorer/Explorer4-02.png?fit=max&auto=format&n=MjJ0-cTsb1bpaMcX&q=85&s=d5e7d0ee878b379a5394c91503848ae5" alt="Expresión" width="1893" height="530" data-path="images/playfab/data-analytics/learn-data/data-explorer/Explorer4-02.png" />

Como cuestión de preferencia, una consulta puede expresarse en una sola línea o con un salto de línea antes de cada delimitador de canalización. No supone ninguna diferencia para la propia consulta.

<img src="https://mintcdn.com/microsoft-4404708b/MjJ0-cTsb1bpaMcX/images/playfab/data-analytics/learn-data/data-explorer/Explorer5-02.png?fit=max&auto=format&n=MjJ0-cTsb1bpaMcX&q=85&s=35e6290c6672fcc5d4213851e8bb77a0" alt="Panel de consulta" width="1893" height="530" data-path="images/playfab/data-analytics/learn-data/data-explorer/Explorer5-02.png" />

El panel de consulta puede contener más de una consulta. Esto facilita empezar con una expresión sencilla, validar que se ejecuta e ir ampliándola.

Una línea en blanco separa una consulta de otra. La posición del cursor determina qué consulta se ejecuta al presionar el botón "Run". También puede resaltar una parte de la consulta para ejecutar solo esa expresión.

<img src="https://mintcdn.com/microsoft-4404708b/MjJ0-cTsb1bpaMcX/images/playfab/data-analytics/learn-data/data-explorer/Explorer6-02.png?fit=max&auto=format&n=MjJ0-cTsb1bpaMcX&q=85&s=8dc281806663ec24ce18194a630a6f6a" alt="Ejecutar" width="1893" height="530" data-path="images/playfab/data-analytics/learn-data/data-explorer/Explorer6-02.png" />

### Creación de su primera consulta

Ahora vamos a crear su primera consulta desde cero. Puede escribir el nombre de la tabla en el panel de consulta, pero vamos a usar un pequeño atajo. Busque la tabla `events.all` en el panel de recursos. Es posible que tenga que expandir la base de datos de su identificador de título haciendo clic en la flecha.

<img src="https://mintcdn.com/microsoft-4404708b/MjJ0-cTsb1bpaMcX/images/playfab/data-analytics/learn-data/data-explorer/Explorer7-01.png?fit=max&auto=format&n=MjJ0-cTsb1bpaMcX&q=85&s=402ea5610105562cc10521a401070380" alt="Tabla events.all" width="3000" height="1673" data-path="images/playfab/data-analytics/learn-data/data-explorer/Explorer7-01.png" />

Una vez que haya localizado la tabla `events.all`, haga doble clic en el nombre de la tabla. Observará que esta expresión se ha agregado al panel de consulta.

<Note>
  En la versión preliminar, tendrá que agregar manualmente los corchetes y las comillas simples alrededor del nombre de la tabla. Hay en curso una corrección para este inconveniente.
</Note>

```json theme={null}
['events.all']
| 
```

Observe los corchetes y las comillas simples alrededor del nombre. Siempre que el nombre de la tabla o de la columna incluya un ".", estos son obligatorios. El cursor está ahora en la posición correcta para escribir su primer operador. Empecemos usando el operador take.

```json theme={null}
['events.all']
| take 100
```

Ejecute esta consulta. Observe que el panel de resultados muestra ahora 100 filas de datos sin procesar.

En el panel de resultados, seleccione la fila superior. Con la flecha derecha, desplácese hasta la columna FullName\_Name. Este es el nombre del evento. Baje con la flecha hasta encontrar un evento `player_logged_in`. Una vez que haya encontrado uno, desplácese con la flecha derecha hasta la columna EventData y haga doble clic. Ahora debería ver esto:

<img src="https://mintcdn.com/microsoft-4404708b/MjJ0-cTsb1bpaMcX/images/playfab/data-analytics/learn-data/data-explorer/Explorer8-01.png?fit=max&auto=format&n=MjJ0-cTsb1bpaMcX&q=85&s=c8ace0436fb553607c012902fdeb7a79" alt="Columna Event Data" width="3000" height="1673" data-path="images/playfab/data-analytics/learn-data/data-explorer/Explorer8-01.png" />

Su consulta puede hacer referencia a cualquier propiedad del JSON de EventData mediante la notación de puntos (.). Puede probarlo ahora modificando la consulta para que devuelva solo los eventos player\_logged\_in de un único jugador. Haga doble clic en el GUID de EntityID y cópielo en el portapapeles.

Ahora actualice la consulta de la siguiente manera e inserte el GUID que copió:

```json theme={null}
['events.all']
| where FullName_Name == 'player_logged_in'
| where Entity_Id == 'paste from clipboard here'
```

<Tip>
  Los dobles signos de igual se usan para evaluar la equivalencia de cadenas. Las comillas simples al principio y al final delimitan una cadena.
</Tip>

Ejecute la consulta y verá que el panel de resultados muestra los eventos player\_logged\_in solo para el jugador seleccionado. Puede usar la notación de puntos para hacer referencia a varias capas anidadas de la jerarquía JSON simplemente agregando un punto entre cada capa.

Ahora vamos a crear una segunda consulta para agrupar los inicios de sesión de los jugadores por región. Sin eliminar lo que ha escrito, presione Entrar dos veces. Vamos a agregar un comentario a nuestra siguiente consulta usando "//". Los comentarios no se ejecutan y son útiles para llevar un registro de la intención de cada consulta.

```json theme={null}
//Player logins by platform
```

Una vez más, haga doble clic en la tabla events.all desde el panel de recursos. Esta vez, vamos a agregar un delimitador de tiempo a nuestra expresión para limitar la consulta solo a los últimos tres días.

```json theme={null}
//Player logins by platform
['events.all']
| where Timestamp > ago(30d)
| where FullName_Name == 'player_logged_in'
```

Ejecute esta consulta para obtener una lista completa de todos los eventos de inicio de sesión de los últimos tres días. Sin embargo, queremos saber cuántos jugadores distintos han iniciado sesión, no el recuento de eventos. Para ello, usaremos el operador distinct por identificador de entidad.

```json theme={null}
['events.all']
| where Timestamp > ago(3d)
| where FullName_Name == 'player_logged_in'
| distinct Entity_Id
```

Esta consulta devuelve una lista de los identificadores de entidad que han iniciado sesión durante los últimos tres días. El panel de resultados muestra el número de registros, por lo que podemos ver el recuento total.

<img src="https://mintcdn.com/microsoft-4404708b/MjJ0-cTsb1bpaMcX/images/playfab/data-analytics/learn-data/data-explorer/Explorer9-03.png?fit=max&auto=format&n=MjJ0-cTsb1bpaMcX&q=85&s=4b92787156e8ca61006503aa4edeb049" alt="Registros" width="1888" height="509" data-path="images/playfab/data-analytics/learn-data/data-explorer/Explorer9-03.png" />

Ahora vamos a obtener el recuento de jugadores que han iniciado sesión desde cada plataforma. Para ello, necesitaremos el recuento distinto de identificadores de entidad agrupados por la propiedad platform del JSON de EventData. Esto requiere el operador `summarize`. Dado que `summarize` no admite tipos dinámicos, también tendremos que convertir platform en una cadena.

```json theme={null}
['events.all']
| where Timestamp > ago(3d)
| where FullName_Name == 'player_logged_in'
| summarize dcount(Entity_Id) by tostring(EventData.Platform)
```

Vamos a rematarlo con una floritura. Al agregar una única expresión adicional, podemos representar nuestros resultados como un gráfico de columnas.

```json theme={null}
['events.all']
| where Timestamp > ago(3d)
| where FullName_Name == 'player_logged_in'
| summarize dcount(Entity_Id) by tostring(EventData.Platform)
| render columnchart
```

<img src="https://mintcdn.com/microsoft-4404708b/MjJ0-cTsb1bpaMcX/images/playfab/data-analytics/learn-data/data-explorer/Explorer10-01.png?fit=max&auto=format&n=MjJ0-cTsb1bpaMcX&q=85&s=3d0e560318ada4b6f18f158aeff7d5f6" alt="Consultas" width="3000" height="1673" data-path="images/playfab/data-analytics/learn-data/data-explorer/Explorer10-01.png" />

## Consultas de ejemplo

Apenas hemos arañado la superficie de los tipos de consultas que se pueden crear en el Explorador. Se pueden cargar más consultas de ejemplo desde la página del Explorador presionando "What's This". Cada una de estas consultas de ejemplo se ha elegido para demostrar algunos de los distintos operadores disponibles y cómo se pueden aplicar a preguntas del mundo real.

<Note>
  Dado que la forma de sus datos puede variar con respecto a nuestro conjunto de datos de demostración, es posible que tenga que modificar la consulta de ejemplo para que se ejecute en su escenario.
</Note>

## Límites

Hay dos límites que rigen el uso de las consultas del Explorador:

1. Tiempo máximo de ejecución de la consulta: no se permite que una consulta individual se ejecute durante más de 30 segundos. Si se supera este límite, la consulta se terminará y recibirá un mensaje de error.

2. Uso por intervalo: cada título tiene permitido un tiempo de ejecución total acumulado de tres minutos por cada intervalo de 10 minutos. Si se supera este límite, recibirá un mensaje de error y tendrá que esperar antes de ejecutar más consultas.

## Retención de datos

De forma predeterminada, las consultas del Explorador de datos se ejecutan en el almacenamiento activo, que se puede configurar en la herramienta de administración. Las consultas que buscan más allá de los datos almacenados en el almacenamiento activo tienen tiempos de ejecución significativamente más largos y pueden agotar el tiempo de espera.


## Related topics

- [Inicio rápido del Explorador de datos](/es/services/playfab/data-analytics/learn-data/data-explorer/quickstart.md)
- [Introducción al modo básico del Explorador de datos](/es/services/playfab/data-analytics/learn-data/data-explorer/getting-started-with-data-explorer-basic.md)
- [Explorador de datos](/es/services/playfab/data-analytics/learn-data/data-explorer/index.md)
- [Introducción a Windows Sockets en el GDK](/es/build/console-features/networking/game-mesh/winsock-intro-networking.md)
- [Introducción al empaquetado MSIXVC2 para PC](/es/build/core-features/common/packaging/overviews/packaging-getting-started-for-PC-msixvc2.md)
