Поделиться через


Azure Data Explorer (Kusto)

Итоги

Позиция Description
Состояние выпуска Общая доступность
Продукты Excel
Power BI (семантические модели)
Power BI (потоки данных)
Fabric (Dataflow 2-го поколения)
Power Apps (потоки данных)
Dynamics 365 Customer Insights
Поддерживаемые типы проверки подлинности Учетная запись организации
Справочная документация по функциям

Примечание.

Некоторые возможности могут присутствовать в одном продукте, но не другие из-за расписаний развертывания и возможностей для конкретного узла.

Необходимые компоненты

  • Подписка Azure. Перейдите на сайт бесплатной пробной версии Azure.

  • Учетная запись электронной почты организации, являющаяся членом идентификатора Microsoft Entra. В этой статье используется эта учетная запись для подключения к примерам кластера данных Azure Обозреватель справки.

Поддерживаемые возможности

  • Import
  • DirectQuery (семантические модели Power BI)
  • Дополнительные параметры
    • Ограничивает количество записей результатов запроса.
    • Ограничение размера результирующих данных запроса в байтах
    • Отключить усечение результирующего набора
    • Дополнительные инструкции Set

Подключение в Обозреватель данных Azure из Power Query Desktop

Чтобы подключиться к Azure Data Обозреватель из Power Query Desktop:

  1. Выберите Azure Data Обозреватель (Kusto) в интерфейсе получения данных. Взаимодействие с данными в Power Query Desktop зависит от приложений. Дополнительные сведения об использовании Power Query Desktop для вашего приложения см. в раздел " Где получить данные".

  2. В Обозреватель данных Azure (Kusto) укажите имя кластера Обозреватель данных Azure. В этом примере используйте https://help.kusto.windows.net для доступа к примеру кластера справки. Для других кластеров URL-адрес находится в форме https://< ClusterName.<>Регион.kusto.windows.net>.

    Вы также можете выбрать базу данных, размещенную в кластере, к которому вы подключаетесь, и одну из таблиц в базе данных или запрос, например StormEvents | take 1000.

  3. Если вы хотите использовать какие-либо дополнительные параметры, выберите этот параметр и введите данные для использования с этим параметром. Дополнительные сведения: Подключение с помощью дополнительных параметров

    Примечание.

    Чтобы отобразить все расширенные параметры и выбор подключения к данным, может потребоваться прокрутить вниз.

  4. Выберите режим подключения к данным Import или DirectQuery (только Power BI Desktop). Дополнительные сведения: при использовании режима импорта или прямого запроса

  5. Для продолжения выберите ОК.

    Снимок экрана: диалоговое окно Обозреватель данных Azure (Kusto) с URL-адресом для введенного кластера.

  6. Если у вас еще нет подключения к кластеру, нажмите кнопку "Войти". Войдите с помощью учетной записи организации и выберите Подключение.

    Снимок экрана: диалоговое окно входа в Azure Data Обозреватель с учетной записью организации, готовой к входу.

  7. В навигаторе выберите нужную информацию базы данных, а затем выберите "Загрузить", чтобы загрузить данные или преобразовать данные, чтобы продолжить преобразование данных в редакторе Power Query. В этом примере StormEvents был выбран в базе данных Samples.

    Снимок экрана: открытый навигатор и содержащий данные из StormEvents в базе данных Samples.

Подключение данных Azure Обозреватель из Power Query Online

Чтобы подключиться к azure Data Обозреватель из Power Query Online, выполните приведенные действия.

  1. Выберите параметр Azure Data Обозреватель (Kusto) в интерфейсе получения данных. Различные приложения имеют различные способы получения данных в Power Query Online. Дополнительные сведения о том, как получить данные в Power Query Online из приложения, перейдите к разделу " Где получить данные".

    Снимок экрана: окно получения данных с выделенным Обозреватель данных Azure.

  2. В Подключение источнику данных укажите имя кластера Обозреватель данных Azure. В этом примере используйте https://help.kusto.windows.net для доступа к примеру кластера справки. Для других кластеров URL-адрес находится в форме https://< ClusterName.<>Регион.kusto.windows.net>.

    Вы также можете выбрать базу данных, размещенную в кластере, к которому вы подключаетесь, и одну из таблиц в базе данных или запрос, например StormEvents | take 1000.

    Снимок экрана: страница

  3. Если вы хотите использовать какие-либо дополнительные параметры, выберите этот параметр и введите данные для использования с этим параметром. Дополнительные сведения: Подключение с помощью дополнительных параметров

  4. При необходимости выберите локальный шлюз данных в шлюзе данных.

  5. Если у вас еще нет подключения к кластеру, нажмите кнопку "Войти". Войдите с помощью учетной записи организации.

  6. После успешного входа нажмите кнопку "Далее".

  7. На странице "Выбор данных" выберите нужную информацию базы данных, а затем нажмите кнопку "Преобразовать данные" или "Далее", чтобы продолжить преобразование данных в редакторе Power Query. В этом примере StormEvents был выбран в базе данных Samples.

    Снимок экрана: страница выбора данных, содержащая данные из StormEvents в базе данных Samples.

