部署管道过程

通过部署过程,可以将部署管道中一个阶段的内容克隆到另一个阶段,这通常是从开发到测试,以及从测试到生产。

在部署过程中,Power BI 将当前阶段的内容复制到目标中。 复制过程中将保留复制的项之间的连接。 Fabric 还将配置的部署规则应用于目标阶段中更新的内容。 部署内容可能需要一段时间,具体取决于要部署的项的数量。 在此期间,可以导航到门户中的其他页面,但不能使用目标阶段中的内容。

也可使用部署管道 REST API 以编程方式部署内容。 若要详细了解此过程,请阅读使用 API 和 DevOps 自动化部署管道

将内容部署到空阶段

将内容部署到空阶段时,会在容量上为部署到的阶段创建一个新工作区。 原始工作区的报表、仪表板和语义模型中的所有元数据都将被复制到要部署到的阶段中的新工作区。

可通过多种方式将内容从一个阶段部署到另一个阶段。 可以部署所有内容,也可以选择要部署的项

你还可以将内容从部署管道中的后一阶段反向部署到前一阶段。

部署完成后,刷新语义模型,以便可以使用新复制的内容。 必须要刷新语义模型,因为数据不会从一个阶段复制到另一个阶段。 若要了解在部署过程中会复制哪些项属性以及不会复制哪些项属性,请查看在部署期间复制的项属性部分。

创建工作区

在首次部署内容时,部署管道检查是否有权限。

如果具有权限,则工作区的内容将复制到要部署到的阶段,并在容量上创建该阶段的新工作区。

如果没有权限,则会创建工作区,但不会复制内容。 你可以要求容量管理员将工作区添加到容量,或者要求提供容量的分配权限。 稍后,在将工作区分配到容量时,可以将内容部署到此工作区。

如果你使用的是 Premium Per User (PPU),则工作区将与 PPU 自动关联。 在这种情况下,不需要权限。 但是,如果使用 PPU 创建工作区,则只有其他 PPU 用户可以访问此工作区。 此外,只有 PPU 用户才能使用此类工作区中创建的内容。

部署用户会自动成为克隆语义模型的所有者,也会成为新工作区的唯一管理员。

将内容部署到现有工作区

将内容从工作生产管道部署到具有现有工作区的阶段包括以下步骤:

  • 将新内容部署为现有内容的补充。

  • 部署更新的内容以替换某些已有的内容。

部署过程

将当前阶段中的内容复制到目标阶段时,Fabric 会标识目标阶段中的现有内容并将其覆盖。 若要确定需要覆盖哪个内容项,部署管道将使用父项与其克隆之间的连接。 当创建新内容时,将保留此连接。 覆盖操作仅覆盖项的内容。 项的 ID、URL 和权限保持不变。

在目标阶段中,未复制的项属性将保持部署前的状态。 新内容和新项将从当前阶段复制到目标阶段。

自动绑定

在 Fabric 中,当各个项连接后,其中一个项将依赖于另一个项。 例如,报表将始终依赖于它连接到的语义模型。 一个语义模型可以依赖于另一个语义模型,还可以连接到依赖于此语义模型的多个报表。 如果两个项相连接,部署管道将始终尝试维护该连接。

在部署期间,部署管道会检查依赖项。 部署要么成功要么失败,具体取决于项的位置,该项提供部署的项所依赖的数据。

  • 链接项存在于目标阶段 - 部署管道会自动将已部署的项连接(自动绑定)到它在已部署阶段所依赖的项。 例如,如果将分页报表从开发部署到测试,并且它连接到以前部署到测试阶段的语义模型,则它将自动连接到该语义模型。

  • 目标阶段不存在链接项 - 如果某个项依赖于另一个项,并且提供数据的项未被部署且未驻留在目标阶段,则部署管道的部署将失败。 例如,如果将报表从开发部署到测试,并且测试阶段不包含其语义模型,则部署将失败。 若要避免部署因未部署依赖项而失败,请使用“选择相关项”按钮。 “选择相关项”会自动选择所有相关项,这些项为要部署的项提供依赖项。

自动绑定仅适用于部署管道支持的且驻留在 Fabric 中的项。 若要查看项的依赖项,请在项的“更多选项”菜单中选择“查看世系”。

项的“更多选项”菜单中的“查看世系”选项的屏幕截图。

跨管道自动绑定

