Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сводка
| Item | Description |
|---|---|
| Статус релиза | Общая доступность |
| Products | Эксель Power BI (семантические модели) Power BI (потоки данных) Fabric (Dataflow 2-го поколения) Power Apps (потоки данных) Dynamics 365 Customer Insights |
| Поддерживаемые типы проверки подлинности | Учетная запись организации |
| Справочная документация по функциям | — |
Замечание
Некоторые возможности могут присутствовать в одном продукте, но не другие из-за расписаний развертывания и возможностей для конкретного узла.
Предпосылки
Подписка Azure. Перейдите к получению бесплатной пробной версии Azure.
Учетная запись электронной почты организации, являющаяся членом идентификатора Microsoft Entra. В этой статье используется эта учетная запись для подключения к примерам справки по кластеру Azure Data Explorer .
Поддерживаемые возможности
- Import
- DirectQuery (семантические модели Power BI)
- Дополнительные параметры
- Ограничение номера записи результатов запроса
- Ограничение размера результирующих данных запроса в байтах
- Отключить усечение результирующих наборов
- Дополнительные инструкции набора
Подключение к Azure Data Explorer из Power Query Desktop
Чтобы подключиться к Azure Data Explorer из Power Query Desktop, выполните приведенные действия.
Выберите Azure Data Explorer (Kusto) в интерфейсе получения данных. Взаимодействие с данными в Power Query Desktop зависит от приложений. Дополнительные сведения о Power Query Desktop для вашего приложения см. в разделе Где получить данные.
В Azure Data Explorer (Kusto) укажите имя кластера Azure Data Explorer. В этом примере используйте
https://help.kusto.windows.netдля доступа к примерному кластеру справки. Для других кластеров URL-адрес находится в форме https:// <ClusterName>.<Region.kusto.windows.net>.Вы также можете выбрать базу данных, размещенную в кластере, к которому вы подключаетесь, и одну из таблиц в базе данных или запрос, например
StormEvents | take 1000.Если вы хотите использовать какие-либо дополнительные параметры, выберите этот параметр и введите данные для использования с этим параметром. Дополнительные сведения: подключение с помощью дополнительных параметров
Замечание
Чтобы отобразить все расширенные параметры и выбор подключения к данным, может потребоваться прокрутить вниз.
Выберите режим подключения данных: Импорт или DirectQuery (только для Power BI Desktop). Дополнительные сведения: при использовании режима импорта или прямого запроса
Для продолжения выберите ОК.
Если у вас еще нет подключения к кластеру, нажмите кнопку "Войти". Войдите с помощью учетной записи организации и нажмите кнопку "Подключить".
В Навигаторвыберите информацию из базы данных, затем нажмите Загрузить, чтобы импортировать данные, или Преобразовать данные, чтобы продолжить их преобразование в редакторе Power Query. В этом примере StormEvents был выбран в базе данных Samples.
Подключение к Azure Data Explorer из Power Query Online
Чтобы подключиться к Azure Data Explorer из Power Query Online, выполните приведенные действия.
Выберите параметр Azure Data Explorer (Kusto) в интерфейсе получения данных. Различные приложения имеют различные способы получения данных в Power Query Online. Дополнительные сведения о том, как воспользоваться функцией получения данных в Power Query Online из вашего приложения, см. в разделе Где получить данные.
В разделе "Подключение к источнику данных" укажите имя кластера Azure Data Explorer. В этом примере используйте
https://help.kusto.windows.netдля доступа к примерному кластеру справки. Для других кластеров URL-адрес находится в форме https:// <ClusterName>.<Region.kusto.windows.net>.Вы также можете выбрать базу данных, размещенную в кластере, к которому вы подключаетесь, и одну из таблиц в базе данных или запрос, например
StormEvents | take 1000.
Если вы хотите использовать какие-либо дополнительные параметры, выберите этот параметр и введите данные для использования с этим параметром. Дополнительные сведения: подключение с помощью дополнительных параметров
При необходимости выберите локальный шлюз данных в шлюзе данных.
Если у вас еще нет подключения к кластеру, нажмите кнопку "Войти". Войдите с помощью учетной записи организации.
После успешного входа нажмите кнопку "Далее".
На странице "Выбор данных" выберите нужную информацию базы данных, а затем нажмите кнопку "Преобразовать данные " или "Далее ", чтобы продолжить преобразование данных в редакторе Power Query. В этом примере StormEvents был выбран в базе данных Samples.
Подключитесь с использованием дополнительных параметров
Power Query Desktop и Power Query Online предоставляют набор дополнительных параметров, которые можно добавить в запрос при необходимости.
В следующей таблице перечислены все дополнительные параметры, которые можно задать в Power Query Desktop и Power Query Online.
| Дополнительный параметр | Description |
|---|---|
| Ограничение номера записи результатов запроса | Максимальное количество записей, возвращаемых в результате. |
| Ограничение размера результирующих данных запроса в байтах | Максимальный размер данных в байтах, возвращаемых в результате. |
| Отключить усечение результирующих наборов | Включите или отключите усечение результатов с помощью notruncation параметра запроса. |
| Дополнительные инструкции установок | Устанавливает параметры запроса, связанные с его длительностью. Параметры запроса определяют, как выполняется запрос и возвращает результаты. Несколько инструкций Set можно разделить точками с запятой. |
Дополнительные сведения о дополнительных дополнительных параметрах, недоступных в пользовательском интерфейсе Power Query, см. в разделе "Настройка параметров соединителя Azure Data Explorer" в запросе M.
Когда используется режим импорта или прямого запроса
В режиме импорта данные перемещаются в Power BI. В режиме DirectQuery данные запрашиваются непосредственно из кластера.
Используйте режим импорта, если:
- Набор данных мал.
- Вам не нужны данные практически в режиме реального времени.
- Данные уже агрегированы или вы выполняете агрегирование в Kusto.
Используйте режим DirectQuery, когда:
- Набор данных очень велик.
- Вам нужны практически данные в режиме реального времени.
Дополнительные сведения об использовании DirectQuery см. в разделе "Сведения об использовании DirectQuery" в Power BI.
Советы по использованию соединителя Azure Data Explorer для запроса данных
В следующих разделах приведены советы и рекомендации по использованию языка запросов Kusto с Power Query.
Сложные запросы в Power BI
Сложные запросы проще выразить в Kusto, чем в Power Query. Они должны быть реализованы как функции Kusto и вызываться в Power BI. Этот метод требуется при использовании DirectQuery с операторами let в запросе Kusto. Поскольку 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 Data Explorer в запросе M
Параметры соединителя Azure Data Explorer можно настроить из расширенного редактора Power Query на языке запросов M. С помощью этих параметров можно управлять созданным запросом, который отправляется в кластер Azure Data Explorer.
let
Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [<options>])
in
Source
В запросе M можно использовать любой из следующих параметров:
| Вариант | Sample | Description |
|---|---|---|
| MaxRows | [MaxRows=300000] |
Добавляет инструкцию truncationmaxrecords set в запрос. Переопределяет максимальное число записей по умолчанию, которые запрос может вернуть вызывающему объекту (обрезка). |
| MaxSize | [MaxSize=4194304] |
Добавляет инструкцию truncationmaxsize set в запрос. Переопределяет максимальный размер данных по умолчанию, который может быть возвращен вызывающему (усечение). |
| NoTruncate | [NoTruncate=true] |
Добавляет инструкцию notruncation set в запрос. Включает подавление усечения результатов запроса, возвращенных вызвавшей стороне. |
| Дополнительные значенияSetStatements | [AdditionalSetStatements="set query_datascope=hotcache"] |
Добавляет указанные инструкции набора в запрос. Эти инструкции используются для задания параметров запроса в течение длительности запроса. Параметры запроса определяют, как выполняется запрос и возвращает результаты. |
| CaseInsensitive | [CaseInsensitive=true] |
Создает соединитель запросы, которые являются нечувствительными к регистру— запросы используют =~ оператор вместо == оператора при сравнении значений. |
| ForceUseContains | [ForceUseContains=true] |
Делает так, чтобы соединитель генерировал запросы, использующие contains вместо значения по умолчанию has при работе с текстовыми полями. Хотя has гораздо более производителен, он не поддерживает подстроки. Дополнительные сведения о разнице между двумя операторами см. в строковых операторах. |
| Таймаут | [Timeout=#duration(0,10,0,0)] |
Настраивает время ожидания клиента и сервера для заданной длительности запроса. |
| КлиентскийИдентификаторЗапросаPrefix | [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 Data Explorer
Функции Kusto — отличный способ поддерживать сложные запросы языка запросов Kusto (KQL). Мы рекомендуем использовать функции вместо внедрения KQL в Power Query. Основное преимущество использования функции заключается в том, что логика поддерживается в одном месте в легко создаваемой и тестируемой среде.
Функции также могут принимать параметры, и поэтому добавляют много гибкости пользователям Power BI. Power BI имеет множество способов срезать данные. Но все фильтры и срезы добавляются после исходного KQL и во многих случаях вы хотите использовать фильтрацию на ранней стадии запроса. Использование функций и динамических параметров является очень эффективным способом настройки окончательного запроса.
Создание функции
Вы можете создать следующую функцию в любом кластере Azure Data Explorer, к которому у вас есть доступ, включая бесплатный кластер. Функция возвращает таблицу 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
Подключитесь к кластеру, где вы создали функцию.
В навигаторе Power Query выберите функцию из списка объектов. Коннектор анализирует параметры и отображает их над данными с правой стороны навигатора.
Добавьте значения в параметры и нажмите кнопку "Применить".
После отображения предварительного просмотра выберите "Преобразовать данные".
Как только вы окажетесь в редакторе Power Query, создайте два параметра: один для значения отсечения и другой для оператора.
Вернитесь к
LargeOrSmallSalesзапросу и замените значения параметрами запроса в строке формул.
В редакторе создайте две статические таблицы (ввод данных), чтобы предоставить параметры для двух параметров. Для отсечения можно создать таблицу со значениями, такими как 10, 50, 100, 200, 500, 1000, 2000.
Op, таблица с двумя текстовыми значениями<и>.Два столбца в таблицах должны быть привязаны к параметрам запроса с помощью привязки к выбору параметров .
Окончательный отчет включает фильтры для двух статических таблиц и любые визуальные элементы из сводного отчета о продажах.
Базовая таблица сначала фильтруется, а затем агрегируется.
Использование параметра запроса в сведениях о подключении
Используйте параметр запроса для фильтрации информации в запросе и оптимизации производительности запросов.
В расширенном редакторе:
Найдите следующий раздел запроса:
Source = AzureDataExplorer.Contents("<Cluster>", "Database<",> "<Query>", [])
Рассмотрим пример.
Source = AzureDataExplorer.Contents("Help", "Samples", "StormEvents | where State == 'ALABAMA' | take 100", [])Вставьте параметр запроса в запрос языка запросов Kusto (KQL).
Если вставить запрос KQL непосредственно в диалоговом окне подключения, запрос будет частью исходного шага в Power Query. Параметры можно внедрить в состав запроса с помощью расширенного редактора или при редактировании исходной инструкции в строке формул. Примером может быть
StormEvents | where State == ' " & State & " ' | take 100запрос.Stateявляется параметром и во время выполнения запрос будет:StormEvents | where State == 'ALABAMA' | take 100Если запрос содержит кавычки, закодируйте их правильно. Например, следующий запрос в 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 Data Explorer, которая не поддерживается в 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 предполагает, что все запросы доступны только для чтения.