教程:使用变量库自定义和共享项配置

本教程介绍如何在 Microsoft Fabric 管道中使用动态内容。 创建变量库项并向其添加变量时,可以为部署管道的各个阶段自动执行值。 在本教程中,将数据从一个 Lakehouse 复制到另一个 Lakehouse。 然后使用变量库设置复制活动的源值和目标值。

在本教程中,你将:

  • 创建变量库。
  • 将变量添加到库。
  • 为变量定义其他值集。
  • 使用工作区(管道)中另一项中的变量。
  • 编辑 Git 存储库中的变量。
  • 创建部署管道并部署变量库。
  • 更改部署管道的目标阶段中设置的活动值。
  • 显示变量的值符合每个阶段中设置的活动值。

下图显示了本教程的工作区布局。

工作区布局的关系图。

先决条件

创建 Stage LHs 工作区,使用示例数据SourceLH_Stage lakehouse,以及Pipeline_Stage管道

首先,创建一个工作区和 Lakehouse 以用作初始暂存数据:

  1. 转到 Power BI

  2. 在边栏上,选择 “工作区”。

  3. 创建工作区。 将其称为 阶段 LHs

    用于创建新工作区的按钮的屏幕截图。

  4. 创建 Lakehouse:

    1. 在工作区顶部,选择“ 新建项”。

    2. “存储数据”下,选择 Lakehouse

      用于选择 Lakehouse 作为新项的磁贴的屏幕截图。

    3. 输入名称 SourceLH_Stage,然后选择“ 创建”。

  5. 创建管道:

    1. 在湖仓中,选择新建管道

      用于创建新管道的磁贴的屏幕截图。

    2. 输入名称 Pipeline_Stage,然后选择“ 创建”。

    3. “将数据复制到 Lakehouse ”向导的“ 选择数据源 ”页上,选择 “示例数据”。

      用于选择数据源以将数据复制到 Lakehouse 的页面的屏幕截图。

    4. 选择 “公共假日”。

      选择公共假日示例数据的屏幕截图。

    5. 示例数据加载完成后,选择“ 下一步”。

    6. “连接到数据目标 ”页上,选择“ 下一步”。

      管道目标的详细信息的屏幕截图。

    7. “审阅 + 保存 ”页上,选择“ 保存 + 运行”。

      用于保存和运行管道的页面的屏幕截图。

使用“变量”工作区创建源 LHs

现在,创建一个工作区,用于变量库并使用它:

  1. 转到 Power BI

  2. 在边栏上,选择 “工作区”。

  3. 创建工作区。 使用变量调用它 源 LHs

创建SourceLH_Dev、SourceLH_Test和SourceLH_Prod湖屋

接下来,创建用于变量库的三个 Lakehouse:

  1. 创建第一个 Lakehouse:

    1. 在边栏上,选择 “变量”工作区的源 LHs

    2. 选择“新建项”。

    3. “存储数据”下,选择 Lakehouse

    4. 输入 名称SourceLH_Dev,然后选择“ 创建”。

  2. 按照前面的步骤创建第二个 Lakehouse。 将其命名为SourceLH_Test

  3. 按照前面的步骤创建第三个 Lakehouse。 将其命名为SourceLH_Prod

  4. 在边栏上,选择 “变量”工作区的源 LHs ,并确保它包含所有新建的 Lakehouse。

获取 lakehouses 的工作区 ID 和对象 ID

在这些步骤中,你将获取要在变量库中使用的唯一标识符:

  1. Power BI 的边栏中,选择 “阶段 LHs ”工作区。

  2. 在工作区中,选择 SourceLH_Stage lakehouse。

  3. 复制 URL 中的工作区 ID 和 Lakehouse 对象 ID。

    显示如何获取工作区标识符和 Lakehouse 对象标识符的屏幕截图。

  4. 源 LHs 中的变量”工作区中的SourceLH_Dev和SourceLH_Test lakehouse 重复上述步骤。

使用变量创建变量库

现在,创建变量库:

  1. “包含变量”工作区的源 LHs 中,选择“ 新建”项

  2. “开发数据”下,选择“变量库”。

    显示用于创建变量库的磁贴的屏幕截图。

  3. 将库命名 为 WS 变量,然后选择“ 创建”。

  4. 选择 “新建变量”。

    显示用于选择新变量的按钮的屏幕截图。

  5. 创建以下变量:

    名称 类型 默认值集
    Source_LH 字符串 <SourceLH_Stage湖屋的 GUID>
    Source_WSID 字符串 <SourceLH_Stage工作区的 GUID>
    Destination_LH 字符串 <SourceLH_Dev lakehouse 的 GUID>
    Destination_WSID 字符串 <SourceLH_Dev 工作区的 GUID>
    SourceTable_Name 字符串 Processed
    DestinationTable_Name 字符串 DevCopiedData

    变量库的已完成默认集的屏幕截图。

  6. 选择“保存”

创建备用值集

在以下步骤中,将备用值集添加到变量库:

  1. 创建第一个值集:

    1. WS 变量 库中,选择“ 添加值集”。

    2. 输入 测试 VS 以获取名称,然后选择“ 创建”。

    3. 创建以下变量:

      名称 类型 默认值集
      Source_LH 字符串 <SourceLH_Dev lakehouse 的 GUID>
      Source_WSID 字符串 <SourceLH_Dev 工作区的 GUID>
      Destination_LH 字符串 <SourceLH_Test lakehouse 的 GUID>
      Destination_WSID 字符串 <SourceLH_Test 工作区的 GUID>
      SourceTable_Name 字符串 DevCopiedData
      DestinationTable_Name 字符串 TestCopiedData
    4. 选择“ 保存>同意”。

  2. 创建第二个值集:

    1. 选择 “添加值集”。

    2. 输入 Prod VS 以获取名称,然后选择“ 创建”。

    3. 创建以下变量:

      名称 类型 默认值集
      Source_LH 字符串 <SourceLH_Test lakehouse 的 GUID>
      Source_WSID 字符串 <SourceLH_Test 工作区的 GUID>
      Destination_LH 字符串 <SourceLH_Prod湖屋的 GUID>
      Destination_WSID 字符串 <SourceLH_Prod工作区的 GUID>
      SourceTable_Name 字符串 TestCopiedData
      DestinationTable_Name 字符串 ProdCopiedData

      变量库中已完成的备用值的屏幕截图。

    4. 选择“ 保存>同意”。

创建Pipeline_Deploy管道并声明变量

在这些步骤中,将创建管道并声明变量:

  1. “包含变量”工作区的源 LHs 中,选择“ 新建”项

  2. 在“ 获取数据”下,选择 “管道”。

    管道磁贴的屏幕截图。

  3. 输入名称 Pipeline_Deploy,然后选择“ 创建”。

  4. 选择“ 复制数据>添加到画布”。

    用于向画布添加复制数据的菜单选择的屏幕截图。

  5. 选择画布,使焦点关闭 “复制数据”。

  6. 选择 **库变量**。

    库变量选项卡的屏幕截图。

  7. 选择“ 新建”,然后添加以下变量:

    名称 图书馆 变量名称 类型
    SourceLH WS 变量 Source_LH 字符串
    SourceWSID WS 变量 Source_WSID 字符串
    DestinationLH WS 变量 Destination_LH 字符串
    DestinationWSID WS 变量 Destination_WSID 字符串
    SourceTableName WS 变量 SourceTable_Name 字符串
    DestinationTableName WS 变量 DestinationTable_Name 字符串

    将变量添加到管道的屏幕截图。

  8. 选择“保存”

配置Pipeline_Deploy管道的源连接

在以下步骤中,为管道配置源连接:

  1. “带变量”工作区的源 LHs 中,转到 Pipeline_Deploy

  2. 在画布上,选择“ 复制数据 ”,使焦点位于 “复制数据”上。

  3. 选择 “源”。

  4. 配置 SourceLH

    1. “源>连接”下,选择“ 添加动态内容”。

    2. 选择省略号(...),然后选择“库变量”。

    3. 选择 SourceLH。 它用 @pipeline().libraryVariables.SourceLH. 填充框。 选择“确定”

      用于为连接源添加动态内容的窗格的屏幕截图。

  5. 配置 SourceWSID

    1. “源>工作区 ID”下,选择“ 添加动态内容”。

    2. 选择省略号(...),然后选择“库变量”。

    3. 选择 SourceWSID。 它用 @pipeline().libraryVariables.SourceWSID. 填充框。 选择“确定”

      用于为工作区源添加动态内容的窗格的屏幕截图。

  6. 配置 SourceTableName

    1. “源>”下, 手动选择 Enter,选择 “表名称”,然后选择“ 添加动态内容”。

    2. 选择省略号(...),然后选择“库变量”。

    3. 选择 SourceTableName。 它用 @pipeline().libraryVariables.SourceTableName. 填充框。 选择“确定”

      用于为表名称添加动态内容的窗格的屏幕截图。

  7. 设置源连接后,可以对其进行测试。 选择 “预览数据”,然后在浮出控件上选择“ 确定 ”。 填充数据后,可以关闭数据预览。

    源连接的数据预览的屏幕截图。

