Мощный редактор запросов с поддержкой языка запросов Kusto

#powerquery #azure-data-explorer

#powerquery #azure-data-explorer

Вопрос:

Можете ли вы помочь с передачей параметра из функции power editor в запрос power editor?

Вот часть моего запроса:

 let
    Source = AzureDataExplorer.Contents("mycluster", "mydatabse", "let startTime = datetime(2021-02-26 00:00:00); #(lf)let interval = timespan(24h);
 

Я хочу заменить 24 часа параметром редактора запросов или функцией редактора запросов. Но когда я это делаю, я получаю синтаксические ошибки, так как power editor жалуется, что timespan неправильно отформатирован. Я не знаю, что / как форматировать вставку вызова функции или параметра в приведенном выше коде.

Как бы то ни было, приведенный выше запрос является запросом Kusto (т.Е. Azure data Explorer). Я уже пробовал

промежуток времени ([myparam])
промежуток времени ([{myparam]})
промежуток времени ({myparam})
промежуток времени ([myfunction())

Ничего не работает. 🙁

Ответ №1:

Я предполагаю, что ваш параметр имеет тип Number, который представляет количество часов, которое вы хотели бы установить для переменной «интервал». Самый простой способ справиться с этим — использовать объединение строк:

 Source = AzureDataExplorer.Contents("mycluster", "mydatabse", "let startTime = datetime(2021-02-26 00:00:00); #(lf)let interval = timespan(" amp; MyIntervalParameter amp; "h);")
 

Другой альтернативой является использование M’s Text.Format (https://docs.microsoft.com/en-us/powerquery-m/text-format ) функция:

 Query = Text.Format(
    "let startTime = datetime(2021-02-26 00:00:00); #(lf)let interval = timespan(#[interval]h);",
    [
        interval = MyIntervalParameter
    ]),
Source = AzureDataExplorer.Contents("mycluster", "mydatabse", Query)
 

Комментарии:

1. Интересный формат. Я собираюсь попробовать это сейчас. Кстати, я намеренно установил для типов значение (a) String, а затем (b) Any. Но я вижу обалденное форматирование, которое вы сделали выше. Попробую это сейчас. Огромное спасибо. Надеюсь, это сработает. Я скоро отвечу со своими выводами