Используйте блокнот Jupyter и расширение kqlmagic для анализа данных в Azure Data Explorer
Jupyter Notebook — это веб-приложение с открытым исходным кодом, которое позволяет создавать и предоставлять общий доступ к документам, содержащим динамический код, уравнения, визуализации и текст повествования. Это полезно для широкого спектра задач, таких как очистка и преобразование данных, числовое моделирование, статистическое моделирование, визуализация данных и машинное обучение.
Kqlmagic расширяет возможности ядра Python в Jupyter Notebook, чтобы вы могли выполнять запросы язык запросов Kusto (KQL) в собственном коде. Вы можете объединить Python и KQL для запроса и визуализации данных с помощью полнофункциональной библиотеки Plot.ly, интегрированной с оператором отрисовки . Расширение kqlmagic совместимо с расширением Jupyter Lab, расширением Jupyter Visual Studio Code и Azure Data Studio, а также поддерживаемыми источниками данных, включая Azure Data Explorer, журналы Azure Monitor и Application Insights.
В этой статье вы узнаете, как использовать kqlmagic в Jupyter Notebook для подключения к данным, хранящимся в Azure Data Explorer.
Необходимые компоненты
- Учетная запись Майкрософт или удостоверение пользователя Microsoft Entra. Подписка Azure не обязательна.
- Jupyter Notebook установлен на локальном компьютере. В противном случае используйте Azure Data Studio.
- Python 3.6. Чтобы изменить версию ядра Jupyter Notebook на Python 3.6, выберите ядро>>Python 3.6.
Установка kqlmagic
После установки и загрузки расширения kqlmagic можно написать запросы KQL в записной книжке. Если ядро останавливается или результаты не являются ожидаемыми, перезагрузите расширение kqlmagic.
Чтобы установить kqlmagic, выполните следующую команду:
!pip install Kqlmagic --no-cache-dir --upgrade
Чтобы загрузить расширение kqlmagic, выполните следующую команду:
%reload_ext Kqlmagic
Подключение к кластеру
Выберите вкладку для предпочтительного метода для подключения к кластеру.
Примечание.
По возможности рекомендуется использовать метод проверки подлинности Certificate.
Сертификат Microsoft Entra должен храниться в файле, доступном из записной книжки. На этот файл можно ссылаться в строка подключения.
%kql AzureDataExplorer://tenant='<tenant-id>';certificate='<certificate>';certificate_thumbprint='<thumbprint>';cluster='<cluster-name>';database='<database-name>'
Совет
- Чтобы параметризировать строка подключения, используйте неквотируемые значения, так как они интерпретируются как выражения Python.
- Чтобы упростить процесс получения учетных данных, см . раздел "Параметры подключения".
Пример подключения к кластеру
Следующая команда использует метод кода Microsoft Entra для проверки подлинности в Samples
базе данных, размещенной в кластере help
. Для пользователей, отличных от Майкрософт, замените имя Microsoft.com
клиента клиентом Microsoft Entra.
%kql AzureDataExplorer://tenant="Microsoft.com";code;cluster='help';database='Samples'
Параметры подключения
Чтобы упростить процесс получения учетных данных, можно добавить один из следующих флагов параметров после строка подключения.
Вариант | Описание | Пример синтаксиса |
---|---|---|
try_azcli_login | Попытайтесь получить учетные данные проверки подлинности из Azure CLI. | -try_azcli_login |
try_azcli_login_subscription | Попытайтесь получить учетные данные проверки подлинности из Azure CLI на основе указанной подписки. | -try_azcli_login_subscription=<subscription_id> |
try_vscode_login | Попытайтесь получить учетные данные проверки подлинности из входа в учетную запись Azure Visual Studio Code. | -try_vscode_login |
try_msi | Попытайтесь получить учетные данные проверки подлинности из локальной конечной точки MSI. Ожидает словарь с необязательными параметрами MSI: resource ,/client_id object_id mis_res_id / , . timeout cloud_environment |
-try_msi={"client_id":<id>} |
try_token | Проверка подлинности с помощью указанного маркера. Ожидает словарь со свойствами маркера Azure AD версии 1 или версии 2. | -try_token={"tokenType":"bearer","accessToken":"<token>"} |
Пример параметра подключения
Любой из параметров, описанных в предыдущей таблице, можно добавить после строка подключения. В следующем примере используется параметр входа в Azure CLI:
%kql azureDataExplorer://code;cluster='help';database='Samples' -try_azcli_login
Отображение сведений о подключении
Чтобы просмотреть все существующие подключения, выполните следующую команду:
%kql --conn
Чтобы проверить сведения о конкретном подключении, выполните следующую команду:
%kql --conn <database-name>@<cluster-name>
Отправка запросов и визуализация
Запрашивайте данные с помощью оператора отображения и визуализируйте их с помощью библиотеки ploy.ly. Для запрашивания и визуализации данных используется интегрированный интерфейс, использующий собственный KQL. Kqlmagic поддерживает большинство диаграмм, за исключением timepivot
, pivotchart
и ladderchart
. Отображение поддерживается для всех атрибутов, за исключением kind
, ysplit
и accumulate
.
Запрос и отображение круговой диаграммы
%%kql
StormEvents
| summarize statecount=count() by State
| sort by statecount
| take 10
| render piechart title="My Pie Chart by State"
Запрос и отображение временной диаграммы
%%kql
StormEvents
| summarize count() by bin(StartTime,7d)
| render timechart
Примечание.
Эти диаграммы являются интерактивными. Выберите диапазон времени, чтобы изменить масштаб в соответствии с этим диапазоном.
Настройка цветов диаграммы
Если вам не нравится цветовая палитра по умолчанию, настройте диаграммы с помощью параметров палитры. Доступные палитры можно найти здесь: Выберите цветовую палитру для результата диаграммы запроса kqlmagic.
Для списка палитр:
%kql --palettes -popup_window
Выберите палитру цветов
cool
и снова отобразите результаты запроса.%%kql -palette_name "cool" StormEvents | summarize statecount=count() by State | sort by statecount | take 10 | render piechart title="My Pie Chart by State"
Параметризация запроса с помощью Python
Kqlmagic позволяет легко выполнять обмен между язык запросов Kusto и Python. Чтобы узнать больше: Параметризуйте свой запрос kqlmagic с помощью Python
Использование переменной Python в запросе KQL
Для фильтрации данных можно использовать значение переменной Python в своем запросе.
statefilter = ["TEXAS", "KANSAS"]
%%kql
let _state = statefilter;
StormEvents
| where State in (_state)
| summarize statecount=count() by bin(StartTime,1d), State
| render timechart title = "Trend"
Преобразование результатов запроса в Pandas DataFrame
Вы можете получить доступ к результатам выполнения запроса KQL в Pandas DataFrame. Вы можете получить доступ к результатам последних выполненных запросов с помощью переменной _kql_raw_result_
и легко преобразовать результаты в Pandas DataFrame следующим образом.
df = _kql_raw_result_.to_dataframe()
df.head(10)
Пример
Во многих сценариях анализа может потребоваться создать повторно используемые записные книжки, которые содержат множество запросов, и передать результаты из одного запроса в последующие. В следующем примере используется переменная Python statefilter
для фильтрации данных.
Выполнение запроса для просмотра 10 состояний с максимальным значением параметра
DamageProperty
:%%kql StormEvents | summarize max(DamageProperty) by State | order by max_DamageProperty desc | take 10
Выполнение запроса для получения максимального состояния и запись этого значения в переменную Python:
df = _kql_raw_result_.to_dataframe() statefilter =df.loc[0].State statefilter
Выполнение запроса с использованием инструкции
let
и переменной Python:%%kql let _state = statefilter; StormEvents | where State in (_state) | summarize statecount=count() by bin(StartTime,1d), State | render timechart title = "Trend"
Выполнение команды help:
%kql --help "help"
Совет
Для получения информации обо всех доступных конфигурациях используйте %config Kqlmagic
. Для поиска и устранения ошибок Kusto, таких как проблемы с подключением и неправильные запросы, используйте %config Kqlmagic.short_errors=False
Записные книжки с примерами
- Начало работы с kqlmagic для Azure Data Explorer
- Приступая к работе с kqlmagic для Application Insights
- Начало работы с kqlmagic для журналов Azure Monitor
- Параметризация запроса kqlmagic с помощью Python
- Выбор палитры цветов для диаграммы результата запроса kqlmagic
Связанный контент
- Сведения язык запросов Kusto (KQL)