Uruchamianie zapytań KQL i przechowywanych funkcji przy użyciu emulacji programu SQL Server
Usługa Azure Data Explorer udostępnia punkt końcowy strumienia danych tabelarycznych (TDS), który umożliwia wykonywanie zapytań dotyczących danych w sposób podobny do sposobu wykonywania zapytań dotyczących danych w programie SQL Server. Punkt końcowy obsługuje usługi TDS w wersjach 7.x i 8.0.
W tym artykule dowiesz się, jak uruchamiać przechowywane funkcje i zapytania język zapytań Kusto (KQL) z zgodnego klienta SQL.
Uwaga
Informacje zawarte w tym artykule dotyczą uruchamiania sparametryzowanych wywołań za pośrednictwem protokołu TDS, znanego również jako wywołania RPC.
Aby uzyskać więcej informacji, zobacz omówienie emulacji programu 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żna 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.
Nazwisko | Parametry | Treść | Folder | DocString |
---|---|---|---|---|
MyFunction | (myLimit: long) | {StormEvents | take myLimit} | Mójfolder | Funkcja demonstracyjna 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ć przechowywane funkcje i emulowane procedury składowane systemu SQL, wywołaj funkcje składowane z jawnym odwołaniem do schematu kusto
. W tym przykładzie przechowywana funkcja jest wywoływana przy użyciu polecenia kusto.Myfunction
.