Выполнение запросов KQL и хранимых функций с эмуляцией SQL Server
Azure Data Explorer предоставляет конечную точку Stream табличных данных (TDS), которая позволяет запрашивать данные так же, как в SQL Server. Конечная точка поддерживает TDS версий 7.x и 8.0.
В этой статье вы узнаете, как выполнять хранимые функции и язык запросов Kusto (KQL) запросы из клиента, совместимого с SQL.
Примечание
Сведения в этой статье относятся к выполнению параметризованных вызовов по протоколу TDS, также известному как вызовы RPC.
Дополнительные сведения см. в обзоре эмуляции SQL Server в Azure Data Explorer.
Выполнение запросов KQL
Хранимую процедуру sp_execute_kql
SQL можно использовать для выполнения запросов KQL , включая параметризованные запросы. Процедура аналогична хранимой процедуре sp_executesql
.
Примечание
Процедуру sp_execute_kql
можно вызвать только через вызов RPC, как показано в следующем примере, но не из обычного SQL-запроса.
Первым параметром sp_execute_kql
является запрос KQL, а все остальные параметры обрабатываются как параметры запроса. В следующем примере показано, как использовать 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.
}
}
}
Примечание
При вызове sp_execute_kql
через TDS типы параметров задаются протоколом и не должны объявляться.
Вызов хранимых функций
Вы можете создавать и вызывать хранимые функции, такие как хранимые процедуры SQL. Например, если у вас есть хранимая функция, как описано в следующей таблице, ее можно вызвать, как показано в примере кода.
Название | Параметры | Текст | Папка | DocString |
---|---|---|---|---|
MyFunction | (myLimit: long) | {StormEvents | take myLimit} | MyFolder | Демонстрационная функция с параметром |
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.
}
}
}
Примечание
Чтобы различать хранимые функции и эмулированные системные хранимые процедуры SQL, вызовите хранимые функции с явной ссылкой на схему kusto
. В этом примере хранимая функция вызывается с помощью kusto.Myfunction
.
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по