Compartir vía


Introducción al Lenguaje de consulta de Kusto

Se aplica a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

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 y 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. KQL es óptimo para consultar telemetría, métricas y registros con compatibilidad profunda con búsqueda de texto y análisis, operadores y funciones de series temporales, análisis y agregación, geoespaciales, búsquedas de similitud vectorial 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 SQL: bases de datos, tablas y columnas.

Si tiene un fondo en el scripting o en el trabajo con bases de datos, gran parte del contenido de este artículo debería familiarizarse. Si no es así, no se preocupe, ya que la naturaleza intuitiva del lenguaje le permite empezar a escribir rápidamente sus propias consultas y a impulsar el valor de su organización.

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: Obtenga información sobre los operadores comunes.

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 el conjunto de consultas KQL de . Para obtener información sobre cómo usar KQL, consulte Tutorial: Obtenga información sobre los operadores comunes.

KQL también es el lenguaje que se usa para trabajar con datos y manipularlos en Microsoft Sentinel. Los registros que se alimentan en el área de trabajo no sirven de mucho si no puede analizarlos y obtener la información importante oculta en todos esos datos. KQL no solo tiene la eficacia y flexibilidad para obtener esa información, sino la simplicidad para ayudarle a empezar rápidamente.

En este artículo se presentan los conceptos básicos de KQL, que abarcan algunas de las funciones y operadores más usados, que deben abordar el 75 al 80 % de las consultas que los usuarios escriben día a día. Cuando necesite más profundidad o para ejecutar consultas más avanzadas, puede aprovechar el libro KQL avanzado para Microsoft Sentinel.

¿Por qué KQL para Microsoft Sentinel?

Microsoft Sentinel se basa en el servicio Azure Monitor y usa las áreas de trabajo de Log Analytics de Azure Monitor para almacenar todos sus datos. Estos datos incluyen cualquiera de los siguientes:

  • datos ingeridos de orígenes externos en tablas predefinidas mediante conectores de datos de Microsoft Sentinel,
  • datos ingeridos desde orígenes externos en tablas personalizadas definidas por el usuario, mediante conectores de datos creados personalizados y algunos tipos de conectores integrados.
  • datos creados por Microsoft Sentinel, resultantes de los análisis que crea y realiza, por ejemplo, alertas, incidentes e información relacionada con UEBA,
  • datos cargados en Microsoft Sentinel para ayudar con la detección y el análisis, por ejemplo, fuentes de inteligencia sobre amenazas y listas de control.

KQL se desarrolló como parte del servicio Azure Data Explorer y, por tanto, está optimizado para buscar en almacenes de macrodatos en un entorno de nube. Está diseñado para ayudarle a profundizar en sus datos y explorar sus tesoros ocultos.

KQL también se usa en Azure Monitor y admite características adicionales de Azure Monitor que permiten recuperar, visualizar, analizar y analizar datos en almacenes de datos de Log Analytics. En Microsoft Sentinel, va a usar herramientas basadas en KQL cada vez que esté visualizando y analizando datos y buscando amenazas, ya sea en reglas y libros existentes, o en la creación propia.

Dado que KQL forma parte de casi todo lo que hace en Microsoft Sentinel, una comprensión clara de cómo funciona le ayuda a sacar más partido de su SIEM.

¿Qué es una consulta de Kusto?

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

Una consulta de Kusto no escribe ningún dato. Las consultas se realizan en los datos organizados en una jerarquía de bases de datos, tablas y columnas, de forma similar a SQL.

¿Qué es una instrucción de consulta?

Hay tres tipos de instrucciones de consulta de 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 de instrucción de consulta más común es una expresión tabular instrucción, 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 de , cada una de las cuales comienza con una entrada tabular y devuelve una salida tabular. Los operadores se secuencian mediante una | (canalización). Los flujos de datos, o se canalizan, de un operador a otro. Los datos se filtran o manipulan en cada paso y, a continuación, se introducen en el paso siguiente.

Es como un embudo, donde empieza con una tabla de datos completa. Cada vez que los datos pasan a través de otro operador, se filtran, reorganizan o 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 le deja una salida refinada.

Echemos un vistazo a una consulta de ejemplo.

Ejecutar el de consulta

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

Nota

KQL distingue mayúsculas de minúsculas para todo: nombres de tabla, nombres de columna de tabla, operadores, funciones, etc. Las palabras clave se pueden usar como identificadores encerrandolas entre corchetes y comillas ([' y '] o [" y "]). Por ejemplo, ['where']. Para obtener más información, consulte reglas de nomenclatura de identificadores

Esta consulta tiene una sola instrucción de expresión tabular. La instrucción comienza con una referencia a una tabla denominada stormEvents y contiene varios operadores, where y count, cada uno separado por una canalización. Las filas de datos de la tabla de origen se filtran por el valor de columna StartTime y, a continuación, se filtran por el valor 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 consultas de Kusto más, consulte Tutorial: Escritura de consultas de Kusto.

Comandos de administración

A diferencia de las consultas de Kusto, los comandos de administración de 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 KQL, aunque los dos comparten muchos conceptos. En concreto, los comandos de administración se distinguen de las consultas haciendo que el primer carácter del texto del comando sea 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 clase grande 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 Introducción a 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: