Share via


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.