Поделиться через


Hello Kusto: создание первого приложения

Вы узнаете, как выполнять следующие задачи:

  • Создание первого клиентского приложения
  • Использование интерактивной проверки подлинности
  • Выполните базовый запрос, который выводит Hello Kusto!

Предварительные требования

Настройте среду разработки для использования клиентской библиотеки Kusto.

Создание приложения

В предпочитаемой интегрированной среде разработки или текстовом редакторе создайте проект или файл с именем hello kusto , используя соглашение, подходящее для предпочитаемого языка. Затем добавьте приведенный ниже код.

  1. Добавьте классы клиента Kusto и построитель строк.

    using Kusto.Data;
    using Kusto.Data.Net.Client;
    
  2. Определите пустую функцию с именем main и вызовите ее.

    namespace HelloKusto {
      class HelloKusto {
        static void Main(string[] args) {
        }
      }
    }
    
  3. Создайте объект построителя строка подключения, который определяет универсальный код ресурса (URI) кластера и устанавливает интерактивный режим проверки подлинности. Дополнительные сведения о URI кластера см. в статье Строки подключения Kusto.

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

    Примечание

    Для интерактивной проверки подлинности требуется учетная запись Майкрософт или удостоверение пользователя Microsoft Entra. Подписка Azure не обязательна.

    В C# процесс интерактивной проверки подлинности может не запрашивать пользователя, если:

    • Пользователь уже прошел проверку подлинности на устройстве
    • Существует kusto. Обозреватель или проверка подлинности Обозреватель пользовательского веб-интерфейса Azure на устройстве
  4. Создайте клиентский объект, который использует объект построителя строка подключения для подключения к кластеру.

    Примечание

    Настоятельно рекомендуется кэшировать и повторно использовать экземпляр клиента Kusto. Частое повторное создание клиентов Kusto может привести к снижению производительности приложения и увеличению нагрузки на кластер.

    using (var kustoClient = KustoClientFactory.CreateCslQueryProvider(kcsb)) {
    }
    
  5. Определите базу данных и запрос для выполнения. Запрос выводит Hello Kusto! в столбце Welcome.

    var database = "Samples";
    var query = "print Welcome='Hello Kusto!'";
    
  6. Выполните запрос и выведите результат.

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

    Примечание

    Выходные данные запроса возвращаются в ответе в виде объекта , содержащего одну или несколько таблиц, состоящих из еще одной строки и столбцов. Формат объекта зависит от языка клиентской библиотеки.

    Запрос print kusto возвращает одну таблицу с одной строкой и столбцом.

    Ответом является объект DataReader . На результат можно ссылаться следующим образом:

    • Использование метода Read() для чтения первой строки
    • Используйте метод GetString(), чтобы получить значение первого столбца.

Полный код должен выглядеть следующим образом:

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));
        }
      }
    }
  }
}

Запустите приложение.

В командной оболочке выполните следующую команду, чтобы запустить приложение:

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

Результат должен выглядеть примерно так:

Hello Kusto!

Следующий шаг