KQL-query's en opgeslagen functies uitvoeren met SQL Server-emulatie
Azure Data Explorer biedt een TDS-eindpunt (Tabular Data Stream) waarmee u query's kunt uitvoeren op gegevens op een manier die vergelijkbaar is met de manier waarop u gegevens in SQL Server opvraagt. Het eindpunt ondersteunt TDS-versies 7.x en 8.0.
In dit artikel leert u hoe u opgeslagen functies uitvoert en KQL-query's (KQL) Kusto-querytaal vanaf een client die compatibel is met SQL.
Notitie
De informatie in dit artikel is van toepassing op het uitvoeren van geparameteriseerde aanroepen via het TDS-protocol, ook wel RPC-aanroepen genoemd.
Zie het overzicht over SQL Server emulatie in Azure Data Explorer voor meer informatie.
KQL-query's uitvoeren
De opgeslagen SQL-procedure sp_execute_kql
kan worden gebruikt om KQL-query's uit te voeren, inclusief geparameteriseerde query's. De procedure is vergelijkbaar met de sp_executesql
opgeslagen procedure.
Notitie
De sp_execute_kql
procedure kan alleen worden aangeroepen via een RPC-aanroep zoals weergegeven in het volgende voorbeeld en niet vanuit een gewone SQL-query.
De eerste parameter van sp_execute_kql
is de KQL-query en eventuele andere parameters worden behandeld als queryparameters. In het volgende voorbeeld ziet u hoe u gebruikt 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.
}
}
}
Notitie
Bij het aanroepen sp_execute_kql
via TDS worden parametertypen ingesteld door het protocol en hoeven ze niet te worden gedeclareerd.
Opgeslagen functies aanroepen
U kunt opgeslagen functies zoals opgeslagen SQL-procedures maken en aanroepen. Als u bijvoorbeeld een opgeslagen functie hebt zoals beschreven in de volgende tabel, kunt u deze aanroepen zoals wordt weergegeven in het codevoorbeeld.
Name | Parameters | Hoofdtekst | Map | DocString |
---|---|---|---|---|
MyFunction | (myLimit: long) | {StormEvents | take myLimit} | MyFolder | Demo-functie met 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.
}
}
}
Notitie
Als u onderscheid wilt maken tussen opgeslagen functies en geƫmuleerde opgeslagen sql-systeemprocedures, roept u opgeslagen functies aan met een expliciete verwijzing naar het kusto
schema. In het voorbeeld wordt de opgeslagen functie aangeroepen met behulp van kusto.Myfunction
.