Exécuter des requêtes KQL et des fonctions stockées avec SQL Server émulation
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 à celle que vous interrogez dans SQL Server. Le point de terminaison prend en charge les versions TDS 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.
Notes
Les informations contenues dans cet article s’appliquent à l’exécution d’appels paramétrables via le protocole TDS, également appelé appels RPC.
Pour plus d’informations, consultez la vue d’ensemble sur 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 , y compris des requêtes paramétrables. La procédure est similaire à la sp_executesql
procédure stockée.
Notes
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
est 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.
}
}
}
Notes
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 | Fonction de démonstration avec le paramètre |
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.
}
}
}
Notes
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 de kusto.Myfunction
.