Executar consultas KQL e funções armazenadas com SQL Server emulação
O Azure Data Explorer fornece um ponto final de Stream de Dados Tabulares (TDS) que lhe permite consultar dados de uma forma semelhante à forma como consultaria dados em SQL Server. O ponto final suporta as versões TDS 7.x e 8.0.
Neste artigo, irá aprender a executar funções armazenadas e Linguagem de Pesquisa Kusto consultas (KQL) a partir de um cliente compatível com SQL.
Nota
As informações neste artigo aplicam-se à execução de chamadas parametrizadas através do protocolo TDS, também conhecido como chamadas RPC.
Para obter mais informações, veja a descrição geral sobre SQL Server emulação no Azure Data Explorer.
Executar consultas KQL
O procedimento sp_execute_kql
armazenado do SQL pode ser utilizado para executar consultas KQL , incluindo consultas parametrizadas. O procedimento é semelhante ao sp_executesql
procedimento armazenado.
Nota
O sp_execute_kql
procedimento só pode ser chamado através de uma chamada RPC, conforme mostrado no exemplo seguinte e não a partir de uma consulta SQL normal.
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 seguinte mostra como utilizar 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.
}
}
}
Nota
Ao chamar sp_execute_kql
através do TDS, os tipos de parâmetros são definidos pelo protocolo e não precisam de ser declarados.
Funções armazenadas de chamadas
Pode criar e chamar funções armazenadas, como procedimentos armazenados do SQL. Por exemplo, se tiver uma função armazenada, conforme descrito na tabela seguinte, pode chamá-la como mostrado no exemplo de código.
Name | 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.
}
}
}
Nota
Para distinguir entre funções armazenadas e procedimentos armazenados do sistema SQL emulado, chame as funções armazenadas com uma referência explícita ao kusto
esquema. No exemplo, a função armazenada é chamada com kusto.Myfunction
.