你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在本文中,学习如何:
- 创建第一个客户端应用
- 使用交互式身份验证
- 运行一个输出 Hello Kusto! 的基本查询
先决条件
设置开发环境 以使用 Kusto 客户端库。
创建应用
在首选的 IDE 或文本编辑器中,使用适用于首选语言的约定创建一个名为 hello kusto 的项目或文件。 然后添加以下代码:
添加 Kusto 客户端和字符串生成器类。
using Kusto.Data; using Kusto.Data.Net.Client;定义名为
main的空函数并调用它。namespace HelloKusto { class HelloKusto { static void Main(string[] args) { } } }创建一个连接字符串生成器对象,该对象定义群集 URI 并将身份验证模式设置为交互式。 有关群集 URI 的详细信息,请参阅 Kusto 连接字符串。
var clusterUri = "https://help.kusto.windows.net/"; var kcsb = new KustoConnectionStringBuilder(clusterUri).WithAadUserPromptAuthentication();注意
对于交互式身份验证,需要一个Microsoft帐户或Microsoft Entra 用户标识。 不需要 Azure 订阅。
在 C# 中,如果出现以下问题,交互式身份验证过程可能不会提示用户:
- 已在设备上对用户进行身份验证
- 设备上存在现有的 Kusto.Explorer 或 Azure Data Explorer Web UI 身份验证
创建使用连接字符串生成器对象的客户端对象连接到群集。
注意
强烈建议缓存并重复使用 Kusto 客户端实例。 经常重新创建 Kusto 客户端可能会导致应用程序性能下降,并增加群集上的负载。
using (var kustoClient = KustoClientFactory.CreateCslQueryProvider(kcsb)) { }定义要运行的数据库和查询。 该查询在名为 Welcome 的列中输出 Hello Kusto!。
var database = "Samples"; var 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)); }注意
查询输出在响应中作为包含一个或多个表的对象返回,这些表由一行和列组成。 对象的格式取决于客户端库语言。
print kusto 查询返回单个包含一行和一列的表。
响应是 DataReader 对象。 你可以引用结果,如下所示:
完整的代码应如下所示:
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!