Power BI Premium 中的大型语义模型

Power BI 语义模型可以在高度压缩的内存中缓存中存储数据,以便优化查询性能,从而实现快速的用户交互性。 利用高级容量,可以使用“大型语义模型存储格式”设置启用大小超过默认限制的大型语义模型。 启用后,语义模型大小会受到 Premium 容量大小或管理员设置的最大大小限制。

可以为所有 Premium P SKU、Embedded A SKU 和 Premium Per User (PPU) 启用大型语义模型。 就数据模型大小限制而言,Premium 中的大型语义模型大小限制可与 Azure Analysis Services 中的限制相比。

尽管语义模型需要超过 10 GB,但启用“大型语义模型存储格式”设置还具有其他优点。 如果打算使用基于 XMLA 终结点的工具来执行语义模型写入操作,请确保启用此设置,即使对于不一定被视为大型语义模型的语义模型也是如此。 启用后,大型语义模型存储格式可以提高 XMLA 写入操作的性能。

服务中的大型语义模型不会影响 Power BI Desktop 模型上传大小,该大小仍限制为 10 GB。 然而刷新后,服务中的语义模型可超过该限制。

重要

Power BI Premium 支持大型语义模型。 启用“大型语义模型存储格式”选项,以在 Power BI Premium 中使用大于默认限制的语义模型。

注意

在适用于美国政府 DoD 客户的 Power BI 服务中,Power BI Premium 中的大型语义模型不可用。 有关哪些功能可用和不可用的详细信息,请参阅面向美国政府客户的 Power BI 功能可用性

启用大型语义模型

此处所列步骤介绍了如何为发布到服务的新模型启用大型语义模型。 对于现有语义模型,只需要步骤 3。

  1. 在 Power BI Desktop 中创建模型。 如果语义模型将变大并逐渐消耗更多的内存,请确保配置增量刷新

  2. 将模型作为语义模型发布到服务。

  3. 在“服务”>“语义模型”>“设置”中,展开“大型语义模型存储格式”,将滑块设置为“启用”,然后选择“应用”

    启用大型语义模型滑块

  4. 调用刷新以加载基于增量刷新策略的历史记录数据。 第一次刷新可能需要一些时间来加载历史记录。 后续刷新速度应会更快,具体取决于增量刷新策略。

设置默认存储格式

在受支持的区域,对于在分配给高级容量的工作区中创建的所有新语义模型,默认情况下都可以启用大型语义模型存储格式。 如果区域不支持大型语义模型,则会禁用“大型语义模型存储格式”选项。 可以在区域可用性部分查看哪些区域受支持。

  1. 在工作区中,选择“设置”>“高级”。

  2. “默认存储格式”中,选择“大型语义模型存储格式”,然后选择“保存”

    启用默认存储格式

使用 PowerShell 启用

还可以使用 PowerShell 启用大型语义模型存储格式。 若要运行 PowerShell cmdlet,必须拥有容量管理员和工作区管理员权限。

  1. 查找语义模型 ID (GUID)。 在工作区的“语义模型”选项卡上的语义模型设置下,可以看到 URL 中的 ID。

    语义模型 GUID

  2. 从 PowerShell 管理员提示符,安装 MicrosoftPowerBIMgmt 模块。

    Install-Module -Name MicrosoftPowerBIMgmt
    
  3. 运行以下 cmdlet 以登录并检查语义模型存储模式。

    Login-PowerBIServiceAccount
    
    (Get-PowerBIDataset -Scope Organization -Id <Semantic model ID> -Include actualStorage).ActualStorage
    

    响应应如下所示。 存储模式为 ABF(Analysis Services 备份文件),这是默认设置。

    Id                   StorageMode
    
    --                   -----------
    
    <Semantic model ID>         Abf
    
  4. 运行以下 cmdlet 以设置存储模式。 转换为“高级文件”可能需要几秒钟。

    Set-PowerBIDataset -Id <Semantic model ID> -TargetStorageMode PremiumFiles
    
    (Get-PowerBIDataset -Scope Organization -Id <Semantic model ID> -Include actualStorage).ActualStorage
    

    响应应如下所示。 现在,存储模式已设置为“高级文件”。

    Id                   StorageMode
    
    --                   -----------
    
    <Semantic model ID>         PremiumFiles
    

可以使用 Get-PowerBIWorkspaceMigrationStatus cmdlet 检查语义模型转换的状态。

语义模型逐出

语义模型逐出是一项高级版功能,它允许语义模型大小之和明显大于容量购买的 SKU 大小的可用内存。 单个语义模型仍受 SKU 内存限制。 Power BI 使用动态内存管理从内存中逐出不活动的语义模型。 逐出语义模型,以便 Power BI 可以加载其他语义模型来处理用户查询。

注意

