Executar consultas KQL e funções armazenadas com SQL Server emulação
O Azure Data Explorer fornece um ponto de extremidade de Stream de Dados Tabulares (TDS) que permite consultar dados de maneira semelhante à maneira como você consultaria dados em SQL Server. O ponto de extremidade dá suporte às versões 7.x e 8.0 do TDS.
Neste artigo, você aprenderá a executar funções armazenadas e consultas KQL (Linguagem de Consulta Kusto) de um cliente compatível com SQL.
Observação
As informações neste artigo se aplicam à execução de chamadas parametrizadas pelo protocolo TDS, também conhecido como chamadas RPC.
Para obter mais informações, consulte a visão geral sobre SQL Server emulação no Azure Data Explorer.
Executar consultas KQL
O procedimento sp_execute_kql
armazenado SQL pode ser usado para executar consultas KQL , incluindo consultas parametrizadas. O procedimento é semelhante ao sp_executesql
procedimento armazenado.
Observação
O sp_execute_kql
procedimento só pode ser chamado por meio de uma chamada RPC, conforme mostrado no exemplo a seguir e não de dentro de uma consulta SQL regular.
O primeiro parâmetro de sp_execute_kql
é a consulta KQL e quaisquer outros parâmetros são tratados como parâmetros de consulta. O exemplo a seguir mostra como usar 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.
}
}
}
Observação
Ao chamar sp_execute_kql
via TDS, os tipos de parâmetro são definidos pelo protocolo e não precisam ser declarados.
Chamar funções armazenadas
Você pode criar e chamar funções armazenadas , como procedimentos armazenados do SQL. Por exemplo, se você tiver uma função armazenada conforme descrito na tabela a seguir, poderá chamá-la conforme mostrado no exemplo de código.
Nome | Parâmetros | Corpo | Pasta | DocString |
---|---|---|---|---|
Myfunction | (myLimit: long) | {StormEvents | take myLimit} | MyFolder | Função de demonstração com parâmetro |
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.
}
}
}
Observação
Para distinguir entre funções armazenadas e procedimentos armazenados do sistema SQL emulados, chame funções armazenadas com uma referência explícita ao kusto
esquema. No exemplo, a função armazenada é chamada usando kusto.Myfunction
.
Conteúdo relacionado
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de