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 auf ähnliche Weise abfragen können, wie Sie Daten in SQL Server abfragen würden. Der Endpunkt unterstützt TDS-Versionen 7.x und 8.0.
In diesem Artikel erfahren Sie, wie Gespeicherte Funktionen und Kusto-Abfragesprache (KQL)-Abfragen von einem SQL-kompatiblen Client ausgeführt werden.
Hinweis
Die Informationen in diesem Artikel gelten für die Ausführung parametrisierter Aufrufe über das TDS-Protokoll, auch als RPC-Aufrufe bezeichnet.
Weitere Informationen finden Sie in der Übersicht zur SQL Server-Emulation im Azure-Daten-Explorer.
Ausführen von KQL-Abfragen
Die gespeicherte SQL-Prozedur sp_execute_kql
kann zum Ausführen von KQL-Abfragen verwendet werden, einschließlich parametrisierter Abfragen. Die Prozedur ähnelt der sp_executesql
gespeicherten Prozedur.
Hinweis
Die sp_execute_kql
Prozedur kann nur über einen RPC-Aufruf aufgerufen werden, wie im folgenden Beispiel gezeigt und nicht aus einer regulären SQL-Abfrage.
Der erste Parameter 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 eine gespeicherte Funktion wie in der folgenden Tabelle beschrieben haben, können Sie sie wie im Codebeispiel gezeigt aufrufen.
Name | Parameter | Text | Ordner | DocString |
---|---|---|---|---|
MyFunction | (myLimit: long) | {StormEvents | take myLimit} | MyFolder | Demo-Funktion 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 mithilfe von kusto.Myfunction
.