Exécuter des requêtes KQL et des fonctions stockées avec l’émulation SQL Server
Azure Data Explorer fournit un point de terminaison TDS (Tabular Data Stream) qui vous permet d’interroger des données d’une manière similaire à la façon dont vous interrogeriez des données dans SQL Server. Le point de terminaison prend en charge TDS versions 7.x et 8.0.
Dans cet article, vous allez apprendre à exécuter des fonctions stockées et des requêtes Langage de requête Kusto (KQL) à partir d’un client compatible SQL.
Remarque
Les informations contenues dans cet article s’appliquent à l’exécution d’appels paramétrables sur le protocole TDS, également appelées appels RPC.
Pour plus d’informations, consultez la vue d’ensemble de l’émulation SQL Server dans Azure Data Explorer.
Exécuter des requêtes KQL
La procédure sp_execute_kql
stockée SQL peut être utilisée pour exécuter des requêtes KQL , notamment des requêtes paramétrables. La procédure est similaire à la sp_executesql
procédure stockée.
Remarque
La sp_execute_kql
procédure peut uniquement être appelée via un appel RPC, comme indiqué dans l’exemple suivant et non à partir d’une requête SQL standard.
Le premier paramètre de sp_execute_kql
la requête KQL et tous les autres paramètres sont traités comme des paramètres de requête. L'exemple suivant montre comment utiliser 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.
}
}
}
Remarque
Lors de l’appel sp_execute_kql
via TDS, les types de paramètres sont définis par le protocole et n’ont pas besoin d’être déclarés.
Appeler des fonctions stockées
Vous pouvez créer et appeler des fonctions stockées telles que des procédures stockées SQL. Par exemple, si vous avez une fonction stockée comme décrit dans le tableau suivant, vous pouvez l’appeler comme indiqué dans l’exemple de code.
Nom | Paramètres | Corps | Dossier | DocString |
---|---|---|---|---|
MyFunction | (myLimit: long) | {StormEvents | take myLimit} | MyFolder | Demo function with 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.
}
}
}
Remarque
Pour faire la distinction entre les fonctions stockées et les procédures stockées système SQL émulées, appelez les fonctions stockées avec une référence explicite au kusto
schéma. Dans l’exemple, la fonction stockée est appelée à l’aide kusto.Myfunction
de .