适用于:✅Azure 数据资源管理器
Kusto Explorer 是一个免费的桌面应用程序,它提供内置的图形可视化功能。 当 KQL 查询以运算符结尾 make-graph
或使用 graph()
函数时,Kusto Explorer 会自动将结果呈现为交互式图形可视化效果。
先决条件
- 已安装在您的 Windows 桌面上的Kusto Explorer
- 使用图形数据访问 Kusto 群集
自动图形呈现
Kusto Explorer 会在以下情况下自动检测和可视化图形数据:
- 查询以
make-graph
运算符结尾 - 查询以
graph()
函数结尾
make-graph 运算符的示例
此示例演示 TechCorp 在 2023-2024 年的组织动态,其中显示了团队组合和项目分配随时间的变化。 Alice(工程师)提前加入,但离开2024年年中,Bob(经理)于3月抵达,领导工程部门,Carol(开发人员)于6月加入,并成为 MobileApp 的主要开发人员,大卫(实习生)有短暂的任期。 两个重叠项目同时运行:WebApp(2023 年 3 月 - 2024 年 8 月)和 MobileApp(2023 年 7 月 - 2024 年 12 月)。
// Create a temporal graph with node/edge lifetimes and labels
let nodes = datatable(nodeId:string, nodeType:string, name:string, from:datetime, to:datetime)[
"1", "Person", "Alice", datetime(2023-01-01), datetime(2024-12-31),
"2", "Person", "Bob", datetime(2023-03-15), datetime(2024-12-31),
"3", "Person", "Carol", datetime(2023-06-01), datetime(2024-12-31),
"4", "Person", "David", datetime(2023-09-01), datetime(2024-03-31),
"5", "Company", "TechCorp", datetime(2022-01-01), datetime(2025-12-31),
"6", "Project", "WebApp", datetime(2023-03-01), datetime(2024-08-31),
"7", "Project", "MobileApp", datetime(2023-07-01), datetime(2024-12-31),
"8", "Department", "Engineering", datetime(2022-01-01), datetime(2025-12-31)
];
let edges = datatable(sourceId:string, targetId:string, label:string, from:datetime, to:datetime)[
"1", "5", "employed by", datetime(2023-02-01), datetime(2024-06-30),
"2", "5", "manages at", datetime(2023-04-01), datetime(2024-12-31),
"3", "5", "employed by", datetime(2023-06-15), datetime(2024-12-31),
"4", "5", "intern at", datetime(2023-09-15), datetime(2024-03-15),
"1", "8", "member of", datetime(2023-02-01), datetime(2024-06-30),
"2", "8", "leads", datetime(2023-04-01), datetime(2024-12-31),
"3", "8", "member of", datetime(2023-06-15), datetime(2024-12-31),
"1", "6", "works on", datetime(2023-03-15), datetime(2024-06-30),
"3", "6", "develops", datetime(2023-07-01), datetime(2024-08-31),
"4", "6", "assists with", datetime(2023-10-01), datetime(2024-03-15),
"2", "7", "oversees", datetime(2023-08-01), datetime(2024-12-31),
"3", "7", "lead developer", datetime(2023-08-15), datetime(2024-12-31)
];
edges
| make-graph sourceId --> targetId with nodes on nodeId
可视化效果清楚地显示了中心 TechCorp(紫色节点)的组织结构,通过各种就业关系连接到员工 Alice、Bob、Carol 和 David(绿色节点)。 该图显示两个项目-WebApp 和 MobileApp(蓝绿色节点),带有标记的边缘显示员工如何与这些项目交互(“开发”、“监督”、“工作方式”、“协助”)。 工程部门(紫色节点)连接到团队成员,底部的时态时间线允许导航浏览不同的时间段,以了解关系的发展方式。 右侧的“图形层”面板提供用于自定义可视化效果的控件,包括节点标记、着色和时间线导航。
图形函数的示例
此示例演示如何使用 graph()
函数可视化持久化图形。 BloodHound Active Directory 数据集包含 1,495 个 Active Directory 对象,表示具有用户、计算机、组和安全关系的典型企业 AD 部署。
// Query using the graph function
graph("BloodHound_AD")
此查询将加载整个 BloodHound Active Directory 图形,Kusto Explorer 将自动呈现为交互式可视化效果。 此图显示了 Active Directory 环境中的安全关系和潜在攻击路径,使其可用于安全评估和特权提升分析。
有关此数据集和其他可用示例图的详细信息,请参阅 Graph 示例数据集和示例。
可视化效果显示了具有不同相关对象的群集的 Active Directory 环境的复杂结构。 左侧的蓝色群集表示一组 AD 对象(可能是计算机或组织单位),右侧的紫色群集显示不同类型的安全主体和组。 互连边缘显示这些实体之间的安全关系和潜在攻击路径。 右侧的“图形层”面板提供交互式控件来浏览数据,包括搜索功能、节点/边缘自定义选项和用于临时分析的时间线控件。
数据库实体图的示例
Kusto Explorer 提供强大的功能来可视化 KQL 数据库中的实体关系。 此功能可帮助你了解不同数据库对象之间的数据库架构、数据依赖关系和关系。
生成实体图:
- 在 “连接 ”面板中,右键单击数据库名称
- 从上下文菜单中选择“ 显示实体图 ”
- Kusto Explorer 自动执行语句并将数据库实体呈现为交互式图形
这会自动生成和执行一个查询,该查询分析数据库架构并创建一个可视化效果,其中显示了:
- 表作为基础数据实体
- 表示持久图形结构的图形模型
- 包括用户定义的 函数和系统函数
- 物化视图用于数据聚合和优化
- 用于数据导出和外部连接的外部表
- 显示为标记边缘的依赖项,指示实体之间的关系
可视化效果一目了然地显示数据库体系结构,其中显示了完整的数据流和依赖项。 在此示例中,可以分步跟踪数据处理管道:
数据引入和转换
首先,原始表使用sensorData
填充表,每当新数据到达时,就会触发updateSensorData
函数。
使用具体化视图进行数据优化
接下来,有具体化视图用于数据优化 - 一个用于对表定义的SensorDeduplicated
重复数据删除(sensorData
),另一个用于对在视图上运行SensorDownsampled
的超时数据(SensorDeduplicated
)进行向下采样。
函数依赖项
系统还包括函数依赖项,其中 SensorDataFunction1
(黄色节点)引用 sensorData
表,而 SensorDataFunction2
(黄色节点)使用 SensorDataFunction1
,创建函数依赖项链。
数据导出
此外,还定义了一个 连续导出 操作用于将数据从 sensorData
表导出到名为 ExternalTable
的外部表(青色节点)。
图形建模
最后,“简单”图形模型(蓝色节点)依赖于两个基础表,引用关系明确标记。
可视化见解
紫色边缘表示各种关系类型,例如“definition”、“reference”、“export”和“update-policy”。 跟踪函数之间的相互依赖性对于调试性能问题、了解数据世系和优化查询执行路径尤其有用。 数据库管理员和开发人员可以使用此全面视图来了解数据流、识别瓶颈和维护数据库完整性。
交互式图形功能
当 Kusto 资源管理器呈现图形时,它通过界面右侧的“图形层”面板提供多个交互式功能。 下面介绍的功能使用前面所示 的 TechCorp 组织图 进行了演示:
交互式节点动作
可以通过两种方式与图形节点交互:手动编写 KQL 图形查询,或者只需右键单击任何节点即可执行多个预定义作。 每个操作提供了一种不同的方法来浏览和操控图形可视化。
展开
Expand作生成一个语句,该语句允许有选择地可视化在感兴趣的节点处开始或结束的图形,从而显示连接的节点和关系。
右键单击某个节点并选择“展开”时,Kusto Explorer 会首先提供用于自定义扩展的选项:
- 选择扩展级别:选择要从所选节点扩展的级别数(1 级、2 个级别、3 个级别或 4 个级别)
- 选择感兴趣的路径:选择级别后,可以选择想要包含在扩展中的特定路径或关系类型
此双步过程允许精确控制图形浏览。 与其扩展连接到节点的所有内容,不如专注于特定的关系模式,并限制扩展深度以避免过于复杂的可视化。 这对于探索大型图形特别有用,你希望专注于特定实体的邻近邻里,而不会被整个图形结构所淹没。
隐藏其他人
“隐藏其他”作会隐藏除所选节点及其直接连接以外的所有其他节点,从而创建所选节点的直接环境的焦点视图。
右键单击某个节点并选择“隐藏其他人”时,可以选择图形中应保留多少个级别:
- 仅保留我:仅显示所选节点,隐藏所有其他节点
- 留 1 级:显示所选节点以及距离其 1 跳数的节点
- 保留两级节点:显示所选节点及距离 1-2 步的节点
- 显示另外 3 个级别:显示所选节点及离开 1 到 3 个跃点的节点
- 保留 4 个级别:显示所选节点和 1-4 跳数离开的节点
如果您想隔离特定节点并仅检查其在指定半径内的关系,此操作非常理想。 它有效地筛选出图形其余部分的视觉干扰,使你能够专注于了解所选节点如何以各种距离连接到其邻居。
隐藏节点
“隐藏节点”作将从当前视图中删除所选节点以及连接到该节点的所有边缘。
单击要隐藏的节点时,它会从可视化效果中删除节点本身和连接到它的所有边缘。 这将通过消除无处可指向的悬空连接来创建更清晰的图形。 例如,如果隐藏 MobileApp 节点,则所有关系(如“首席开发人员”、“负责”)和与该项目相关的其他连接也会从视图中删除。
如果想要暂时删除可能使可视化效果混乱的节点,或者想要查看图形在没有特定实体的情况下的外观,请使用此作。 这在移除具有许多连接的中央枢纽节点时特别有用,这样可以更好地查看其他节点之间的关系,不会因孤立边缘而产生视觉干扰。
化简图
Reduce Graph操作通过自动生成一个语句来简化图形,该语句显示在所选节点一定跃点范围内的节点。
单击节点上的“化简图”(例如 MobileApp 节点)时,Kusto Explorer 会自动生成一个语句,该语句可减少图形以显示与所选节点相距 1 到 4 个跃点的所有节点。 此默认行为通过专注于你兴趣点周围最相关的邻里来帮助管理复杂的图形。
您可以自定义生成的声明,以根据您的需求来调整跳跃范围。 例如,您可以修改语句以仅显示距其 1 到 2 个跃点的节点,从而创建更集中视图:
这种操作在处理大型密集图时特别有用,尤其是当你希望关注最显著的关系和实体,这些关系和实体位于离选定节点特定距离之内时。 自定义跃点范围的功能使你能够精确控制简化图形可视化中的细节层次。
放大我 (节点)
“聚焦我”功能对于集中可视关注于特定节点非常有用。 它居中并缩放视图以专门聚焦于所选节点上,使其成为可视化效果的焦点。
右键单击某个节点并选择“放大我”时,Kusto 资源管理器会自动调整缩放级别并居中视图,使所选节点成为主焦点。 通过此视觉转换,可以更轻松地检查节点的属性和关系,而不会干扰图形的其他部分。
此作对于大型图形中的导航特别有用,在这些图中,你可能会失去对特定节点的跟踪,或者当你希望将分析集中在特定实体及其即时连接上时。 缩放和居中功能可确保所选节点突出显示且易于详细检查。
这些交互式作提供快速图形浏览,而无需手动编写 KQL 查询,从而轻松专注于复杂图形的特定部分或发现数据中的隐藏关系。
交互式边缘计算操作
除了节点操作,还可以通过右键单击图的边缘来进行交互。 边缘操作提供互补功能,用于浏览和操纵图形可视化中的连接。
隐藏边缘
隐藏边缘作提供了多个选项,用于从当前视图中删除边缘和相关节点。 这样,可以通过删除可能使图形混乱的特定关系来简化可视化效果。
右键单击边缘并选择“隐藏边缘”时,可以从多个隐藏选项中进行选择:
- 仅隐藏边缘:仅删除所选边缘,同时保持所有连接的节点可见
- 隐藏边缘和源节点:从可视化效果中删除边缘及其源节点
- 隐藏边缘和目标节点:从可视化效果中删除边缘及其目标节点
- 隐藏边缘和节点:删除边缘和所有连接的节点(源和目标)
隐藏的边缘由右侧图形层面板的“边缘”部分的边缘标签配置确定。 可以指定隐藏操作应影响哪些边标签,从而允许隐藏具有特定关系类型的所有边,而不是仅仅隐藏单个连接。
第一个图像显示单击“仅隐藏边缘”后会发生什么情况。 在这种情况下,Bob 和 TechCorp 之间的“管理位置”边缘将从可视化效果中删除,但源节点(Bob)和目标节点(TechCorp)与其他连接保持可见。
在 Kusto 资源管理器中选择“隐藏边和节点”后,图形视图的屏幕截图显示了“管理位置”边缘、TechCorp 和 Bob 节点,以及其所有连接的边缘已被移除。
第二个图像演示了单击“隐藏边缘和节点”的结果。 在这种情况下,不仅删除了“管理边缘”,而且源节点(Bob)和目标节点(TechCorp)也从可视化中删除,以及连接到这些节点的所有边缘。 这可以更戏剧性地简化图形结构。
此功能在您希望通过删除其他关系来专注于特定类型的关系时,或当某些边类型与您当前分析无关时,特别有用。 基于标签隐藏边缘的功能为具有多个关系类型的复杂图形提供了强大的筛选功能。
为我放大 (Edge)
对边缘的“聚焦于我”操作将图形中心定位在所选边缘上,使该关系成为视图的中心焦点。
**
第一张图像显示了一个边缘(Bob 和 TechCorp 之间的“管理位置”关系),该边缘位于可视化效果的边框附近,使得更难专注于和检查。
右键单击此边缘并选择“使我居中”时,Kusto 资源管理器会自动调整视图以在可视化效果中居中所选边缘。 通过重新定位,可以更轻松地检查两个连接的实体的关系详细信息和属性。
第二张图像演示了视图现在如何以相同的“管理位置”边缘为中心,从而更清楚地关注此特定关系及其连接的节点(Bob 和 TechCorp)。
在处理密集图时,这一操作特别有价值,因为特定关系可能位于视图的边缘或被部分遮盖。 它可帮助你专注于重要的连接并检查边缘属性、标签以及两个特定实体的关联上下文,而无需手动导航或缩放以查找关系。
这些以边缘为中心的交互式动作补充节点动作,提供对图形探索的全面控制,并允许你根据分析需求操控实体和关系。
图表样式
“图形层”面板提供用于自定义图形可视化效果的综合样式和配置选项。 此面板提供了一组丰富的控件,可用于修改图形的外观、行为和交互式功能。
样式选择
顶部的 “样式 ”下拉列表允许定义和管理图形的多个样式。 选择或创建样式时,将基于该特定样式存储所有后续配置(节点、边缘、布局等)。 这样,便可以在相同图形数据的不同可视化配置之间快速切换,从而轻松创建针对不同分析目的优化的多个视图。
图形层
“图形层”部分提供类似于笔记本环境的体验,您可以在其中对图形运行一系列操作。 每个操作都以图形对象“G”开头,且可以有多个操作,每个操作都是在前一步结果的基础上进行。 这样,就可以创建按顺序应用的复杂图形转换和筛选作,这类似于在 Jupyter 笔记本中处理单元格的方式。
向图层添加新操作时,可以从各种操作类型中进行选择:
- 隐藏不匹配:隐藏不符合指定条件的节点和边缘,只保留满足筛选条件的元素
- 颜色:根据属性或条件对当前可见的节点或边缘应用颜色编码。 可以将分类颜色用于离散值(节点类型、部门)或数值属性(排名、指标)的渐变颜色。 该操作仅为已可见的元素上色,而不显示先前隐藏的元素。
- 颜色和显示:将着色与可见性控件相结合,使元素可见(隐藏它们),并根据指定的条件应用颜色。 此作将匹配元素的可见性变为打开,并同时为其设置颜色。
- 隐藏匹配:隐藏与指定条件匹配的节点和边缘,从可视化效果中删除满足筛选条件的元素
- 显示匹配:仅显示与指定条件匹配的节点和边缘,使其成为图形中的主要可见内容
每个作都可以使用特定的参数和条件进行配置,作按顺序从上到下执行。 通过此分层方法,可以通过组合多个作来生成复杂的筛选和样式逻辑,其中每个步骤都优化了上一作的结果。
查找
“ 查找 ”部分提供强大的搜索功能,可在图形可视化效果中搜索所有节点和边缘的属性。 可以输入搜索词来根据特定实体的属性值查找特定实体或关系。 输入搜索词并按 Enter 后,搜索将突出显示图形中的匹配元素。 然后,可以单击“ 查找下一步 ”以按顺序浏览所有搜索结果,以便轻松检查大型图形中的每个匹配项,并专注于感兴趣的特定元素。
版式
“布局”部分控制应如何呈现图形并提供主题选项:
-
布局算法:在不同布局选项之间进行选择,例如:
- 分组:将节点组织成逻辑群集
- Grouped3D:提供三维分组布局
- 循环:按循环模式排列节点
-
主题:选择首选视觉主题,选项如下:
- 浅色:标准浅色背景主题
- 深色:为偏爱深色界面的用户提供的深色背景主题
使用深色主题的分组布局根据其关系和属性将节点组织成逻辑群集,从而更轻松地识别图形数据中的不同组,同时提供一些用户喜欢的深色界面。
带有浅色主题的环形布局以环形排列节点,呈现对称视图,这对于理解图中关系的整体结构和平衡尤其有用。
具有深色主题的分组 3D 布局提供分组节点的三维透视,提供额外的深度和空间组织,可帮助可视化图形数据中的复杂分层关系。
Nodes
Nodes 部分提供对节点外观和行为的全面控制:
- 标签:定义应在每个节点上显示为标签的属性
- 密度:控制是否应在可视化效果中显示更多或更少的节点标签
- 颜色:基于节点的特定属性设置节点颜色,从而允许分类或基于值的颜色编码
-
大小:使用多个选项配置节点大小调整:
- 已修复:所有节点的大小都相同
- 传入/传出边缘:基于传入或传出连接数的大小
- 数值属性:基于特定数值属性值的大小
边缘
Edges 部分控制节点之间的连接外观:
- 标签:定义应在边缘上显示的文本
- 颜色:基于边缘的特定属性设置边缘颜色,有助于区分不同类型的关系
时间线
时间线部分对于临时图形分析至关重要,并确定节点和边缘何时出现和消失。 它为节点和边缘提供单独的配置:
节点生存期:
- 来源:指定节点首次出现在时间线中的时间
- To:指定节点何时消失或变为非活动状态
边缘寿命:
- 从:指定这些边何时首次出现在时间线中
- To:指定边缘何时消失或变为非活动状态
此配置对于界面下半部分中显示的时间线可视化效果特别有用,使你能够了解图形随时间的变化。 有关使用时间线功能的详细信息,请参阅 “时间线视图” 部分
属性
“ 属性” 部分显示有关在图形中选择的节点和边缘的详细信息。 这提供了与所选图形元素关联的所有属性和元数据的详细视图,便于检查和了解可视化效果背后的数据。
这些样式设置和配置选项协同工作,提供功能强大的灵活图形可视化环境,可根据特定的分析需求和视觉首选项进行定制。
时间线视图
时间线视图提供强大的功能,通过根据数据中的时态属性播放节点和边缘的创建、修改和删除,直观显示图形随时间变化的方式。 此功能对于了解关系的历史发展、跟踪网络结构的变化以及分析图形数据中的时态模式尤其有用。
时间线控件
时间线接口提供了多个交互式控件,用于浏览时间并专注于感兴趣的特定时间段:
播放控件:
- 播放/暂停:自动通过时间线播放,显示图形如何按时间顺序发展。 随时可以暂停以检查该特定时间的图形状态
- 向前/向后:逐步浏览时间线,允许详细检查图形结构中的每个临时更改
- 跳转到开始:立即返回到数据集中最早的时间点,显示图形的初始状态
- 跳转到末尾:直接移动到最新的时间点,显示图形的最终状态,并应用了所有临时更改
时间段选择:可以通过单击和拖动以创建临时选择来选择时间线上的特定时间段,这会自动更新图形,以仅显示在该时间范围内存在的节点和边缘。 这使你可以专注于关键时段,比较不同的时间窗口,并查看图形结构是如何演变的,并在调整标记的时间段边界时进行实时更新。
已知的限制
-
图形函数兼容性:目前不支持在“图形层”面板中使用
graph()
函数和配置语句呈现图形的组合。 使用graph()
函数时,层配置选项可能无法按预期与可视化配合使用。 - 大型图形性能:此可视化效果不适用于大型图形。 可以有效地可视化的节点和边缘数取决于客户端计算机的硬件功能,包括可用的内存和处理能力。 如果图形包含数千个节点或边缘,性能可能会显著下降。