如果必须等待逐出语义模型重新加载,可能会遇到明显的延迟。

按需加载

默认情况下,对大型语义模型启用按需加载可显著缩短逐出语义模型的加载时间。 通过按需加载,你可在后续查询和刷新期间获得以下好处:

  • 相关数据页按需进行加载(分页到内存中)。

  • 逐出的语义模型可快速用于查询。

按需加载可显示附加的动态管理视图 (DMV) 信息,可用于识别使用模式和了解模型的状态。 例如,可通过从 SQL Server Management Studio (SSMS) 运行以下 DMV 查询来检查语义模型中每一列的“Temperature”“Last Accessed”统计信息:

Select * from SYSTEMRESTRICTSCHEMA ($System.DISCOVER_STORAGE_TABLE_COLUMN_SEGMENTS, [DATABASE_NAME] = '<Semantic model Name>')

检查语义模型大小

加载历史记录数据后,可以通过 XMLA 终结点使用 SSMS 在模型属性窗口中检查估计的语义模型大小。

估计的语义模型大小

还可以从 SSMS 运行以下 DMV 查询来检查语义模型大小。 对输出中的 DDICTIONARY_SIZE 和 USED_SIZE 列求和,得出以字节为单位的语义模型大小。

SELECT * FROM SYSTEMRESTRICTSCHEMA
($System.DISCOVER_STORAGE_TABLE_COLUMNS,
 [DATABASE_NAME] = '<Semantic model Name>') //Sum DICTIONARY_SIZE (bytes)

SELECT * FROM SYSTEMRESTRICTSCHEMA
($System.DISCOVER_STORAGE_TABLE_COLUMN_SEGMENTS,
 [DATABASE_NAME] = '<Semantic model Name>') //Sum USED_SIZE (bytes)

默认段大小

对于使用大型语义模型存储格式的语义模型,Power BI 会自动将默认段大小设置为 8,000,000 行,以便在大型表的内存需求和查询性能之间取得良好的平衡。 这与 Azure Analysis Services 中的段大小相同。 在将大型数据模型从 Azure Analysis Services 迁移到 Power BI 时,保持段大小一致有助于确保具有同等的性能特征。

注意事项和限制

使用大型语义模型时,记住以下限制:

  • 支持的区域:大型语义模型在支持 Azure 高级文件存储的 Azure 区域中可用。 查看区域可用性中的表,以查看所有受支持区域的列表。

  • 设置最大语义模型大小:管理员可以设置最大语义模型大小。 有关详细信息,请参阅数据集中的最大内存。

  • 刷新大型语义模型:接近容量大小一半的语义模型(例如,25 GB 容量大小的 12 GB 语义模型)可能会在刷新期间超过可用内存。 使用增强型刷新 REST APIXMLA 终结点可以执行细化的数据刷新,从而能够最大程度减少刷新所需内存,以适应容量大小。

  • 推送语义模型:推送语义模型不支持大型语义模型存储格式。

  • 不支持 Pro - Pro 工作区不支持大型语义模型。 如果工作区从 Premium 迁移到 Pro,则使用大型语义模型存储格式设置的任何语义模型都将无法加载。

  • 默认情况下,无法使用 REST API 更改工作区的设置以允许新语义模型使用大型语义模型存储格式。

上市区域

Power BI 中的大型语义模型仅在支持 Azure 高级文件存储的 Azure 区域中提供。

以下列表提供了可以使用 Power BI 中的大型语义模型的区域。 未在以下列表中列出的区域不支持使用大型模型。

注意

在工作区中创建大型语义模型后,该工作区必须留在该区域内。 不能将包含大型语义模型的工作区重新分配到另一个区域的 Premium 容量中。

Azure 区域 Azure 区域缩写
澳大利亚东部 australiaeast
Australia Southeast australiasoutheast
巴西南部 brazilsouth
加拿大东部 canadaeast
加拿大中部 canadacentral
印度中部 centralindia
美国中部 centralus
东亚 eastasia
美国东部 eastus
美国东部 2 eastus2
法国中部 francecentral
法国南部 francesouth
德国北部 germanynorth
德国中西部 germanywestcentral
Japan East japaneast
日本西部 japanwest
韩国中部 koreacentral
韩国南部 koreasouth
美国中北部 northcentralus
北欧 northeurope
南非北部 southafricanorth
南非西部 southafricawest
美国中南部 southcentralus
Southeast Asia southeastasia
瑞士北部 switzerlandnorth
瑞士西部 switzerlandwest
阿联酋中部 uaecentral
阿拉伯联合酋长国北部 uaenorth
英国南部 uksouth
英国西部 ukwest
西欧 westeurope
印度西部 westindia
美国西部 westus
美国西部 2 westus2

以下链接提供了与使用大型模型相关的有用信息: