Tipos de consultas de KQL

Completado

En la unidad anterior ha obtenido información sobre la estructura de una consulta KQL. Ahora vamos a profundizar en las distintas partes y tipos de consultas KQL.

En esta unidad, se proporciona información general sobre las funciones e instrucciones de consulta. En KQL, todas las consultas constan de una o varias consultas de consulta. Estas instrucciones solo afectan a la consulta específica en la que se usan, a menos que se almacenen explícitamente para su uso futuro. Los tipos más comunes de instrucciones de consulta son las instrucciones de expresión tabular y las instrucciones Let. Además de su amplia biblioteca de funciones integradas, KQL permite funciones definidas por el usuario que se pueden almacenar o definir para su uso en una consulta única.

Instrucciones de expresiones tabulares

La mayoría de las consultas usan al menos una instrucción de expresión tabular, lo que significa que tanto la entrada como la salida constan de tablas o conjuntos de datos tabulares. Estas instrucciones suelen contener operadores, cada uno de los cuales comienza con una entrada tabular y devuelve una salida tabular.

KQL proporciona una amplia variedad de operadores, que van de operadores simples (como count, sort y where) a operadores más complejos (como parse, join y render).

Por ejemplo, la consulta siguiente contiene cuatro instrucciones de expresión tabular:

StormEvents // tabular expression statement 1
| where EventType == "Flood" // tabular expression statement 2
| sort by DamageProperty asc // tabular expression statement 3
| take 10 // tabular expression statement 4

Instrucciones let

Una instrucción let define un enlace entre un nombre y una expresión. Puede usar instrucciones let para dividir una consulta larga en pequeños elementos con nombre que sean más fáciles de entender.

Por ejemplo, usamos las instrucciones let en la consulta siguiente para definir valores escalares:

let n = 10;  // number
let place = "VIRGINIA";  // string
let cutoff = ago(12345d); // datetime 
StormEvents 
| where StartTime > cutoff and State == place 
| take n

Funciones integradas

Las funciones integradas son funciones codificadas de forma rígida definidas por KQL que no se pueden modificar. KQL tiene una amplia biblioteca de funciones disponibles para su uso, que puede encontrar en la documentación oficial de KQL. Las funciones van desde la coincidencia y ordenación simple a funciones estadísticas complejas y geoespaciales.

Por ejemplo, la función strcat() siguiente concatena argumentos de cadena:

print str = strcat("hello", " ", "world")

Funciones definidas por el usuario

Las funciones definidas por el usuario son, como sugiere su nombre, definidas por el usuario. Podemos dividir las funciones definidas por el usuario en dos tipos:

  • Funciones almacenadas: funciones definidas por el usuario que son entidades de esquema de bases de datos almacenadas y administradas, similares a las tablas. Los distintos productos usan distintas formas para almacenar funciones.

    Por ejemplo, la consulta siguiente en Azure Data Explorer almacena una función que toma un parámetro:

    .create function
    with (docstring = 'Demo function with parameter', folder='Demo')
     MyFunction2(myLimit: long)  {StormEvents | take myLimit}
    

    En otros entornos, como Azure Monitor y Microsoft Sentinel, puede guardar consultas a través de la interfaz de usuario.

  • Funciones definidas por consulta: funciones definidas por el usuario que se definen y usan dentro del ámbito de una consulta única. La definición de estas funciones se realiza mediante una instrucción Let.

    Por ejemplo, la consulta siguiente define la función f y, luego, la utiliza:

    let f=(a: string, b: string) {
        strcat(a, " (la la la) ", b)
    };
    print f("hello", "world")