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:
Выберите Azure Data Обозреватель (Kusto) в интерфейсе получения данных. Взаимодействие с данными в Power Query Desktop зависит от приложений. Дополнительные сведения об использовании Power Query Desktop для вашего приложения см. в раздел " Где получить данные".
В Обозреватель данных Azure (Kusto) укажите имя кластера Обозреватель данных Azure. В этом примере используйте
https://help.kusto.windows.net
для доступа к примеру кластера справки. Для других кластеров URL-адрес находится в форме https://< ClusterName.<>Регион.kusto.windows.net>.Вы также можете выбрать базу данных, размещенную в кластере, к которому вы подключаетесь, и одну из таблиц в базе данных или запрос, например
StormEvents | take 1000
.Если вы хотите использовать какие-либо дополнительные параметры, выберите этот параметр и введите данные для использования с этим параметром. Дополнительные сведения: Подключение с помощью дополнительных параметров
Примечание.
Чтобы отобразить все расширенные параметры и выбор подключения к данным, может потребоваться прокрутить вниз.
Выберите режим подключения к данным Import или DirectQuery (только Power BI Desktop). Дополнительные сведения: при использовании режима импорта или прямого запроса
Для продолжения выберите ОК.
Если у вас еще нет подключения к кластеру, нажмите кнопку "Войти". Войдите с помощью учетной записи организации и выберите Подключение.
В навигаторе выберите нужную информацию базы данных, а затем выберите "Загрузить", чтобы загрузить данные или преобразовать данные, чтобы продолжить преобразование данных в редакторе Power Query. В этом примере StormEvents был выбран в базе данных Samples.
Подключение данных Azure Обозреватель из Power Query Online
Чтобы подключиться к azure Data Обозреватель из Power Query Online, выполните приведенные действия.
Выберите параметр Azure Data Обозреватель (Kusto) в интерфейсе получения данных. Различные приложения имеют различные способы получения данных в Power Query Online. Дополнительные сведения о том, как получить данные в Power Query Online из приложения, перейдите к разделу " Где получить данные".
В Подключение источнику данных укажите имя кластера Обозреватель данных Azure. В этом примере используйте
https://help.kusto.windows.net
для доступа к примеру кластера справки. Для других кластеров URL-адрес находится в форме https://< ClusterName.<>Регион.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 | Определяет продолжительность выполнения запроса. Параметры запроса управляют выполнением запроса и возвращением результатов. Несколько операторов 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
Подключение в кластер, где вы создали функцию.
В навигаторе Power Query выберите функцию из списка объектов. Соединитель анализирует параметры и представляет их над данными справа от навигатора.
Добавьте значения в параметры и нажмите кнопку "Применить".
После отображения предварительного просмотра выберите "Преобразовать данные".
После создания двух параметров в редакторе Power Query создайте один для значения отсечения и один для оператора.
Вернитесь к
LargeOrSmallSales
запросу и замените значения параметрами запроса в строке формул.В редакторе создайте две статические таблицы (ввод данных), чтобы предоставить параметры для двух параметров. Для отсечения можно создать таблицу со значениями, такими как 10, 50, 100, 200, 500, 1000, 2000.
Op
Для таблицы с двумя текстовыми значениями<
и>
.Два столбца в таблицах должны быть привязаны к параметрам запроса с помощью привязки к выбору параметров .
Окончательный отчет будет включать срезы для двух статических таблиц и любых визуальных элементов из сводных продаж.
Базовая таблица сначала фильтруется, а затем агрегируется.
Использование параметра запроса в сведениях о подключении
Используйте параметр запроса для фильтрации сведений в запросе и оптимизации производительности запросов.
В Расширенный редактор:
Найдите следующий раздел запроса:
Source = AzureData Обозреватель. 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, которая не поддерживается в 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 предполагает, что все запросы доступны только для чтения.