Schakelen tussen services met behulp van de vervolgkeuzelijst Versie .
Meer informatie over navigatie.
Van toepassing op: ✅ Microsoft Fabric ✅ Azure Data Explorer
In dit artikel leert u het volgende:
- Uw eerste client-app maken
- Interactieve verificatie gebruiken
- Voer een eenvoudige query uit waarmee Hello Kusto wordt afgedrukt.
Vereiste voorwaarden
Uw ontwikkelomgeving instellen om de Kusto-clientbibliotheek te gebruiken.
Uw app maken
Maak in uw favoriete IDE of teksteditor een project of bestand met de naam hello kusto met behulp van de conventie die geschikt is voor uw voorkeurstaal. Voeg vervolgens de volgende code toe:
Voeg de Kusto-client- en stringbuilderklassen toe.
using Kusto.Data;
using Kusto.Data.Net.Client;
from azure.kusto.data import KustoClient, KustoConnectionStringBuilder
import { Client as KustoClient, KustoConnectionStringBuilder } from "azure-kusto-data";
import { InteractiveBrowserCredentialInBrowserOptions } from "@azure/identity";
Opmerking
Gebruik voor Node.js apps InteractiveBrowserCredentialNodeOptions in plaats van InteractiveBrowserCredentialInBrowserOptions.
import com.microsoft.azure.kusto.data.Client;
import com.microsoft.azure.kusto.data.ClientFactory;
import com.microsoft.azure.kusto.data.KustoOperationResult;
import com.microsoft.azure.kusto.data.KustoResultSetTable;
import com.microsoft.azure.kusto.data.auth.ConnectionStringBuilder;
Definieer een lege functie met de naam main en roep deze aan.
namespace HelloKusto {
class HelloKusto {
static void Main(string[] args) {
}
}
}
def main():
if __name__ == "__main__":
main()
async function main()
{
}
main();
public class HelloKusto
{
public static void main(String[] args) throws Exception {
try {
}
}
}
Maak een opbouwobject voor verbindingsreeksen waarmee de cluster-URI wordt gedefinieerd en stel de verificatiemodus in op interactief. Zie Kusto-verbindingsreeksen voor meer informatie over de cluster-URI.
var clusterUri = "https://help.kusto.windows.net/";
var kcsb = new KustoConnectionStringBuilder(clusterUri).WithAadUserPromptAuthentication();
cluster_uri = "https://help.kusto.windows.net"
kcsb = KustoConnectionStringBuilder.with_interactive_login(cluster_uri)
De clientId en redirectUri komen uit de Microsoft Entra-appregistratie die u maakt in de sectie Vereisten van in de handleiding voor het instellen van uw ontwikkelomgeving.
const clusterUri = "https://help.kusto.windows.net";
const authOptions = {
clientId: "00001111-aaaa-2222-bbbb-3333cccc4444",
redirectUri: "http://localhost:5173",
} as InteractiveBrowserCredentialInBrowserOptions;
const kcsb = KustoConnectionStringBuilder.withUserPrompt(clusterUri, authOptions);
Opmerking
Gebruik voor Node.js apps InteractiveBrowserCredentialNodeOptions in plaats van InteractiveBrowserCredentialInBrowserOptions.
String clusterUri = "https://help.kusto.windows.net/";
ConnectionStringBuilder kcsb = ConnectionStringBuilder.createWithUserPrompt(clusterUri);
Opmerking
Voor interactieve verificatie hebt u een Microsoft-account of een Microsoft Entra-gebruikersidentiteit nodig. Er is geen Azure-abonnement vereist.
In C# wordt de gebruiker mogelijk niet door het interactieve verificatieproces gevraagd als:
- De gebruiker is al geverifieerd op het apparaat
- Er bestaat een bestaande Kusto.Explorer- of Azure Data Explorer-webgebruikersinterfaceverificatie op het apparaat
Maak een clientobject dat gebruikmaakt van het opbouwobject voor verbindingsreeksen om verbinding te maken met het cluster.
Opmerking
Cache en hergebruik het Kusto-clientexemplaar. Het regelmatig opnieuw maken van Kusto-clients kan prestatieproblemen in uw toepassing veroorzaken en de belasting van uw cluster verhogen.
using (var kustoClient = KustoClientFactory.CreateCslQueryProvider(kcsb)) {
}
with KustoClient(kcsb) as kusto_client:
const kustoClient = new KustoClient(kcsb);
try (Client kustoClient = ClientFactory.createClient(kcsb)) {
}
Definieer de database en query die u wilt uitvoeren. De query drukt Hello Kusto! af in een kolom met de naam Welkom.
var database = "Samples";
var query = "print Welcome='Hello Kusto!'";
database = "Samples"
query = "print Welcome='Hello Kusto!'"
const database = "Samples";
const query = "print Welcome='Hello Kusto!'";
String database = "Samples";
String query = "print Welcome='Hello Kusto!'";
Voer de query uit en druk het resultaat af.
using (var response = kustoClient.ExecuteQuery(database, query, null)) {
response.Read();
int columnNo = response.GetOrdinal("Welcome");
Console.WriteLine(response.GetString(columnNo));
}
response = kusto_client.execute(database, query)
print(response.primary_results[0][0]["Welcome"])
const response = await kustoClient.execute(database, query);
console.log(response.primaryResults[0][0]["Welcome"].toString());
KustoOperationResult response = kustoClient.execute(database, query);
KustoResultSetTable primary_results = response.getPrimaryResults();
primary_results.next();
System.out.println(primary_results.getString("Welcome"));
Opmerking
De queryuitvoer komt terug in het antwoord als een object dat een of meer tabellen bevat, samengesteld uit een of meer rijen en kolommen.
De indeling van het object is afhankelijk van de taal van de clientbibliotheek.
De print kusto query retourneert één tabel met één rij en kolom.
Het antwoord is een DataReader-object . U kunt als volgt verwijzen naar het resultaat:
- Gebruik de methode Read() om de eerste rij te lezen
- Gebruik de methode GetString() om de waarde van de eerste kolom op te halen
Het antwoord is het JSON-object met primaire resultaten. Het object bevat een matrix met tabellen, die op zijn beurt een matrix met rijen bevat. Elke rij bevat gegevens die zijn ingedeeld in een woordenlijst met kolommen. U kunt als volgt verwijzen naar het resultaat:
- De eerste matrixindex
[0] verwijst naar de eerste tabel
- De tweede matrixindex
[0] verwijst naar de eerste rij
- De woordenlijstsleutel
["Welcome"] verwijst naar de kolom Welkom
Het antwoord is een KustoOperationResult-object. U kunt als volgt verwijzen naar het resultaat:
- Gebruik de methode getPrimaryResults() om de primaire resultatentabel op te halen
- Gebruik de volgende() methode om de eerste rij te lezen
- Gebruik de methode getString() om de waarde van de eerste kolom op te halen
De volledige code moet er als volgt uitzien:
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));
}
}
}
}
}
from azure.kusto.data import KustoClient, KustoConnectionStringBuilder
def main():
cluster_uri = "https://help.kusto.windows.net"
kcsb = KustoConnectionStringBuilder.with_interactive_login(cluster_uri)
with KustoClient(kcsb) as kusto_client:
database = "Samples"
query = "print Welcome='Hello Kusto!'"
response = kusto_client.execute(database, query)
print(response.primary_results[0][0]["Welcome"])
if __name__ == "__main__":
main()
import { Client as KustoClient, KustoConnectionStringBuilder } from "azure-kusto-data/";
import { InteractiveBrowserCredentialInBrowserOptions } from "@azure/identity";
async function main()
{
const clusterUri = "https://help.kusto.windows.net";
const authOptions = {
clientId: "00001111-aaaa-2222-bbbb-3333cccc4444",
redirectUri: "http://localhost:5173",
} as InteractiveBrowserCredentialInBrowserOptions;
const kcsb = KustoConnectionStringBuilder.withUserPrompt(clusterUri, authOptions);
const kustoClient = new KustoClient(kcsb);
const database = "Samples";
const query = "print Welcome='Hello Kusto!'";
const response = await kustoClient.execute(database, query);
console.log(response.primaryResults[0][0]["Welcome"].toString());
}
main();
Opmerking
Gebruik voor Node.js apps InteractiveBrowserCredentialNodeOptions in plaats van InteractiveBrowserCredentialInBrowserOptions.
import com.microsoft.azure.kusto.data.Client;
import com.microsoft.azure.kusto.data.ClientFactory;
import com.microsoft.azure.kusto.data.KustoOperationResult;
import com.microsoft.azure.kusto.data.KustoResultSetTable;
import com.microsoft.azure.kusto.data.auth.ConnectionStringBuilder;
public class HelloKusto {
public static void main(String[] args) throws Exception {
try {
String clusterUri = "https://help.kusto.windows.net/";
ConnectionStringBuilder kcsb = ConnectionStringBuilder.createWithUserPrompt(clusterUri);
try (Client kustoClient = ClientFactory.createClient(kcsb)) {
String database = "Samples";
String query = "print Welcome='Hello Kusto!'";
KustoOperationResult response = kustoClient.execute(database, query);
KustoResultSetTable primaryResults = response.getPrimaryResults();
primaryResults.next();
System.out.println(primaryResults.getString("Welcome"));
}
}
}
}
Voer uw app uit
Gebruik in een opdrachtshell de volgende opdracht om uw app uit te voeren:
# Change directory to the folder that contains the hello world project
dotnet run .
Gebruik in een Node.js-omgeving de volgende opdracht:
node hello-kusto.js
Gebruik in een browseromgeving de juiste opdracht om uw app uit te voeren. Bijvoorbeeld voor Vite-React:
npm run dev
mvn install exec:java -Dexec.mainClass="<groupId>.HelloKusto"
U zou een resultaat moeten zien dat lijkt op de volgende uitvoer:
Hello Kusto!
Volgende stap