工作负荷管理

适用于:✅Microsoft Fabric 中的 SQL 分析终结点和仓库

本文介绍 Microsoft Fabric 中数据仓库背后的体系结构和工作负载管理。

数据处理

仓库和 SQL 分析终结点共享相同的基础处理体系结构。 在检索或引入数据时,它利用为小型和大规模数据和计算函数构建的分布式引擎。

处理系统是无服务器的,后端计算容量可以自主扩展和缩减以满足工作负载需求。

SQL 引擎示意图。

提交查询时,SQL 前端 (FE) 会执行查询优化,以根据数据大小和复杂性确定最佳计划。 计划生成后,将提供给分布式查询处理 (DQP) 引擎。 DQP 通过将查询拆分为在后端计算节点上执行的较小查询来协调查询的分布式执行。 每个小查询称为一个任务,表示一个分布式执行单元。 它从 OneLake 中读取文件,联接其他任务的结果,对从其他任务检索到的数据进行分组或排序。 对于引入作业,它还会将数据写入正确的目标表。

处理数据时,结果将返回到 SQL 前端,以便返回给用户或调用应用程序。

弹性和复原能力

后端计算容量受益于快速预配体系结构。 尽管资源分配没有 SLA,但通常会在几秒钟内获取新节点。 随着资源需求的增加,新工作负载会利用横向扩展的容量。 缩放是一种联机操作,查询处理不会中断。

显示资源快速预配的示意图。

系统具有容错能力,如果节点运行不正常,则在该节点上执行的操作将重新分发给正常节点完成。

仓库和 SQL 分析终结点提供可突发容量,使工作负载能够使用更多资源来实现更好的性能;对于在高峰期突然出现峰值且具有大量未使用的空闲容量的客户,它们还可使用平滑功能来减轻客户负担。 平滑通过分散计算评估来简化容量管理,以确保客户作业平稳高效地运行。

计划和资源配置

分布式查询处理计划程序在任务级别运行。 查询以任务的有向无环图 (DAG) 的形式向计划程序显示。 这一概念对 Spark 用户来说很熟悉。 DAG 允许并行和并发操作,因为不相互依赖的任务可以同时执行或无序执行。

查询到达时,根据先入先出 (FIFO) 原则计划其任务。 如果有空闲容量,该计划程序可能会使用“最适合”的方法来优化并发。

当计划程序识别到资源配置压力时,会调用缩放操作。 缩放是自主管理的,后端拓扑会随着并发性的提高而增长。 由于获取节点需要几秒钟的时间,因此系统未针对需要分布式处理的查询的一致亚秒级性能进行优化。

当压力下降时,后端拓扑会缩减,并将资源释放回该区域。

引入隔离

适用于:✅Microsoft Fabric 中的仓库

在 Microsoft Fabric 中仓库的后端计算池中,加载活动的资源与分析工作负载的资源隔离。 这可以提高性能和可靠性,因为引入作业可以在针对 ETL 进行优化的专用节点上运行,并且不会与其他查询或应用程序争夺资源。

显示独立引入活动的示意图。

会话

仓库和 SQL 分析终结点的用户会话限制为每个工作区 724 个。 达到此限制时,将返回错误:The user session limit for the workspace is 724 and has been reached

注意

由于 Microsoft Fabric 是一个 SaaS 平台,因此运行许多系统连接来持续优化环境。 DMV 同时显示系统和用户会话。 有关详细信息,请参阅使用 DMV 进行监视

最佳实践

Microsoft Fabric 工作区提供分布式计算系统的自然隔离边界。 工作负载可以利用此边界来管理成本和性能。

OneLake 快捷方式可用于在其他工作区中创建表的只读副本,以在创建隔离边界的多个 SQL 引擎之间分配负载。 这可以有效地增加执行只读查询的最大会话数。

此示意图图显示两个独立的工作区,例如“财务”和“营销”工作区。