配置Pipeline_Deploy管道的目标连接

在以下步骤中,为管道配置目标连接:

  1. “带变量”工作区的源 LHs 中,转到 Pipeline_Deploy

  2. 在画布上,选择“ 复制数据 ”,使焦点位于 “复制数据”上。

  3. 选择 “目标”。

  4. 配置 SourceLH

    1. “目标>连接”下,选择“ 添加动态内容”。

    2. 选择省略号(...),然后选择“库变量”。

    3. 选择 SourceLH。 它用 @pipeline().libraryVariables.DestinationLH. 填充框。 选择“确定”

      用于为连接目标添加动态内容的窗格的屏幕截图。

  5. 配置 DestinationWSID

    1. “目标>工作区 ID”下,选择“ 添加动态内容”。

    2. 选择省略号(...),然后选择“库变量”。

    3. 选择 DestinationWSID。 它用 @pipeline().libraryVariables.DestinationWSID. 填充框。 选择“确定”

      用于为工作区目标添加动态内容的窗格的屏幕截图。

  6. 配置 DestinationTableName

    1. “目标>”下, 手动选择 Enter,选择 “表名称”,然后选择“ 添加动态内容”。

    2. 选择省略号(...),然后选择“库变量”。

    3. 选择 DestinationTableName。 它用 @pipeline().libraryVariables.DestinationTableName. 填充框。 选择“确定”

      用于为目标表名称添加动态内容的窗格的屏幕截图。

  7. 设置目标连接后,保存管道并选择“ 运行”。 确认它已成功运行。

    管道运行的屏幕截图。

创建部署管道

现在,创建部署管道:

  1. “包含变量”工作区的源 LHs 中,选择“ 创建部署管道”。

  2. 将管道 命名为Deployment_Pipeline_Var,然后选择“ 下一步”。

    用于命名新部署管道的窗格的屏幕截图。

  3. 在部署管道中,选择“ 创建并继续”。

    显示用于创建部署管道的按钮的屏幕截图。

  4. 对于 开发 阶段:

    1. 在下拉列表中,选择 包含工作区变量的源 LHs 。 然后选择 “分配 ”复选标记。

      为新部署管道选择工作区的屏幕截图。

    2. 选择继续。 阶段现在应填充工作区中的项。

      部署管道的开发部分的屏幕截图。

  5. 对于 测试 阶段:

    1. 选中顶部的复选框以选择所有项目。 然后清除 SourceLH_Dev 湖屋的复选框。

    2. 选择“ 部署 ”按钮。 再次选择“ 部署 ”。 现在应填充 测试 阶段。

      新部署管道的测试部分的屏幕截图。

  6. 对于 生产 阶段:

    1. 选中顶部的复选框以选择所有项目。 然后清除 SourceLH_Test 湖屋的复选框。

    2. 选择“ 部署 ”按钮。 再次选择“ 部署 ”。 现在应填充 生产 阶段。

      新部署管道的生产部分的屏幕截图。

为每个阶段设置变量库的活动集

在这些步骤中,为部署管道中的每个阶段配置活动集:

  1. 测试 阶段配置活动集:

    1. 在边栏上,选择 Deployment_Pipeline_Var 管道。

    2. 选择 “测试 ”阶段。

      测试阶段的屏幕截图。

    3. 选择 WS 变量

    4. 选择省略号(...),然后选择“ 设置为活动”。 选择“ 设置为活动 ”按钮。

      变量库的屏幕截图,其中选择了将测试阶段设置为活动阶段。

      活动集现已配置。

      部署管道中配置的活动集的屏幕截图。

    5. 选择“ 保存>同意”。

  2. Prod 阶段配置活动集:

    1. 在边栏上,选择 Deployment_Pipeline_Var 管道。

    2. 选择 Prod 阶段。

    3. 选择 WS 变量

    4. 选择省略号(...),然后选择“ 设置为活动”。 选择“ 设置为活动 ”按钮。

    5. 选择“ 保存>同意”。

验证并测试变量库

设置变量库并为部署管道的每个阶段配置所有活动集后,可以验证它们:

  1. 检查 SourceLHs_Dev 湖屋:

    1. “带变量”工作区的源 LHs 中,选择 SourceLHs_Dev lakehouse。

    2. 将连接从 Lakehouse 更改为 SQL 分析终结点

    3. 在资源管理器中,展开 Schemas>dbo>

    4. 确认是否显示 DevCopiedData 表。

      资源管理器中表的区域的屏幕截图。

  2. 切换到 SourceLHs_Test lakehouse 并重复上述步骤。

    TestCopiedData 表不应显示,因为尚未运行测试 VS 活动集的管道。

  3. 切换到 SourceLHs_Prod lakehouse 并重复上述步骤。

    ProdCopiedData 表不应显示,因为尚未使用 Prod VS 活动集运行管道。

  4. 检查Deployment_Pipeline_Var管道的测试阶段:

    1. 切换到 Deployment_Pipeline_Var 管道并选择 “测试 ”阶段。

    2. 选择 Pipeline_Deploy 管道。

    3. 选择“ 运行”。 此过程应成功完成。

  5. 再次检查 SourceLHs_Test 湖屋:

    1. 切换到 SourceLHs_Test lakehouse。

    2. 将连接从 Lakehouse 更改为 SQL 分析终结点

    3. 在资源管理器中,展开 Schemas>dbo>

    4. 确认 显示 TestCopiedData 表。

      资源管理器中表和数据预览区域的屏幕截图。

  6. 检查Deployment_Pipeline_Var管道的生产阶段:

    1. 切换到 Deployment_Pipeline_Var 管道并选择 “生产 ”阶段。

    2. 选择 Pipeline_Deploy 管道。

    3. 选择“ 运行”。 此过程应成功完成。

  7. 再次检查 SourceLHs_Prod 湖屋:

    1. 切换到 SourceLHs_Prod 湖屋。

    2. 将连接从 Lakehouse 更改为 SQL 分析终结点

    3. 在资源管理器中,展开 Schemas>dbo>

    4. 确认 显示 ProdCopiedData 表。

自定义 Git 中的变量值(可选)

若要查看 变量库在 Git 中的表示方式,或从 Git 存储库编辑变量:

  1. 在工作区中,选择“源代码管理”并将工作区连接到 Git 存储库

  2. “源代码管理 ”窗格中,选择“ 提交 ”将工作区内容推送到 Git 存储库。

    Git 存储库包含工作区中每个项的文件夹。 名为 WS 变量的文件夹。VariableLibrary 表示变量库项。 有关此文件夹内容的详细信息,请参阅 变量库 CI/CD

  3. 比较 valueSets 文件夹中的ProdVS.jsonTestVS.json 文件。 确认变量 overrides 已设置为不同的值。 可以直接在 UI 中编辑这些值,也可以在 Git 中编辑此文件并将其更新到工作区。

    {
     "$schema": "https://developer.microsoft.com/json-schemas/fabric/item/VariablesLibrary/definition/valueSets/1.0.0/schema.json",
     "valueSetName": "Test VS",
     "overrides": [
      {
       "name": "Source_LH",
       "value": "4fe228d3-a363-4b7f-a5d4-fae9d2abca43"
      },
      {
       "name": "DestinationTableName",
       "value": "TestCopiedData"
      }
     ]
    }
    
    {
     "$schema": "https://developer.microsoft.com/json-schemas/fabric/item/VariablesLibrary/definition/valueSets/1.0.0/schema.json",
     "valueSetName": "Prod VS",
     "overrides": [
      {
       "name": "Source_LH",
       "value": "c0f13027-9bf4-4e8c-8f57-ec5c18c8656b"
      },
      {
       "name": "DestinationTableName",
       "value": "ProdCopiedData"
      }
     ]
    }