Share via


Hello Kusto: Creación de la primera aplicación

En este artículo aprenderá a:

  • Creación de la primera aplicación cliente
  • Uso de la autenticación interactiva
  • Ejecute una consulta básica que imprima Hello Kusto.

Requisitos previos

Configure el entorno de desarrollo para usar la biblioteca cliente de Kusto.

Creación de una aplicación

En el IDE o editor de texto que prefiera, cree un proyecto o un archivo denominado hello kusto con la convención adecuada para su idioma preferido. Después agregue el siguiente código:

  1. Agregue las clases de generador de cadenas y cliente de Kusto.

    using Kusto.Data;
    using Kusto.Data.Net.Client;
    
  2. Defina una función vacía denominada main y llámala.

    namespace HelloKusto {
      class HelloKusto {
        static void Main(string[] args) {
        }
      }
    }
    
  3. Cree un objeto de generador de cadena de conexión que defina el URI del clúster y establezca el modo de autenticación en interactivo. Para más información sobre el URI del clúster, consulte Cadenas de conexión de Kusto.

    var clusterUri = "https://help.kusto.windows.net/";
    var kcsb = new KustoConnectionStringBuilder(clusterUri).WithAadUserPromptAuthentication();
    

    Nota:

    Para la autenticación interactiva, necesita una cuenta microsoft o una identidad de usuario Microsoft Entra. No se necesita una suscripción a Azure.

    En C#, es posible que el proceso de autenticación interactiva no solicite al usuario si:

    • El usuario ya está autenticado en el dispositivo
    • Hay una autenticación de interfaz de usuario web de Kusto.Explorer o Azure Date Explorer existente en el dispositivo.
  4. Cree un objeto de cliente que use el objeto de generador de cadena de conexión para conectarse al clúster.

    Nota:

    Se recomienda encarecidamente almacenar en caché y reutilizar la instancia de cliente de Kusto. Con frecuencia, volver a crear clientes de Kusto puede provocar una degradación del rendimiento en la aplicación y una mayor carga en el clúster.

    using (var kustoClient = KustoClientFactory.CreateCslQueryProvider(kcsb)) {
    }
    
  5. Defina la base de datos y la consulta que se va a ejecutar. La consulta imprime Hello Kusto! en una columna denominada Welcome.

    var database = "Samples";
    var query = "print Welcome='Hello Kusto!'";
    
  6. Ejecute la consulta e imprima el resultado.

    using (var response = kustoClient.ExecuteQuery(database, query, null)) {
      response.Read();
      int columnNo = response.GetOrdinal("Welcome");
      Console.WriteLine(response.GetString(columnNo));
    }
    

    Nota

    La salida de la consulta se devuelve en la respuesta como un objeto que contiene una o varias tablas, formadas por unas filas y columnas más. El formato del objeto depende del idioma de la biblioteca cliente.

    La consulta kusto print devuelve una sola tabla con una fila y columna.

    La respuesta es un objeto DataReader . Puede hacer referencia al resultado, como se indica a continuación:

    • Usar el método Read() para leer la primera fila
    • Use el método GetString() para obtener el valor de la primera columna.

El código completo debe tener este aspecto:

using Kusto.Data;
using Kusto.Data.Net.Client;

namespace HelloKusto {
  class HelloKusto {
    static void Main(string[] args) {
      string clusterUri = "https://help.kusto.windows.net/";
      var kcsb = new KustoConnectionStringBuilder(clusterUri).WithAadUserPromptAuthentication();
    
      using (var kustoClient = KustoClientFactory.CreateCslQueryProvider(kcsb)) {
        string database = "Samples";
        string query = "print Welcome='Hello Kusto!'";

        using (var response = kustoClient.ExecuteQuery(database, query, null)) {
          response.Read();
          int columnNo = response.GetOrdinal("Welcome");
          Console.WriteLine(response.GetString(columnNo));
        }
      }
    }
  }
}

Ejecutar la aplicación

En un shell de comandos, use el siguiente comando para ejecutar la aplicación:

# Change directory to the folder that contains the hello world project
dotnet run .

Debería ver un resultado similar al siguiente:

Hello Kusto!

Paso siguiente