Información general del Lenguaje de consulta de Kusto (KQL)

Lenguaje de consulta Kusto (KQL) es una potente herramienta para explorar los datos y detectar patrones, identificar anomalías y valores atípicos, crear modelado estadístico, etc. KQL es un lenguaje sencillo pero eficaz para consultar datos estructurados, semiestructurados y no estructurados. El lenguaje es expresivo, fácil de leer y comprender la intención de consulta y está optimizado para experiencias de creación. Lenguaje de consulta Kusto es óptimo para consultar telemetría, métricas y registros con compatibilidad profunda con la búsqueda y análisis de texto, operadores y funciones de serie temporal, análisis y agregación, búsquedas geoespaciales, de similitud de vectores y muchas otras construcciones de lenguaje que proporcionan el lenguaje más óptimo para el análisis de datos. La consulta usa entidades de esquema organizadas en una jerarquía similar a las SQLs: bases de datos, tablas y columnas.

En este artículo se proporciona una explicación del lenguaje de consulta y se ofrecen ejercicios prácticos para empezar a escribir consultas. Para acceder al entorno de consulta, use la interfaz de usuario web de Azure Data Explorer. Para obtener información sobre cómo usar KQL, consulte Tutorial: Aprender operadores comunes.

¿Qué es una consulta de Kusto?

Una consulta de Kusto es una solicitud de solo lectura para procesar los datos y devolver resultados. La solicitud se indica en texto sin formato, usando un modelo de flujo de datos fácil de leer, crear y automatizar. Las consultas de Kusto se realizan de una o varias instrucciones de consulta.

¿Qué es una instrucción de consulta?

Hay tres tipos de instrucciones de consulta de usuario:

Todas las instrucciones de consulta están separadas por un ; (punto y coma) y solo afectan a la consulta a mano.

Nota

Para obtener información sobre las instrucciones de consulta de aplicación, consulte Instrucciones de consulta de aplicación.

El tipo más común de instrucción de consulta es una instrucción de expresión tabular, lo que significa que su entrada y salida constan de tablas o conjuntos de datos tabulares. Las instrucciones tabulares contienen cero o más operadores, cada uno de los cuales comienza con una entrada tabular y devuelve una salida tabular. Los operadores se secuencian mediante | (barra vertical). Los datos fluyen, o se canalizan, de un operador al siguiente. Los datos se filtran o manipulan en cada paso y luego se alimentan al paso siguiente.

Es como un embudo, donde se empieza con una tabla de datos completa. Cada vez que los datos pasan a través de otro operador, se filtran, se reorganizan o se resumen. Dado que la canalización de información de un operador a otro es secuencial, el orden del operador de consulta es importante y puede afectar tanto a los resultados como al rendimiento. Al final del embudo, se obtiene una salida optimizada.

Vamos a ver una consulta de ejemplo.

StormEvents 
| where StartTime between (datetime(2007-11-01) .. datetime(2007-12-01))
| where State == "FLORIDA"  
| count 
Recuento
28

Nota

KQL distingue mayúsculas de minúsculas para todo: nombres de tabla, nombres de columna de tabla, operadores, funciones, etc.

Esta consulta tiene una sola instrucción de expresión tabular. La instrucción comienza con una referencia a una tabla de nombre StormEvents y contiene varios operadores, where y count, cada uno separado por una barra vertical. Las filas de datos de la tabla de origen se filtran por el valor de la columna StartTime y luego por el de la columna State. En la última línea, la consulta devuelve una tabla con una sola columna y una sola fila que contiene el recuento de las filas restantes.

Para probar algunas más consultas de Kusto, consulte Tutorial: Escritura de consultas de Kusto.

Comandos de administración

A diferencia de las consultas de Kusto, los comandos de administración son solicitudes a Kusto para procesar o modificar datos o metadatos. Por ejemplo, el siguiente comando de administración crea una nueva tabla de Kusto con dos columnas Level y Text:

.create table Logs (Level:string, Text:string)

Los comandos de administración tienen su propia sintaxis, que no forma parte de la sintaxis Lenguaje de consulta Kusto, aunque los dos comparten muchos conceptos. En concreto, los comandos de administración se distinguen de las consultas, ya que el primer carácter del texto del comando es el carácter punto (.) (que no puede iniciar una consulta). Esta distinción evita muchos tipos de ataques de seguridad, simplemente porque impide la inserción de comandos de administración dentro de las consultas.

No todos los comandos de administración modifican datos o metadatos. La gran clase de comandos que comienzan por .show se usan para mostrar metadatos o datos. Por ejemplo, el comando .show tables devuelve una lista de todas las tablas de la base de datos actual.

Para obtener más información sobre los comandos de administración, consulte Información general sobre los comandos de administración.

KQL en otros servicios

KQL lo usan muchos otros servicios de Microsoft. Para obtener información específica sobre el uso de KQL en estos entornos, consulte los vínculos siguientes: