Я пытаюсь выполнить запрос KQL для кластера Azure Data Explorer, используя параметры запроса и .NET Kusto SDK.
Я попытался поместить параметры в фигурные скобки {} и без фигурных скобок.
Я прочитал документацию о передаче параметров в запрос, но не могу найти примеров того, как должен выглядеть запрос при передаче в Azure Data Explorer через .NET SDK.
Мой запрос работаетв инструменте Kusto.Explorer, когда я устанавливаю параметры в инструменте, но мне не повезло при использовании SDK.
var queryParameters = new Dictionary<string, string>()
{
{ "myscope", "scope001" },
{ "startdate", "2019-01-01" },
{ "enddate", "2019-01-30" },
{ "author", "Bob Jammo" }
};
var query = @"declare query_parameters (myscope:string, startdate:string, enddate:string, author:string);
Events
| where Scope == ""{myscope}""
and EventTime between (datetime({startdate}) .. datetime({enddate}))
and EventType == ""product""
and User.Email <> """"
| mv-expand Payload.products
| where Payload_products.authors contains ""{author}""
| distinct DeviceId
| count";
using (var client = KustoClientFactory.CreateCslQueryProvider(ConfigurationManager.AppSettings["AdxConnectionString"]))
{
var clientRequestProperties = new Kusto.Data.Common.ClientRequestProperties(
options: null,
parameters: queryParameters);
clientRequestProperties.ClientRequestId = StepsBase.ScenarioScope;
using (var reader = client.ExecuteQuery(query, clientRequestProperties))
{
reader.Read();
return Convert.ToInt32(reader[0]);
}
}
Я получаю ошибку, которая указывает мне, что значение параметра не былоset: "Синтаксическая ошибка: не удалось проанализировать запрос: не удалось проанализировать литерал datetime: 'datetime (startdate)'"