Uruchamianie zapytań KQL i funkcji przechowywanych przy użyciu emulacji SQL Server

Usługa Azure Data Explorer udostępnia punkt końcowy danych tabelarycznych Stream (TDS), który umożliwia wykonywanie zapytań dotyczących danych w sposób podobny do sposobu wykonywania zapytań dotyczących danych w SQL Server. Punkt końcowy obsługuje usługi TDS w wersji 7.x i 8.0.

W tym artykule dowiesz się, jak uruchamiać przechowywane funkcje i zapytania język zapytań Kusto (KQL) z klienta zgodnego z programem SQL.

Uwaga

Informacje zawarte w tym artykule dotyczą uruchamiania sparametryzowanych wywołań za pośrednictwem protokołu TDS, nazywanego również wywołaniami RPC.

Aby uzyskać więcej informacji, zobacz omówienie emulacji SQL Server w usłudze Azure Data Explorer.

Uruchamianie zapytań KQL

Procedura sp_execute_kql składowana SQL może służyć do uruchamiania zapytań KQL , w tym zapytań sparametryzowanych. Procedura jest podobna sp_executesql do procedury składowanej.

Uwaga

Procedura sp_execute_kql może być wywoływana tylko za pośrednictwem wywołania RPC, jak pokazano w poniższym przykładzie, a nie z poziomu zwykłego zapytania SQL.

Pierwszym parametrem sp_execute_kql jest zapytanie KQL, a wszystkie inne parametry są traktowane jako parametry zapytania. W poniższym przykładzie pokazano, jak używać polecenia 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.
      }
    }
  }

Uwaga

Podczas wywoływania sp_execute_kql za pośrednictwem TDS typy parametrów są ustawiane przez protokół i nie muszą być deklarowane.

Wywoływanie funkcji przechowywanych

Możesz tworzyć i wywoływać funkcje składowane , takie jak procedury składowane SQL. Jeśli na przykład masz funkcję przechowywaną zgodnie z opisem w poniższej tabeli, możesz ją wywołać, jak pokazano w przykładzie kodu.

Nazwa Parametry Treść Folder DocString
MyFunction (myLimit: long) {StormEvents | take myLimit} Myfolder Funkcja demo z parametrem
  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.
      }
    }
  }

Uwaga

Aby odróżnić funkcje przechowywane i emulowane procedury składowane systemu SQL, wywołaj funkcje składowane z jawnym odwołaniem do schematu kusto . W przykładzie przechowywana funkcja jest wywoływana przy użyciu polecenia kusto.Myfunction.