Подключением с использованием дополнительных параметров

Power Query Desktop и Power Query Online предоставляют набор дополнительных параметров, которые можно добавить в запрос при необходимости.

В следующей таблице перечислены все дополнительные параметры, которые можно задать в Power Query Desktop и Power Query Online.

Дополнительный параметр Description
Ограничивает количество записей результатов запроса. Максимальное количество записей, возвращаемых в результате.
Ограничение размера результирующих данных запроса в байтах Максимальный размер данных в байтах, возвращаемых в результате.
Отключить усечение результирующего набора Включите или отключите усечение результатов с помощью notruncation параметра запроса.
Дополнительные инструкции set Определяет продолжительность выполнения запроса. Параметры запроса управляют выполнением запроса и возвращением результатов. Несколько операторов Set можно разделить точкой с запятой.

Дополнительные сведения о дополнительных параметрах, недоступных в пользовательском интерфейсе Power Query, см. в разделе "Настройка параметров соединителя данных Azure Обозреватель" в запросе M.

Когда используется режим импорта или прямого запроса

В режиме Импорт данные перемещаются в Power BI. В режиме DirectQuery данные запрашиваются непосредственно из кластера.

Используйте режим Импорт в следующих случаях.

  • Набор данных невелик.
  • Данные почти в реальном времени не нужны.
  • Данные уже агрегированы или вы выполняете агрегирование в Kusto.

Используйте режим DirectQuery в следующих случаях.

  • Набор данных очень велик.
  • Нужны данные почти в реальном времени.

Дополнительные сведения об использовании DirectQuery см. в разделе "Сведения об использовании DirectQuery" в Power BI.

Советы по запрашиванию данных с использованием соединителя Azure Data Explorer

В следующих разделах приведены советы и рекомендации по использованию языка запросов Kusto с Power Query.

Сложные запросы в Power BI

Сложные запросы более легко выражаются в Kusto, чем в Power Query. Их нужно реализовать как функции Kusto и вызывать в Power BI. Этот метод необходим при использовании в запросе Kusto DirectQuery с утверждениями let. Так как Power BI объединяет два запроса, а let операторы нельзя использовать с оператором join , могут возникать синтаксические ошибки. Следовательно, вам понадобится сохранить каждую часть соединения как функцию Kusto и позволить Power BI соединить эти две функции.

Как смоделировать оператор относительных даты и времени

Power Query не содержит относительный оператор даты и времени, напримерago(). Чтобы имитировать ago(), используйте сочетание функций DateTime.FixedLocalNow и #duration Power Query M.

Вместо этого запроса используйте оператор ago():

    StormEvents | where StartTime > (now()-5d)
    StormEvents | where StartTime > ago(5d)

Используйте следующий эквивалентный запрос:

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", []),
    #"Filtered Rows" = Table.SelectRows(Source, each [StartTime] > (DateTime.FixedLocalNow()-#duration(5,0,0,0)))
in
    #"Filtered Rows"

Настройка параметров соединителя Обозреватель данных Azure в запросе M

Параметры соединителя azure Data Обозреватель можно настроить в расширенном редакторе Power Query на языке запросов M. С помощью этих параметров можно управлять созданным запросом, отправляемым в кластер Azure Data Explorer.

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [<options>])
in
    Source

В запросе M можно использовать любой из следующих вариантов:

Вариант Пример Description
MaxRows [MaxRows=300000] Добавляет инструкцию набора truncationmaxrecords к вашему запросу. Переопределяет максимальное число записей по умолчанию, которые запрос может вернуть вызывающей объекту (усечение).
MaxSize [MaxSize=4194304] Добавляет инструкцию набора truncationmaxsize к вашему запросу. Переопределяет максимальный размер данных по умолчанию, который запрос может вернуть вызывающей стороне (усечение).
NoTruncate [NoTruncate=true] Добавляет инструкцию набора notruncation к вашему запросу. Включает подавление усечения результатов запроса, возвращаемых вызывающей стороне.
AdditionalSetStatements [AdditionalSetStatements="set query_datascope=hotcache"] Добавляет предоставленный набор инструкций к вашему запросу. Эти инструкции используются для задания параметров запроса на время выполнения запроса. Параметры запроса управляют выполнением запроса и возвращением результатов.
CaseInsensitive [CaseInsensitive=true] Создает соединитель запросы, которые являются нечувствительными к регистру— запросы используют =~ оператор вместо == оператора при сравнении значений.
ForceUseContains [ForceUseContains=true] Заставляет соединитель создавать запросы, которые при работе с текстовыми полями вместо стандартного оператора has используют contains. Хотя оператор has гораздо более производителен, он не обрабатывает подстроки. Дополнительные сведения о разнице между двумя операторами см. в строковых операторах.
Время ожидания [Timeout=#duration(0,10,0,0)] Задает для времени ожидания клиента и сервера запроса указанное время.
ClientRequestIdPrefix [ClientRequestIdPrefix="MyReport"] Настраивает префикс ClientRequestId для всех запросов, отправленных соединителем. Это позволяет идентифицировать запросы в кластере как поступающие из определенного отчета и (или) источника данных.

Примечание.

Вы можете объединить несколько параметров, чтобы достичь требуемого поведения: [NoTruncate=true, CaseInsensitive=true]

Достижение лимитов запросов Kusto

Запросы Kusto по умолчанию возвращают до 500 000 строк или 64 МБ данных, как описано в статье Лимиты запросов. Эти значения по умолчанию можно переопределить с помощью дополнительных параметров в окне подключения Azure Data Explorer (Kusto):

расширенные параметры.

Эти варианты выдают набор инструкций с вашим запросом, чтобы изменить ограничения запроса по умолчанию:

  • Ограничение количества записей в результате запроса создает set truncationmaxrecords
  • Ограничение размера данных результатов запроса (в байтах) создает set truncationmaxsize
  • Отключение усечения результирующего набора создает set notruncation

Учет регистра

По умолчанию соединитель создает запросы, в которых при сравнении строковых значений используется оператор ==, учитывающий регистр. Если данные не учитывают регистр, это поведение не является нужным. Чтобы изменить созданный запрос, используйте вариант соединителя CaseInsensitive:

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [CaseInsensitive=true]),
    #"Filtered Rows" = Table.SelectRows(Source, each [State] == "aLaBama")
in
    #"Filtered Rows"

Использование параметров запроса

Параметры запроса можно использовать для динамического изменения запроса.

Использование параметра запроса в шагах запроса

Параметр запроса можно использовать на любом шаге запроса, который его поддерживает. Например, отфильтруйте результаты на основе значения параметра. В этом примере выберите раскрывающееся меню в правой части State столбца в редакторе Power Query, выберите "Фильтры>текста равно", а затем выберите ALABAMA в разделе "Сохранить строки", где "Состояние".

Фильтрация результатов с помощью параметра.

Предоставление параметров функции Обозреватель данных Azure

Функции Kusto — отличный способ поддерживать сложные запросы язык запросов Kusto (KQL). Мы рекомендуем использовать функции вместо внедрения KQL в Power Query. Основное преимущество использования функции заключается в том, что логика сохраняется один раз в среде, которая легко создавать и тестировать.

Функции также могут получать параметры и поэтому много гибкости для пользователя Power BI. Power BI имеет множество способов срезать данные. Но все фильтры и срезы добавляются после исходного KQL и во многих случаях вы хотите использовать фильтрацию на ранней стадии запроса. Использование функций и динамических параметров является очень эффективным способом настройки окончательного запроса.

Создание функции

Следующую функцию можно создать в любом кластере azure Data Обозреватель, к которому у вас есть доступ, включая бесплатный кластер. Функция возвращает таблицу SalesTable из кластера справки, отфильтрованную для транзакций продаж больше или меньше, чем число, предоставленное пользователем отчета.

.create-or-alter  function LargeOrSmallSales(Cutoff:long,Op:string=">")
{
    cluster("help").database("ContosoSales").SalesTable
    | where  (Op==">" and SalesAmount >= Cutoff) or (Op=="<"  and SalesAmount <= Cutoff)
}

