部署管道过程
通过部署过程,可以将部署管道中一个阶段的内容克隆到另一个阶段,这通常是从开发到测试,以及从测试到生产。
在部署过程中,Microsoft Fabric 将源阶段的内容复制到目标阶段。 复制过程中将保留复制的项之间的连接。 Fabric 还将配置的部署规则应用于目标阶段中更新的内容。 部署内容可能需要一段时间,具体取决于要部署的项的数量。 在此期间,可以导航到门户中的其他页面,但不能使用目标阶段中的内容。
也可使用部署管道 REST API 以编程方式部署内容。 若要详细了解此过程,请阅读使用 API 和 DevOps 自动化部署管道。
重要
暂时禁用 Microsoft Fabric 部署管道的新用户界面。 我们正在努力解决此问题,并会在新的 UI 再次可用时更新此页面。 在此期间,你可以继续使用原始 UI。
部署管道过程有两个主要部分:
定义部署管道结构
创建管道时,可以定义所需的阶段数以及其名称。 还可以公开一个或多个阶段。 阶段数及其名称是永久性的,在创建管道后无法更改。 但是,可以随时更改阶段的公共状态。
若要定义管道,请按照创建部署管道中的说明进行操作。
将内容添加到阶段
可以通过两种方式将内容添加到管道阶段:
将工作区分配到空阶段
将内容分配到空阶段时,会在容量上为部署到的阶段创建一个新工作区。 原始工作区的报表、仪表板和语义模型中的所有元数据都将被复制到要部署到的阶段中的新工作区。
部署完成后,刷新语义模型,以便可以使用新复制的内容。 必须要刷新语义模型,因为数据不会从一个阶段复制到另一个阶段。 若要了解在部署过程中会复制哪些项属性以及不会复制哪些项属性,请查看在部署期间复制的项属性部分。
有关如何向部署管道阶段分配和取消分配工作区的说明,请参阅将工作区分配到 Microsoft Fabric 部署管道。
创建工作区
在首次部署内容时,部署管道检查是否有权限。
如果具有权限,则工作区的内容将复制到要部署到的阶段,并在容量上创建该阶段的新工作区。
如果没有权限,则会创建工作区,但不会复制内容。 你可以要求容量管理员将工作区添加到容量,或者要求提供容量的分配权限。 稍后,在将工作区分配到容量时,可以将内容部署到此工作区。
如果你使用的是 Premium Per User (PPU),则工作区将与 PPU 自动关联。 在这种情况下,不需要权限。 但是,如果使用 PPU 创建工作区,则只有其他 PPU 用户可以访问此工作区。 此外,只有 PPU 用户才能使用此类工作区中创建的内容。
工作区和内容所有权
部署用户会自动成为克隆语义模型的所有者,也会成为新工作区的唯一管理员。
将内容从一个阶段部署到另一个阶段
可通过多种方式将内容从一个阶段部署到另一个阶段。 可以部署所有内容,也可以选择要部署的项。
你可以按照任一方向将内容部署到任何相邻阶段。
将内容从工作生产管道部署到具有现有工作区的阶段包括以下步骤:
将新内容部署为现有内容的补充。
部署更新的内容以替换某些已有的内容。
部署过程
将源阶段的内容复制到目标阶段时,Fabric 会标识目标阶段中的现有内容并将其覆盖。 若要确定需要覆盖哪个内容项,部署管道将使用父项与其克隆之间的连接。 当创建新内容时,将保留此连接。 覆盖操作仅覆盖项的内容。 项的 ID、URL 和权限保持不变。
在目标阶段中,未复制的项属性将保持部署前的状态。 新内容和新项将从源阶段复制到目标阶段。
自动绑定
在 Fabric 中,当各个项连接后,其中一个项将依赖于另一个项。 例如,报表将始终依赖于它连接到的语义模型。 一个语义模型可以依赖于另一个语义模型,还可以连接到依赖于此语义模型的多个报表。 如果两个项相连接,部署管道将始终尝试维护该连接。
在同一工作区中自动绑定
在部署期间,部署管道会检查依赖项。 部署要么成功要么失败,具体取决于项的位置,该项提供部署的项所依赖的数据。
链接项存在于目标阶段 - 部署管道会自动将已部署的项连接(自动绑定)到它在已部署阶段所依赖的项。 例如,如果将分页报表从开发部署到测试,并且报表连接到以前部署到测试阶段的语义模型,则它将自动连接到测试阶段的语义模型。
目标阶段不存在链接项 - 如果某个项依赖于另一个项,并且提供数据的项未被部署且未驻留在目标阶段,则部署管道的部署将失败。 例如,如果将报表从开发部署到测试,并且测试阶段不包含其语义模型,则部署将失败。 若要避免部署因未部署依赖项而失败,请使用“选择相关项”按钮。 “选择相关项”会自动选择所有相关项,这些项为要部署的项提供依赖项。
自动绑定仅适用于部署管道支持的且驻留在 Fabric 中的项。 若要查看项的依赖项,请在项的“更多选项”菜单中选择“查看世系”。
跨工作区自动绑定
部署管道会自动绑定跨管道连接的项(如果它们处于相同的管道阶段)。 部署此类项时,部署管道将尝试在已部署的项和它在其他管道中连接的项之间建立新连接。 例如,如果在管道 A 的测试阶段中有一个报表,该报表连接到管道 B 的测试阶段中的语义模型,则部署管道可识别此连接。
下面的示例包含有插图,可帮助展示跨管道自动绑定的工作原理:
你在管道 A 的开发阶段中有一个语义模型。
在管道 B 的开发阶段,还有一个报表。
你在管道 B 中的报表连接到管道 A 中的语义模型。你的报表将依赖此语义模型。
你将管道 B 中的报表从开发阶段部署到测试阶段。
部署成功与否取决于你在管道 A 的测试阶段中是否具有此部署所依赖的语义模型的副本:
如果有报表在管道 A 的测试阶段所依赖的语义模型的副本:
部署将成功,部署管道会将管道 B 测试阶段的报表连接(自动绑定)到管道 A 测试阶段的语义模型。
如果没有报表在管道 A 的测试阶段所依赖的语义模型的副本:
部署将失败,因为部署管道无法将管道 B 中测试阶段的报表连接(自动绑定)到它在管道 A 测试阶段中所依赖的语义模型。
避免使用自动绑定
在某些情况下,最好不要使用自动绑定。 例如,如果有一个管道用于开发组织语义模型,另一个管道用于创建报表。 在这种情况下,建议始终将所有报表连接到其所属管道生产阶段中的语义模型。 在这种情况下,请避免使用自动绑定功能。
你可使用三种方法来避免使用自动绑定功能:
不要将项连接到相应的阶段。 如果未在同一阶段连接项,部署管道将保留原始连接。 例如,假设你在管道 B 的开发阶段中有一个报表,该报表连接到管道 A 的生产阶段中的语义模型。在你将报表部署到管道 B 的测试阶段后,此报表仍会连接到管道 A 的生产阶段中的语义模型。
定义参数规则。 此选项不适用于报表。 只能将其与语义模型和数据流一起使用。
将报表、仪表板和磁贴连接到未连接到管道的代理语义模型或数据流。
自动绑定和参数
参数可用于控制语义模型或数据流与它们所依赖的项之间的连接。 当参数控制连接时,即使该连接包含应用于语义模型或数据流 ID 的参数或工作区 ID,也不会在部署后进行自动绑定。 在这种情况下,需要在部署后通过更改参数值或使用参数规则来重新绑定项目。
注意
如果使用参数规则重新绑定项,则参数的类型必须为 Text
。
正在刷新数据
尽可能保留目标项中的数据(如语义模型或数据流)。 如果没有对保留数据的项进行更改,则数据在部署前后没有变化。
在许多情况下,进行较小的更改(例如添加或删除表)后,Fabric 会保留原始数据。 对于重大的架构更改或数据源连接中的更改,需要完全刷新。
部署到具有现有工作区的阶段的要求
任何同时属于目标部署工作区和源部署工作区参与者的许可用户都可以将驻留在容量上的内容部署到具有现有工作区的阶段。 有关详细信息,请查看权限部分。
部署管道中的文件夹(预览版)
文件夹使用户能够以熟悉的方式有效组织和管理工作区各项。 将包含文件夹的内容部署到其他阶段时,将自动应用已应用项目的文件夹层次结构。
文件夹表示形式
工作区内容显示为工作区中的结构化内容。 列出了文件夹,为了查看其项目,需要选择文件夹。 项列表的顶部显示项的完整路径。 由于部署仅包含项目,因此只能选择包含支持项的文件夹。 选择用于部署的文件夹意味着选择其所有项和子文件夹及其用于部署的项。
此图显示了工作区中文件夹的内容。 文件夹的完整路径名显示在列表顶部。
在部署管道中,文件夹被视为项名称的一部分(项名称包括其完整路径)。 部署项目后,更改其路径(例如,从文件夹 A 移动到文件夹 B),然后部署管道会将此更改应用于其部署过程中的配对项 - 配对项也将移动到文件夹 B。如果在要部署到的阶段中不存在文件夹 B,则会先在其工作区中创建它。 只能在工作区页上查看和管理文件夹。
从该文件夹中部署文件夹中的项目。 不能同时部署不同层次结构中的项。
标识移动到不同文件夹的项目
由于文件夹被视为项目名称的一部分,因此在比较时,“部署管道”页上将移动到工作区中其他文件夹中的项目标识为“不同”。 此项不会显示在比较窗口中,因为它不是架构更改,而是设置更改。
无法在部署管道中手动部署单个文件夹。 部署其中至少一项时,会自动触发其部署。
配对项的文件夹层次结构仅在部署过程中更新。 在分配过程中,当配对过程结束后,配对项的层次结构尚未更新。
由于仅当其中一个项目部署时才会部署文件夹,因此无法部署空文件夹。
部署文件中若干项中的其中一项也会更新未部署到目标实现阶段的项的结构,即使并未部署这些项。
父子项表示形式
这些内容仅显示在新的 UI 中。 与工作区中的外观相同。 未部署子级,但在目标阶段重新创建
部署期间复制的项属性
有关支持的项列表,请参阅部署管道支持的项。
在部署期间,将复制以下项属性,并覆盖目标阶段的项属性:
数据源(支持部署规则)
参数(支持部署规则)
报表视觉对象
报表页
仪表板磁贴
模型元数据
项关系
仅当满足下列任一条件时才会复制敏感度标签。 如果不满足这些条件,在部署过程中则不会复制敏感度标签。
新项已部署,或者现有项已部署到空阶段。
注意
在租户上启用了默认标签且默认标签有效的情况下,如果要部署的项目是语义模型或数据流,则仅当标签受保护时,才会从源项目复制标签。 如果标签不受保护,则默认标签将应用于新创建的目标语义模型或数据流。
源项具有带保护的标签,而目标项没有。 在这种情况下,将出现一个弹出式窗口,询问是否同意替代目标敏感度标签。
未复制的项属性
在部署期间,不会复制以下项属性:
数据 - 不会复制数据。 仅复制元数据
URL
ID
权限 - 对于工作区或特定项
工作区设置 - 每个阶段都有其自己的工作区
应用内容和设置 - 若要更新应用,请参阅将内容更新到 Power BI 应用
以下语义模型属性在部署期间也不会被复制:
角色分配
刷新计划
数据源凭据
查询缓存设置(可从容量继承)
认可设置
支持的语义模型功能
部署管道支持多种语义模型功能。 本部分列出了两个可增强你的部署管道体验的语义模型功能:
增量刷新
部署管道支持增量刷新,该功能能让大型语义模型更快、更可靠地刷新,并降低消耗量。
使用部署管道,可以通过增量刷新对语义模型进行更新,同时保留数据和分区。 部署语义模型时,会连同策略一起复制。
若要了解增量刷新在数据流中的行为,请参阅为什么在使用数据流规则后,会看到两个数据源连接到我的数据流?
注意
第 1 代中不会复制增量刷新设置。
在管道中激活增量刷新
要启用增量刷新,首先在 Power BI Desktop 中进行配置,然后再发布语义模型。 发布后,增量刷新策略在管道中是类似的,并且只能在 Power BI Desktop 中进行创作。
使用增量刷新配置管道后,建议使用以下流:
在 Power BI Desktop 中对 .pbix 文件进行更改。 若要避免长时间的等待,可以使用数据的示例进行更改。
将 .pbix 文件上传到第一个(通常是开发)阶段。
将内容部署到下一阶段。 部署后,所做的更改将应用于正在使用的整个语义模型。
查看在每个阶段所做的更改,并在确认后部署到下一阶段,直到进入最后阶段。
用法示例
下面的几个示例演示了如何将增量刷新与部署管道集成。
创建新管道并将其连接到启用了增量刷新的语义模型的工作区。
在已包含在开发工作区中的语义模型中启用增量刷新。
从生产工作区中创建一个管道,此工作区包含的某个语义模型使用增量刷新。 例如,将现有工作区分配到新管道的生产阶段,然后使用向后部署将其部署到测试阶段,接着再部署到开发阶段。
将使用增量刷新的语义模型发布到作为现有管道一部分的工作区。
增量刷新限制
对于增量刷新,部署管道仅支持使用增强型语义模型元数据的语义模型。 使用 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 项时,已部署项的所有权可能会发生变化。 查看下表以了解谁可以部署每个项,以及部署如何影响项的所有权。
Fabric 项 | 部署现有项所需的权限 | 首次部署后的项所有权 | 部署到具有该项的阶段后的项所有权 |
---|---|---|---|
语义模型 | 工作区成员 | 进行部署的用户将成为所有者 | 不变 |
数据流 | 数据流所有者 | 进行部署的用户将成为所有者 | 不变 |
数据集市 | 数据市场所有者 | 进行部署的用户将成为所有者 | 不变 |
分页报表 | 工作区成员 | 进行部署的用户将成为所有者 | 进行部署的用户将成为所有者 |
常用操作所需的权限
下表列出了常用的部署管道操作所需的权限。 除非另有说明,否则对于每项操作,你需要所有列出的权限。
操作 | 所需的权限 |
---|---|
查看组织中的管道列表 | 无需许可证(免费用户) |
创建管道 | 具有以下许可证之一的用户:
|
删除管道 | 管道管理员 |
添加或删除管道用户 | 管道管理员 |
将工作区分配到某个阶段 |
|
取消将工作区分配给阶段 | 以下角色之一:
|
部署到空阶段 |
|
将项部署到下一阶段 |
|
查看或设置规则 |
|
管理管道设置 | 管道管理员 |
查看管道阶段 |
|
查看阶段中的项列表 | 管道管理员 |
比较两个阶段 |
|
查看部署历史记录 | 管道管理员 |
注意事项和限制
本部分列出了部署管道中的大部分限制。
- 工作区必须位于 Fabric 容量上。
- 单个部署中可部署的项数上限为 300。
- 不支持在部署后下载 .pbix 文件。
- 不支持 Microsoft 365 组作为管道管理员。
- 首次部署 Power BI 项时,如果目标阶段中存在另一个具有相同的名称和类型的项(例如,假设两个文件都为报表),则部署将失败。
- 有关工作区限制的列表,请参阅工作区分配限制。
- 有关不支持项列表,请参阅不支持的项。 未包含在该列表中的任何项均不受支持。
- 如果任一项具有循环或自我依赖(例如,项 A 引用项 B 和项 B 引用项 A),则部署将失败。
- 只有 Power BI 项可以部署到不同容量区域中的工作区。 其他 Fabric 项无法部署到不同容量区域中的工作区。
语义模型限制
无法部署使用实时数据连接的数据集。
不支持使用变体或自动日期/时间表的具有 DirectQuery 或复合连接模式的语义模型。 有关详细信息,请参阅如果我的数据集具有使用变体或日历表的 DirectQuery 或复合连接模式,我该怎么办?。
在部署期间,如果目标语义模型使用实时连接,则源语义模型也必须使用此连接模式。
部署之后,不支持(从其部署到的阶段)下载语义模型。
有关部署规则限制的列表,请参阅部署规则限制。
如果启用了自动绑定,则:
- 不支持本机查询和 DirectQuery 同时使用。
- 数据源连接必须是糅合表达式中的第一步。
部署 Direct Lake 语义模型时,它不会自动绑定至目标阶段中的项。 例如,如果 LakeHouse 是 DirectLake 语义模型的源,并且它们都部署到下一阶段,则目标阶段中的 DirectLake 语义模型仍将绑定至源阶段中的 LakeHouse。 使用数据源规则将其绑定至目标阶段中的项。 其他类型的语义模型会自动绑定至目标阶段中的配对项。
数据流限制
第 1 代中不会复制增量刷新设置。
将数据流部署到空阶段时,部署管道会创建一个新工作区,并将数据流存储设置为 Fabric blob 存储。 即使源工作区配置为使用 Azure Data Lake Storage Gen2 (ADLS Gen2),也将使用 Blob 存储。
数据流不支持服务主体。
不支持部署通用数据模型 (CDM)。
对于影响数据流的部署管道规则限制,请参阅部署规则限制。
如果在部署期间刷新数据流,部署将失败。
如果在数据流刷新期间比较阶段,结果不可预测。
数据市场限制
无法部署带有敏感度标签的数据市场。
只有数据市场所有者才能部署数据市场。