部署管道会自动绑定跨管道连接的项(如果它们处于相同的管道阶段)。 部署此类项时,部署管道将尝试在已部署的项和它在其他管道中连接的项之间建立新连接。 例如,如果在管道 A 的测试阶段中有一个报表,该报表连接到管道 B 的测试阶段中的语义模型,则部署管道可识别此连接。

下面的示例包含有插图,可帮助展示跨管道自动绑定的工作原理:

  1. 你在管道 A 的开发阶段中有一个语义模型。

  2. 在管道 B 的开发阶段,还有一个报表。

  3. 你在管道 B 中的报表连接到管道 A 中的语义模型。你的报表将依赖此语义模型。

  4. 你将管道 B 中的报表从开发阶段部署到测试阶段。

  5. 部署成功与否取决于你在管道 A 的测试阶段中是否具有此部署所依赖的语义模型的副本:

    • 如果有报表在管道 A 的测试阶段所依赖的语义模型的副本:

      部署将成功,部署管道会将管道 B 测试阶段的报表连接(自动绑定)到管道 A 测试阶段的语义模型。

      此示意图显示管道 B 中报表从开发阶段到测试阶段的部署。该报表连接到管道 A 中的数据集。部署成功,因为在管道 A 的测试阶段存在报表所依赖的数据集的副本。在管道 B 的测试阶段部署报表后,将与管道 A 的测试阶段的数据集自动绑定。

    • 如果没有报表在管道 A 的测试阶段所依赖的语义模型的副本:

      部署将失败,因为部署管道无法将管道 B 中测试阶段的报表连接(自动绑定)到它在管道 A 测试阶段中所依赖的语义模型。

      示意图显示了在管道 B 中,从开发阶段到测试阶段的报表部署。该报表连接到管道 A 中的数据集。部署失败,因为管道 A 的测试阶段没有报表所依赖的数据集的副本。

避免使用自动绑定

在某些情况下,最好不要使用自动绑定。 例如,如果有一个管道用于开发组织语义模型,另一个管道用于创建报表。 在这种情况下,建议始终将所有报表连接到其所属管道生产阶段中的语义模型。 为实现此目的,请避免使用自动绑定功能。

显示两个管道的示意图。管道 A 在每个阶段都有一个语义模型,管道 B 在每个阶段都有一个报表。管道 B 的所有报表都连接到管道 A 生产阶段的语义模型。

你可使用三种方法来避免使用自动绑定功能:

  • 不要将项连接到相应的阶段。 如果未在同一阶段连接项,部署管道将保留原始连接。 例如,假设你在管道 B 的开发阶段中有一个报表,该报表连接到管道 A 的生产阶段中的语义模型。在你将报表部署到管道 B 的测试阶段后,此报表仍会连接到管道 A 的生产阶段中的语义模型。

  • 定义参数规则。 此选项不适用于报表。 只能将其与语义模型和数据流一起使用。

  • 将报表、仪表板和磁贴连接到未连接到管道的代理语义模型或数据流。

自动绑定和参数

参数可用于控制语义模型或数据流与它们所依赖的项之间的连接。 如果是参数在控制连接,即使连接包含应用于语义模型/数据流 ID 或工作区 ID 的参数,部署后也不会进行自动绑定。 在这种情况下,需要在部署后通过更改参数值或使用参数规则来重新绑定项目。

注意

如果使用参数规则重新绑定项,则参数的类型必须为 Text

正在刷新数据

尽可能保留目标项中的数据(如语义模型或数据流)。 如果没有对保留数据的项进行更改,则数据在部署前后没有变化。

在许多情况下,进行较小的更改(例如添加或删除表)后,Fabric 会保留原始数据。 对于重大的架构更改或数据源连接中的更改,需要完全刷新。

部署到具有现有工作区的阶段的要求

任何同时属于目标部署工作区和源部署工作区成员的许可用户都可以将驻留在容量上的内容部署到具有现有工作区的阶段。 有关详细信息,请查看权限部分。

部署管道中的文件夹(预览版)

工作区中的文件夹使用户能够以熟悉的方式有效组织和管理工作区各项。 将包含文件夹的内容部署到其他阶段时,将自动应用已应用项目的文件夹层次结构。

文件夹表示形式

由于部署仅包含项,因此工作区内容在部署管道中显示为项的平面列表。 当鼠标悬停在列表上的名称上时,会显示该项的完整路径。 在部署管道中,文件夹被视为项名称的一部分(项名称包括其完整路径)。 部署项目后,更改其路径(例如,从文件夹 A 移动到文件夹 B),然后部署管道会将此更改应用于其部署过程中的配对项 - 配对项也将移动到文件夹 B。如果在要部署到的阶段中不存在文件夹 B,则会先在其工作区中创建它。 只能在工作区页上查看和管理文件夹。