После создания функции его можно протестировать с помощью:

LargeOrSmallSales(2000,">")
| summarize Sales=tolong(sum(SalesAmount)) by Country

Вы также можете протестировать его с помощью:

LargeOrSmallSales(20,"<")
| summarize Sales=tolong(sum(SalesAmount)) by Country
Использование функции в Power BI
  1. Подключение в кластер, где вы создали функцию.

  2. В навигаторе Power Query выберите функцию из списка объектов. Соединитель анализирует параметры и представляет их над данными справа от навигатора.

    Снимок экрана: параметры вырезанного и оповеченного над данными в навигаторе.

  3. Добавьте значения в параметры и нажмите кнопку "Применить".

  4. После отображения предварительного просмотра выберите "Преобразовать данные".

  5. После создания двух параметров в редакторе Power Query создайте один для значения отсечения и один для оператора.

  6. Вернитесь к LargeOrSmallSales запросу и замените значения параметрами запроса в строке формул.

    Снимок экрана: функция LargeOrSmallSales с акцентом на параметры Cutoff_Param и Op_Param в строке формул.

  7. В редакторе создайте две статические таблицы (ввод данных), чтобы предоставить параметры для двух параметров. Для отсечения можно создать таблицу со значениями, такими как 10, 50, 100, 200, 500, 1000, 2000. OpДля таблицы с двумя текстовыми значениями < и >.

  8. Два столбца в таблицах должны быть привязаны к параметрам запроса с помощью привязки к выбору параметров .

    Снимок экрана: привязка op к параметру Op_Param.

Окончательный отчет будет включать срезы для двух статических таблиц и любых визуальных элементов из сводных продаж.

Снимок экрана: Power BI с выбранными значениями

Базовая таблица сначала фильтруется, а затем агрегируется.

Использование параметра запроса в сведениях о подключении

Используйте параметр запроса для фильтрации сведений в запросе и оптимизации производительности запросов.

В Расширенный редактор:

  1. Найдите следующий раздел запроса:

    Source = AzureData Обозреватель. Contents("<Cluster>", "<Database>", "<Query>", [])

    Например:

    Source = AzureDataExplorer.Contents("Help", "Samples", "StormEvents | where State == 'ALABAMA' | take 100", [])
    
  2. Вставьте параметр запроса в запрос язык запросов Kusto (KQL).

    Если вставить запрос KQL непосредственно в диалоговом окне подключения, запрос будет частью исходного шага в Power Query. Параметры можно внедрить в состав запроса с помощью расширенного редактора или при редактировании исходной инструкции в строке формул. Примером может быть StormEvents | where State == ' " & State & " ' | take 100запрос. State является параметром и во время выполнения запрос будет:

    StormEvents | where State == 'ALABAMA' | take 100

  3. Если запрос содержит кавычки, их необходимо кодировать правильно. Например, следующий запрос в KQL:

    "StormEvents | where State == "ALABAMA" | take 100"
    

    будет отображаться в окне Расширенный редактор, как показано ниже, с двумя кавычками:

     "StormEvents | where State == ""ALABAMA"" | take 100"
    

    Если используется параметр, например State, его следует заменить следующим запросом, который содержит три кавычки:

    "StormEvents | where State == """ & State & """ | take 100"
    

Использование Value.NativeQuery для возможностей Azure Data Explorer

Чтобы использовать функцию Обозреватель данных Azure, которая не поддерживается в Power Query, используйте метод Value.NativeQuery в Power Query M. Этот метод вставляет фрагмент язык запросов Kusto внутри созданного запроса, а также может использоваться для повышения контроля над выполненным запросом.

В следующем примере показано, как использовать функцию percentiles в Azure Data Explorer:

let
    StormEvents = AzureDataExplorer.Contents(DefaultCluster, DefaultDatabase){[Name = DefaultTable]}[Data],
    Percentiles = Value.NativeQuery(StormEvents, "| summarize percentiles(DamageProperty, 50, 90, 95) by State")
in
    Percentiles

Не используйте планировщик обновления данных Power BI для выдачи команд управления в Kusto

Power BI содержит планировщик обновления данных, который может периодически выдавать запросы к источнику данных. Этот механизм не следует использовать для планирования команд управления Kusto, поскольку Power BI предполагает, что все запросы доступны только для чтения.