Libreria client KustoKusto client library

Kusto Client SDK (Kusto.Data) espone un'API a livello di codice simile a ADO.NET, pertanto l'utilizzo dovrebbe essere naturale per coloro che hanno esperienza con .NET.The Kusto Client SDK (Kusto.Data) exposes a programmatic API similar to ADO.NET, so using it should feel natural for those experienced with .NET. Creare un client diICslQueryProviderquery ( )ICslAdminProvidero un provider di comandi di controllo ( ) da un oggetto stringa di connessione che punta al servizio del motore Kusto, database, metodo di autenticazione e così via. È quindi possibile eseguire query di dati o comandi di controllo specificando la stringa del linguaggio IDataReader di query Kusto appropriata e ottenere una o più tabelle di dati tramite l'oggetto restituito.You create either a query client (ICslQueryProvider) or a control command provider (ICslAdminProvider) from a connection string object pointing at the Kusto engine service, database, authentication method, etc. You can then issue data queries or control commands by specifying the appropriate Kusto query language string, and get back one or more data tables via the returned IDataReader object.

Più concretamente, per creare un client simile a ADO.NET Kusto.Data.Net.Client.KustoClientFactory che consenta le query su Kusto, utilizzare metodi statici sulla classe.More concretely, to create an ADO.NET-like client allowing queries against Kusto, use static methods on the Kusto.Data.Net.Client.KustoClientFactory class. Prendono la stringa di connessione e creano un oggetto client thread-safe, eliminabile.These take the connection string and create a thread-safe, disposable, client object. (È consigliabile che il codice client non crei "troppe" istanze di questo oggetto.(It's strongly recommended that client code does not create "too many" instances of this object. Al contrario, il codice client deve creare un oggetto per ogni stringa di connessione e mantenerlo per tutto il tempo necessario.) Ciò consente all'oggetto client di memorizzare in modo efficiente le risorse nella cache.Instead, client code should create an object per connection string and hold on to it for as long as necessary.) This allows the client object to efficiently cache resources.

In generale, tutti i metodi sui client sono Disposethread-safe con due eccezioni: le proprietà e setter .In general, all methods on the clients are thread-safe with two exceptions: Dispose, and setter properties. Per risultati coerenti, non richiamare contemporaneamente entrambi i metodi.For consistent results, do not invoke either methods concurrently.

Di seguito sono riportati alcuni esempi.Following are a few examples. Ulteriori campioni possono essere trovati qui.Additional samples can be found here.

Esempio: conteggio delle righeExample: Counting RowsExample: Counting Rows

Nel codice seguente viene illustrato il StormEvents conteggio delle Samplesrighe di una tabella denominata in un database denominato :The following code demonstrates counting the rows of a table named StormEvents in a database named Samples:

var client = Kusto.Data.Net.Client.KustoClientFactory.CreateCslQueryProvider("https://help.kusto.windows.net/Samples;Fed=true");
var reader = client.ExecuteQuery("StormEvents | count");
// Read the first row from reader -- it's 0'th column is the count of records in MyTable
// Don't forget to dispose of reader when done.

Esempio: Recupero delle informazioni di diagnostica dal cluster KustoExample: Getting diagnostics info from the Kusto clusterExample: Getting diagnostics info from the Kusto cluster

var kcsb = new KustoConnectionStringBuilder(cluster URI here). WithAadUserPromptAuthentication();
using (var client = KustoClientFactory.CreateCslAdminProvider(kcsb))
{
    var diagnosticsCommand = CslCommandGenerator.GenerateShowDiagnosticsCommand();
    var objectReader = new ObjectReader<DiagnosticsShowCommandResult>(client.ExecuteControlCommand(diagnosticsCommand));
    DiagnosticsShowCommandResult diagResult = objectReader.ToList().FirstOrDefault();
    // DO something with the diagResult    
}

La factory client KustoClientFactoryThe KustoClientFactory client factory

La classe Kusto.Data.Net.Client.KustoClientFactory statica fornisce il punto di ingresso principale per gli autori di codice client che utilizza Kusto.The static class Kusto.Data.Net.Client.KustoClientFactory provides the main entry point for authors of client code that utilizes Kusto. Fornisce i seguenti importanti metodi statici:It provides the following important static methods:

MetodoMethod Valori di codice restituitiReturns UtilizzoUsed for
CreateCslQueryProvider ICslQueryProvider Invio di query a un cluster di motori Kusto.Sending queries to a Kusto engine cluster.
CreateCslAdminProvider ICslAdminProvider Invio di comandi di controllo a un cluster Kusto (di qualsiasi tipo).Sending control commands to a Kusto cluster (of any kind).
CreateRedirectProvider IRedirectProvider Creazione di un messaggio di risposta HTTP di reindirizzamento per una richiesta Kusto.Creating a redirect HTTP response message for a Kusto request.