使用 Kqlmagic 创建和运行笔记本

Kqlmagic 是一种命令,可在 Azure Data Studio 笔记本中扩展 Python 内核的功能。 可以组合使用 Python 和 Kusto 查询语言 (KQL),通过与 render 命令集成的丰富 Plotly 库查询和可视化数据。 Kqlmagic 使你可以在同一个位置获得笔记本、数据分析和丰富 Python 功能的优势。 具有 Kqlmagic 的受支持数据源包括 Azure 数据资源管理器Application InsightsAzure Monitor 日志

本文演示对于 Azure 数据资源管理器群集、Application Insights 日志和 Azure Monitor 日志,如何使用 Kqlmagic 扩展在 Azure Data Studio 中创建和运行笔记本。

先决条件

在笔记本中安装并设置 Kqlmagic

此部分中的步骤全都在 Azure Data Studio 笔记本中运行。

  1. 创建新笔记本并将“内核”更改为“Python 3”。

    Screenshot of a new notebook.

  2. 当包需要更新时,系统可能会提示你升级 Python 包。

    Screenshot of the result - yes.

  3. 安装 Kqlmagic:

    import sys
    !{sys.executable} -m pip install Kqlmagic --no-cache-dir --upgrade
    

    验证它是否已安装:

    import sys
    !{sys.executable} -m pip list
    

    Screenshot of the list.

  4. 加载 Kqlmagic:

    %reload_ext Kqlmagic
    

    注意

    如果此步骤失败,则关闭文件并重新打开。

    Screenshot of the load the Kqlmagic extension.

  5. 可以通过浏览帮助文档或检查版本来测试是否已正确加载 Kqlmagic。

    %kql --help "help"
    

    注意

    如果 Samples@help 要求提供密码,则可以将它留空,然后按 Enter。

    Screenshot of help.

    若要查看安装的 Kqlmagic 版本,请运行以下命令。

    %kql --version
    

Kqlmagic 与 Azure 数据资源管理器群集

此部分介绍如何通过将 Kqlmagic 与 Azure 数据资源管理器群集结合使用来运行数据分析。

会针对 Azure 数据资源管理器加载 Kqlmagic 并进行身份验证

注意

每次在 Azure Data Studio 中创建新笔记本时,都必须加载 Kqlmagic 扩展。

  1. 验证“内核”设置为“Python3”。

    Screenshot of the kernel change.

  2. 加载 Kqlmagic:

    %reload_ext Kqlmagic
    

    Screenshot of the load the Kqlmagic extension.

  3. 连接到群集并进行身份验证:

    %kql azureDataExplorer://code;cluster='help';database='Samples'
    

    注意

    如果使用自己的 ADX 群集,则必须在连接字符串中包含区域,如下所示:

    %kql azuredataexplorer://code;cluster='mycluster.westus';database='mykustodb' 使用设备登录进行身份验证。 从输出中复制代码,然后选择“身份验证”,这会打开需要在其中粘贴代码的浏览器。 成功进行身份验证后,可以返回到 Azure Data Studio 以继续执行脚本的其余部分。

    Screenshot of the Azure Data Explorer authentication.

对 Azure 数据资源管理器进行查询和可视化

可以使用 render 运算符查询数据,使用 plotly 库可视化数据。 此查询和可视化操作提供了使用本机 KQL 的集成体验。

  1. 按状态和频率分析前 10 个暴风雨事件:

    %kql StormEvents | summarize count() by State | sort by count_ | limit 10
    

    如果熟悉 Kusto 查询语言 (KQL),则可以在 %kql 后键入查询。

    Screenshot of the analyze storm events.

  2. 可视化时间线图表:

    %kql StormEvents \
    | summarize event_count=count() by bin(StartTime, 1d) \
    | render timechart title= 'Daily Storm Events'
    

    Screenshot of a time chart.

  3. 使用 %%kql 的多行查询示例。

    %%kql
    StormEvents
    | summarize count() by State
    | sort by count_
    | limit 10
    | render columnchart title='Top 10 States by Storm Event count'
    

    Screenshot of a multiline Query sample.

Kqlmagic 与 Application Insights

会针对 Application Insights 加载 Kqlmagic 并进行身份验证

  1. 验证“内核”设置为“Python3”。

    Screenshot of a kernel.

  2. 加载 Kqlmagic:

    %reload_ext Kqlmagic
    

    Screenshot of loading the Kqlmagic extension.

    注意

    每次在 Azure Data Studio 中创建新笔记本时,都必须加载 Kqlmagic 扩展。

  3. 连接并进行身份验证。

    首先,必须为 Application Insights 资源生成 API 密钥。 然后,使用应用程序 ID 和 API 密钥从笔记本连接到 Application Insights:

    %kql appinsights://appid='DEMO_APP';appkey='DEMO_KEY'
    

对 Application Insights 进行查询和可视化

可以使用 render 运算符查询数据,使用 plotly 库可视化数据。 此查询和可视化操作提供了使用本机 KQL 的集成体验。

  1. 显示页面视图:

    %%kql
    pageViews
    | limit 10
    

    Screenshot of page views.

    注意

    使用鼠标在图表区域上拖动以放大到特定日期。

  2. 在时间线图表中显示页面视图:

    %%kql
    pageViews
    | summarize event_count=count() by name, bin(timestamp, 1d)
    | render timechart title= 'Daily Page Views'
    

    Screenshot of the timeline chart.

Kqlmagic 与 Azure Monitor logs

会针对 Azure Monitor 日志加载 Kqlmagic 并进行身份验证

  1. 验证“内核”设置为“Python3”。

    Screenshot of the change.

  2. 加载 Kqlmagic:

    %reload_ext Kqlmagic
    

    Screenshot showing to load the Kqlmagic extension.

    注意

    每次在 Azure Data Studio 中创建新笔记本时,都必须加载 Kqlmagic 扩展。

  3. 连接并进行身份验证:

    %kql loganalytics://workspace='DEMO_WORKSPACE';appkey='DEMO_KEY';alias='myworkspace'
    

    Screenshot of the log analytics authentication.

对 Azure Monitor 日志进行查询和可视化

可以使用 render 运算符查询数据,使用 plotly 库可视化数据。 此查询和可视化操作提供了使用本机 KQL 的集成体验。

  1. 查看时间线图表:

    %%kql
    KubeNodeInventory
    | summarize event_count=count() by Status, bin(TimeGenerated, 1d)
    | render timechart title= 'Daily Kubernetes Nodes'
    

    Screenshot showing the Log Analytics Daily Kubernetes Nodes timechart.

后续步骤

了解有关笔记本和 Kqlmagic 的详细信息: