Power BI 嵌入式分析中的容量计划

  • 版本 :2023.1(当前版本)

Power BI 嵌入式分析中的容量计划

计算 Power BI 嵌入式分析部署所需的容量类型可能很复杂。 所需的容量取决于多个参数,其中一些参数难以预测。


计划容量时需要考虑的一些事项包括:


要使用的数据模型

必需查询的数量和复杂度

应用程序使用情况的每小时分布

数据刷新频率

难以预测的其他使用模式

备注


本文介绍如何计划所需的容量,以及如何对 Power BI 嵌入式分析 A-SKU 执行负载测试评估。


计划容量时,请执行以下步骤:


优化性能和资源消耗

确定最低 SKU

评估容量负载

设置容量自动缩放

优化性能和资源消耗

在开始进行任何容量计划或负载测试评估之前,请优化报表和数据集的性能和资源消耗(尤其是内存占用情况)。


要优化性能,请遵循以下资源中的准则:


Power BI 优化指南

在 Power BI 嵌入式分析中提高性能的最佳做法

有关优化性能的更详细教程,请参阅 Learn 模块。


确定最低 SKU

下表汇总了与容量大小相关的所有限制。要确定容量的最小 SKU,请查看“每个数据集的最大内存 (GB)”列。 此外,请记住当前的限制。


容量 数据集 数据流 导出 API

容量 SKU V 核心 最大内存 (GB)1、2、3 DirectQuery/实时连接(每秒)1、2 每个查询的最大内存 (GB)1、2 模型刷新并行度2 数据流并行任务5 最大并发页数6

EM1/A1 1 3 3.75 1 5 4 20

EM2/A2 2 5 7.5 2 10 8 25

EM3/A3 4 10 15 2 20 16 35

P1/A4 8 25 30 6 40 32 55

P2/A5 16 50 60 6 80 64 95

P3/A6 32 100 120 10 160 64 175

P4/A74 64 200 240 10 320 64 200

P5/A84 128 400 480 10 640 64 200

1Power BI Premium 利用率和指标应用目前不公开这些指标。


2 这些限制仅适用于按容量的数据集工作负载。


3“每个数据集的最大内存 (GB)”列代表数据集大小的上限。 但是,必须为数据集上的刷新和查询等操作保留一定的内存。 一个容量上所允许的最大数据集大小有可能小于此列中的数字。 有关详细信息,请参阅内存分配。


4 这些 SKU 并非在所有区域都可用。 若要请求在不可用的区域使用这些 SKU,请联系 Microsoft 客户经理。


5 详细了解数据流中的并行任务。


6 有关 Power BI 交互式(未分页)报表的详细信息,请参阅将 Power BI 报表导出到文件。


评估容量负载

要测试或评估容量负载,请执行以下步骤:


在 Azure 中创建 Gen2 Embedded 容量用于测试。 使用与 Power BI 租户相同的 Azure AD 租户关联的订阅,并使用登录到同一租户的用户帐户。


为用于测试的一个或多个工作区分配你创建的 Gen2 容量。 可通过下列任一方式执行此操作:


使用组 AssignToCapacity API 以编程方式操作。 使用组 CapacityAssignmentStatus API 或通过 PowerShell 脚本检查分配状态(请参阅此示例中的 AssignWorkspacesToCapacity)。

以工作区管理员身份手动操作,或以容量管理员身份通过管理门户操作(另请参阅使用主用户为工作区分配容量)。

以容量管理员身份安装 Gen2 容量指标应用。 提供容量 ID 和时间(以天为单位)进行监视,然后刷新数据。 有关详细信息,请参阅使用 Gen2 指标应用。


使用 Power BI 容量负载评估工具评估容量需求。 此 GitHub 存储库还包含视频演练教程。 请谨慎使用此工具:使用多达几十个并发模拟用户进行测试,并推断更高的并发负载(数百或数千个并发负载,具体取决于需求)。有关详细信息,请参阅评估容量负载。 或者,使用其他负载测试工具,但将 iFrame 视为黑盒,并通过 JS 代码模拟用户活动。


使用 Premium Gen 2 容量指标应用(在步骤 3 中安装的)监视通过负载测试工具产生的容量利用率。 或者,可通过检查 [Azure 警报](/azure/azure-monitor/alerts/alerts-overview)中的 Gen2 指标来监视容量。


如果负载测试在容量上产生的实际 CPU 接近容量限制,请考虑为容量使用更大的 SKU。


设置自动缩放

借助此处所述的自动缩放技术,可以弹性调整 A-SKU 容量的大小来满足当前内存和 CPU 需求。


使用更新容量 API 纵向扩展或缩减容量 SKU。 请参阅此 Runbook PowerShell 脚本容量纵向扩展示例,了解如何使用 API 调用来创建自己的纵向扩展脚本和纵向缩减脚本。


使用 Azure Monitor 警报跟踪 Power BI Embedded 容量指标:


重载(如果容量的 CPU 已超过 100% 且处于重载状态,则为 1,否则为 0)

CPU(CPU 使用率百分比)

每个工作负载的 CPU(如果使用特定工作负载(如分页报表))。

当这些指标达到 Azure Monitor 警报规则中指定的值时,这些规则将触发以下事件:执行纵向扩展或纵向缩减 Runbook 脚本。 例如,可创建以下规则:如果重载 = 1 或 CPU = 95%,则调用纵向扩展容量 Runbook 以将容量更新到更高的 SKU。 还可创建以下规则:如果 CPU 低于 50%(例如 45%),则调用纵向缩减容量 Runbook 脚本以将容量更新到较低的 SKU。


还可以在执行数据集刷新之前和之后,按需以编程方式调用纵向扩展 Runbook 和纵向缩减 Runbook。 这可确保容量有足够的 RAM (GB) 用于使用该容量的大型数据集。