Ausführen von KQL-Abfragen und gespeicherten Funktionen mit SQL Server Emulation
Azure Data Explorer stellt einen TDS-Endpunkt (Tabular Data Stream) bereit, mit dem Sie Daten ähnlich wie in SQL Server abfragen können. Der Endpunkt unterstützt die TDS-Versionen 7.x und 8.0.
In diesem Artikel erfahren Sie, wie Sie gespeicherte Funktionen und Kusto-Abfragesprache -Abfragen (KQL) von einem SQL-kompatiblen Client ausführen.
Hinweis
Die Informationen in diesem Artikel gelten für die Ausführung parametrisierter Aufrufe über das TDS-Protokoll, die auch als RPC-Aufrufe bezeichnet werden.
Weitere Informationen finden Sie in der Übersicht über SQL Server Emulation in Azure Data Explorer.
Ausführen von KQL-Abfragen
Die gespeicherte SQL-Prozedur sp_execute_kql
kann verwendet werden, um KQL-Abfragen auszuführen, einschließlich parametrisierter Abfragen. Die Prozedur ähnelt der gespeicherten sp_executesql
Prozedur.
Hinweis
Die sp_execute_kql
Prozedur kann nur über einen RPC-Aufruf aufgerufen werden, wie im folgenden Beispiel gezeigt, und nicht über eine reguläre SQL-Abfrage.
Der erste Parameter von sp_execute_kql
ist die KQL-Abfrage, und alle anderen Parameter werden als Abfrageparameter behandelt. Das folgende Beispiel veranschaulicht die Verwendung von sp_execute_kql
.
using (var connection = new SqlConnection(csb.ToString()))
{
await connection.OpenAsync();
using (var command = new SqlCommand("sp_execute_kql", connection))
{
command.CommandType = CommandType.StoredProcedure;
var query = new SqlParameter("@kql_query", SqlDbType.NVarChar);
command.Parameters.Add(query);
var parameter = new SqlParameter("mylimit", SqlDbType.Int);
command.Parameters.Add(parameter);
query.Value = "StormEvents | take myLimit";
parameter.Value = 3;
using (var reader = await command.ExecuteReaderAsync())
{
// Read the response.
}
}
}
Hinweis
Beim Aufrufen sp_execute_kql
über TDS werden Parametertypen vom Protokoll festgelegt und müssen nicht deklariert werden.
Aufrufen gespeicherter Funktionen
Sie können gespeicherte Funktionen wie gespeicherte SQL-Prozeduren erstellen und aufrufen. Wenn Sie beispielsweise über eine gespeicherte Funktion verfügen, wie in der folgenden Tabelle beschrieben, können Sie sie aufrufen, wie im Codebeispiel gezeigt.
Name | Parameter | Text | Ordner | DocString |
---|---|---|---|---|
Myfunction | (myLimit: long) | {StormEvents | take myLimit} | MyFolder | Demofunktion mit Parameter |
using (var connection = new SqlConnection(csb.ToString()))
{
await connection.OpenAsync();
using (var command = new SqlCommand("kusto.MyFunction", connection))
{
command.CommandType = CommandType.StoredProcedure;
var parameter = new SqlParameter("mylimit", SqlDbType.Int);
command.Parameters.Add(parameter);
parameter.Value = 3;
using (var reader = await command.ExecuteReaderAsync())
{
// Read the response.
}
}
}
Hinweis
Um zwischen gespeicherten Funktionen und emulierten gespeicherten SQL-Systemprozeduren zu unterscheiden, rufen Sie gespeicherte Funktionen mit einem expliziten Verweis auf das kusto
Schema auf. Im Beispiel wird die gespeicherte Funktion mit kusto.Myfunction
aufgerufen.
Verwandte Inhalte
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für