显示文件夹内项的完整路径名称的屏幕截图。该名称包括文件夹的名称。

标识移动到不同文件夹的项目

由于文件夹被视为项的名称的一部分,移动到工作区内其他文件夹的项在部署管道页面上识别为比较模式下的不同。 此外,除非还存在架构更改,否则将禁用标签旁边的选项,该选项用于打开显示架构更改的更改评审窗口。 将鼠标悬停在上方会显示一条注释,指出更改是设置 更改(如重命名)。 这是因为与源阶段的配对项相比,尚未部署更改。

显示“比较更改”屏幕的屏幕截图,其中一个阶段中已移动到其他文件夹的项目。

  • 无法在部署管道中手动部署单个文件夹。 部署其中至少一项时,会自动触发其部署。

  • 配对项的文件夹层次结构仅在部署过程中更新。 在分配过程中,当配对过程结束后,配对项的层次结构尚未更新。

  • 由于仅当其中一个项目部署时才会部署文件夹,因此无法部署空文件夹。

  • 部署文件中若干项中的其中一项也会更新未部署到目标实现阶段的项的结构,即使并未部署这些项。

支持的项

将内容从一个管道阶段部署到另一个管道阶段时,复制的内容可以包含以下项:

部署期间复制的项属性

在部署期间,将复制以下项属性,并覆盖目标阶段的项属性:

  • 数据源(支持部署规则

  • 参数(支持部署规则

  • 报表视觉对象

  • 报表页

  • 仪表板磁贴

  • 模型元数据

  • 项关系

仅当满足下列任一条件时才会复制敏感度标签。 如果不满足这些条件,在部署过程中将不会复制敏感度标签。

  • 新项已部署,或者现有项已部署到空阶段。

    注意

    在租户上启用了默认标签且默认标签有效的情况下,如果要部署的项目是语义模型或数据流,则仅当标签受保护时,才会从源项目复制标签。 如果标签不受保护,则默认标签将应用于新创建的目标语义模型或数据流。

  • 源项具有带保护的标签,而目标项没有。 在这种情况下,将出现一个弹出窗口,要求同意覆盖目标敏感度标签。

未复制的项属性

在部署期间,不会复制以下项属性:

  • 数据 - 不会复制数据。 仅复制元数据

  • URL

  • ID

  • 权限 - 对于工作区或特定项

  • 工作区设置 - 每个阶段都有其自己的工作区

  • 应用内容和设置 - 若要更新应用,请参阅将内容更新到 Power BI 应用

  • 个人书签

以下语义模型属性在部署期间也不会被复制:

  • 角色分配

  • 刷新计划

  • 数据源凭据

  • 查询缓存设置(可从容量继承)

  • 认可设置

支持的语义模型功能

部署管道支持多种语义模型功能。 本部分列出了两个可增强你的部署管道体验的语义模型功能:

增量刷新

部署管道支持增量刷新,该功能能让大型语义模型更快、更可靠地刷新,并降低消耗量。

使用部署管道,可以通过增量刷新对语义模型进行更新,同时保留数据和分区。 部署语义模型时,会连同策略一起复制。

若要了解增量刷新在数据流中的行为,请参阅为什么在使用数据流规则后,会看到两个数据源连接到我的数据流?

在管道中激活增量刷新

要启用增量刷新,首先在 Power BI Desktop 中进行配置,然后再发布语义模型。 发布后,增量刷新策略在管道中是类似的,并且只能在 Power BI Desktop 中进行创作。

使用增量刷新配置管道后,建议使用以下流:

  1. 在 Power BI Desktop 中对 .pbix 文件进行更改。 若要避免长时间的等待,可以使用数据的示例进行更改。

  2. 将 .pbix 文件上传到第一个(通常是开发)阶段。

  3. 将内容部署到下一阶段。 部署后,所做的更改将应用于正在使用的整个语义模型。

  4. 查看在每个阶段所做的更改,并在确认后部署到下一阶段,直到进入最后阶段。

用法示例

下面的几个示例演示了如何将增量刷新与部署管道集成。

  • 创建新管道并将其连接到启用了增量刷新的语义模型的工作区。

  • 在已包含在开发工作区中的语义模型中启用增量刷新。

  • 从生产工作区中创建一个管道,此工作区包含的某个语义模型使用增量刷新。 例如,将现有工作区分配到新管道的生产阶段,然后使用向后部署将其部署到测试阶段,接着再部署到开发阶段。

  • 将使用增量刷新的语义模型发布到作为现有管道一部分的工作区。

增量刷新限制

对于增量刷新,部署管道仅支持使用增强型语义模型元数据的语义模型。 使用 Power BI Desktop 创建或修改的所有语义模型会自动实现增强的语义模型元数据。

将语义模型重新发布到启用了增量刷新的活动管道时,以下更改会导致部署失败,原因可能是数据丢失:

  • 重新发布一个不使用增量刷新的语义模型,以替换启用了增量刷新的语义模型。

  • 重命名启用了增量刷新的表。

  • 在启用了增量刷新的表中重命名非计算列。

允许进行其他更改,如添加列、删除列和重命名计算列。 但是,如果更改影响显示,则需要在更改可见之前进行刷新。

复合模型

使用复合模型,可以设置具有多个数据连接的报表。

可以使用复合模型功能将 Fabric 语义模型连接到外部语义模型,如 Azure Analysis Services。 有关详细信息,请参阅使用适用于 Fabric 语义模型和 Azure Analysis Services 的 DirectQuery

在部署管道中,可以使用复合模型将语义模型连接到管道外部的其他 Fabric 语义模型。

自动聚合

自动聚合基于用户定义的聚合构建而成,并且使用机器学习持续优化 DirectQuery 语义模型,以获得最佳报表查询性能。

部署后每个语义模型都将保留其自动聚合。 部署管道不会更改语义模型的自动聚合。 这意味着,如果您部署具有自动聚合的语义模型,目标阶段中的自动聚合将保持不变,并且不会被源阶段部署的自动聚合覆盖。

若要启用自动聚合,请按照配置自动聚合中的说明进行操作。

混合表

混合表是具有增量刷新的表,可以同时具有导入和直接查询分区。 在干净部署过程中,将复制刷新策略和混合表分区。 当部署到已经具有混合表分区的管道阶段时,只会复制刷新策略。 若要更新分区,请刷新表。

将内容更新到 Power BI 应用

Power BI 应用是将内容分发到免费 Fabric 使用者的建议方法。 可以使用部署管道更新 Power BI 应用的内容,从而在应用生命周期方面为你提供更多的控制和灵活性。

为每个部署管道阶段创建一个应用,以便可以从最终用户的角度测试每个更新。 使用工作区卡中的“发布”或“查看”按钮,在特定管道阶段中发布或查看应用。

在生产阶段右下角突出显示“发布应用”按钮的屏幕截图。

在生产阶段中,右下角的“主操作”按钮会在 Fabric 中打开“更新应用”页,以便任何内容更新都可供应用用户使用。

在生产阶段右下角突出显示“更新应用”按钮的屏幕截图。

重要

部署过程不包括更新应用内容或设置。 若要应用对内容或设置的更改,需要在所需的管道阶段手动更新应用。

权限

管道及为其分配的工作区都需要权限。 管道权限和工作区权限是单独授予和管理的。

  • 管道只有一个权限,即“管理员”,这是共享、编辑和删除管道所必需的。

  • 工作区具有不同的权限,也称为角色。 工作区角色决定对管道中工作区的访问级别。

  • 部署管道不支持 Microsoft 365 组作为管道管理员。

要在管道中从一个阶段部署到另一个阶段,你必须是管道管理员,并且是分配给相关阶段的工作区的成员或管理员。 例如,未分配工作区角色的管道管理员可以查看管道并与他人共享该管道。 但是,此用户无法在管道或服务中查看工作区的内容,并且无法执行部署。

权限表

本部分介绍部署管道权限。 本部分中列出的权限可能在其他 Fabric 功能中具有不同的应用程序。

最低部署管道权限是“管道管理员”,这是所有部署管道操作所必需的。

User 管道权限 注释
管道管理员
  • 查看管道
  • 与其他人共享管道
  • 编辑和删除管道
  • 从阶段取消分配工作区
  • 可以在 Power BI 服务中查看标记为分配给管道的工作区
管道访问权限不会授予查看操作或对工作区内容执行操作的权限。
工作区查看器
(和管道管理员)
  • 使用者内容
  • 从阶段取消分配工作区
被分配了“查看者”角色但没有构建权限的工作区成员无法访问语义模型,也无法编辑工作区内容。
工作区参与者
(和管道管理员)
  • 使用者内容
  • 比较阶段
  • 查看语义模型
  • 从阶段取消分配工作区
工作区成员
(和管道管理员)
  • 查看工作区内容
  • 比较阶段
  • 部署项(必须是源和目标工作区的成员或管理员)
  • 更新语义模型
  • 从阶段取消分配工作区
  • 配置语义模型规则(你必须是语义模型所有者)
如果已启用了租户的“语义模型安全性”部分中的“阻止重新发布和禁用位于租户”设置,则只有语义模型所有者才能更新语义模型。
工作区管理员
(和管道管理员)
  • 查看工作区内容
  • 比较阶段
  • 部署项
  • 向阶段分配工作区
  • 更新语义模型
  • 从阶段取消分配工作区
  • 配置语义模型规则(你必须是语义模型所有者)

授予的权限

部署 Power BI 项时,已部署项的所有权可能会发生变化。 查看下表以了解谁可以部署每个项,以及部署如何影响项的所有权。

Fabric 项 部署现有项所需的权限 首次部署后的项所有权 部署到具有该项的阶段后的项所有权
语义模型 工作区成员 进行部署的用户将成为所有者 不变
数据流 数据流所有者 进行部署的用户将成为所有者 不变
数据集市 数据市场所有者 进行部署的用户将成为所有者 不变
分页报表 工作区成员 进行部署的用户将成为所有者 进行部署的用户将成为所有者

下表列出了常用的部署管道操作所需的权限。 除非另有说明,否则对于每项操作,你需要所有列出的权限。

操作 所需的权限
查看组织中的管道列表 无需许可证(免费用户)
创建管道 具有以下许可证之一的用户:
  • Pro
  • PPU
  • 高级
删除管道 管道管理员
添加或删除管道用户 管道管理员
将工作区分配到某个阶段
  • 管道管理员
  • 工作区管理员(要分配的工作区)
取消将工作区分配给阶段 下列类型作之一:
部署到空阶段
  • 管道管理员
  • 源工作区成员或管理员
将项部署到下一阶段
  • 管道管理员
  • 源阶段和目标阶段的工作区成员或管理员
  • 要部署数据市场或数据流,你必须是已部署项的所有者
  • 如果语义模型租户管理员开关已打开并且用户要部署语义模型,则用户必须是语义模型的所有者
查看或设置规则
  • 管道管理员
  • 目标工作区参与者、成员或管理员
  • 要为其设置规则的项的所有者
管理管道设置 管道管理员
查看管道阶段
  • 管道管理员
  • 工作区读取者、参与者、成员或管理员。你将看到工作区权限授予其访问权限的项。
查看阶段中的项列表 管道管理员
比较两个阶段
  • 管道管理员
  • 两个阶段的工作区参与者、成员或管理员
查看部署历史记录 管道管理员

注意事项和限制

本部分列出了部署管道中的大部分限制。

  • 工作区必须位于 Fabric 容量上。
  • 单个部署中可部署的项数上限为 300。
  • 不支持在部署后下载 .pbix 文件。
  • 不支持 Microsoft 365 组作为管道管理员。
  • 首次部署 Power BI 项时,如果目标阶段中存在另一个类型相似的项(例如,假设两个文件都为报表)且名称相同,则部署将失败。
  • 有关工作区限制的列表,请参阅工作区分配限制
  • 有关不支持项列表,请参阅不支持的项。 未包含在该列表中的任何项均不受支持。
  • 如果任一项具有循环或自我依赖(例如,项 A 引用项 B 和项 B 引用项 A),则部署将失败。
  • 只有 Power BI 项可以部署到不同容量区域中的工作区。 其他 Fabric 项无法部署到不同容量区域中的工作区。

语义模型限制

数据流限制

  • 将数据流部署到空阶段时,部署管道会创建一个新工作区,并将数据流存储设置为 Fabric blob 存储。 即使源工作区配置为使用 Azure Data Lake Storage Gen2 (ADLS Gen2),也将使用 Blob 存储。

  • 数据流不支持服务主体。

  • 不支持部署通用数据模型 (CDM)。

  • 对于影响数据流的部署管道规则限制,请参阅部署规则限制

  • 如果在部署期间刷新数据流,部署将失败。

  • 如果在数据流刷新期间比较阶段,结果不可预测。

数据市场限制

  • 无法部署带有敏感度标签的数据市场。

  • 只有数据市场所有者才能部署数据市场。

开始使用部署管道