Ejecución de consultas KQL y funciones almacenadas con SQL Server emulación
Azure Data Explorer proporciona un punto de conexión de Stream de datos tabulares (TDS) que permite consultar datos de una manera similar a cómo se consultarían los datos en SQL Server. El punto de conexión admite las versiones 7.x y 8.0 de TDS.
En este artículo, aprenderá a ejecutar funciones almacenadas y consultas de Lenguaje de consulta Kusto (KQL) desde un cliente compatible con SQL.
Nota
La información de este artículo se aplica a la ejecución de llamadas parametrizadas a través del protocolo TDS, también conocida como llamadas RPC.
Para más información, consulte la información general sobre SQL Server emulación en Azure Data Explorer.
Ejecución de consultas KQL
El procedimiento sp_execute_kql
almacenado de SQL se puede usar para ejecutar consultas KQL , incluidas las consultas con parámetros. El procedimiento es similar al sp_executesql
procedimiento almacenado.
Nota
Solo sp_execute_kql
se puede llamar al procedimiento a través de una llamada RPC como se muestra en el ejemplo siguiente y no desde dentro de una consulta SQL normal.
El primer parámetro de sp_execute_kql
es la consulta KQL y cualquier otro parámetro se trata como parámetros de consulta. En el ejemplo siguiente se muestra cómo 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
Al llamar a sp_execute_kql
a través de TDS, el protocolo establece los tipos de parámetros y no es necesario declararlos.
Llamada a funciones almacenadas
Puede crear y llamar a funciones almacenadas como procedimientos almacenados de SQL. Por ejemplo, si tiene una función almacenada como se describe en la tabla siguiente, puede llamarla como se muestra en el ejemplo de código.
Nombre | Parámetros | Cuerpo | Carpeta | DocString |
---|---|---|---|---|
MyFunction | (myLimit: long) | {StormEvents | take myLimit} | MyFolder | Función demo con el 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 funciones almacenadas y procedimientos almacenados emulados del sistema SQL, llame a funciones almacenadas con una referencia explícita al kusto
esquema. En el ejemplo, se llama a la función almacenada mediante kusto.Myfunction
.
Contenido relacionado
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente las Cuestiones de GitHub como mecanismo de retroalimentación para el contenido y lo sustituiremos por un nuevo sistema de retroalimentación. Para más información, consulta:Enviar y ver comentarios de