Hello Kusto: 最初のアプリを作成する

この記事では、次の方法について説明します。

  • 最初のクライアント アプリを作成する
  • 対話型認証の使用
  • Hello Kusto を出力する基本的なクエリを実行します。

前提条件

Kusto クライアント ライブラリを使用するように開発環境を設定します。

アプリを作成する

任意の IDE またはテキスト エディターで、任意の言語に適した規則を使用して 、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 アカウントまたはMicrosoft Entraユーザー ID が必要です。 Azure サブスクリプションは不要です。

    C# では、次の場合、対話型認証プロセスでユーザーにプロンプトが表示されないことがあります。

    • ユーザーはデバイスで既に認証されています
    • 既存の Kusto があります。デバイスでの Web UI 認証エクスプローラーエクスプローラーまたは Azure Date
  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));
    }
    

    Note

    クエリ出力は、1 つ以上の行と列で構成される 1 つ以上のテーブルを含むオブジェクトとして応答で返されます。 オブジェクトの形式は、クライアント ライブラリの言語によって異なります。

    印刷 kusto クエリは、1 つの行と列を持つ 1 つのテーブルを返します。

    応答は 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!

次のステップ