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. Las instrucciones Let se pueden usar para dividir una consulta larga en elementos pequeños con nombre que son más fáciles de entender.

Por ejemplo, las instrucciones let de la consulta siguiente se usan 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 se puede encontrar en la documentación de KQL oficial. 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. Las funciones definidas por el usuario se pueden dividir 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, las consultas se pueden guardar 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")