仓库源代码管理(预览版)

本文介绍 Git 集成和部署管道如何在 Microsoft Fabric 的仓库中工作。 了解如何设置与存储库的连接,如何管理仓库以及如何在不同的环境中部署仓库。 Fabric Warehouse 的源代码管理目前是预览功能。

可以将 Git 集成部署管道用于不同的场景:

  • 使用 Git 和 SQL 数据库项目来管理单个数据库对象中的增量更改、团队协作、提交历史记录。
  • 使用部署管道将代码更改提升到不同的预生产环境和生产环境。

Git 集成

Microsoft Fabric 中的 Git 集成使开发人员能够将其开发流程、工具和最佳做法直接集成到 Fabric 平台中。 它允许在 Fabric 中进行开发的开发人员:

  • 备份并对其工作进行版本控制
  • 根据需要还原到以前的阶段
  • 与其他人协作或使用 Git 分支单独工作
  • 利用熟悉的源代码管理工具的功能来管理 Fabric 项

有关 Git 集成过程的详细信息,请参阅:

设置与源代码管理的连接

从“工作区设置”页中,可以轻松设置与存储库的连接,以提交和同步更改

  1. 若要设置连接,请参阅 Git 集成入门。 按照说明连接到 Git 存储库,可以连接到 Azure DevOps 或连接到 GitHub(作为 Git 提供程序)
  2. 连接后,各种项(包括仓库)将显示在“源代码管理”面板中Fabric 门户的屏幕截图,其中显示了源代码管理设置中的仓库。
  3. 成功将仓库实例连接到 Git 存储库后,可在存储库中看到仓库文件夹结构。 现在可以执行将来的操作,例如“创建拉取请求”。

Git 中仓库的数据库项目

下图列举了存储库中每个仓库项的文件结构:

Fabric 门户的屏幕截图,其中显示了示例仓库架构。

将仓库项提交到 Git 存储库时,该仓库将转换为源代码格式,用作 SQL 数据库项目。 SQL 项目 SQL 对象的本地表示形式,这些对象包含了用于某一个数据库的架构(例如,表、存储过程或函数)。 数据库对象的文件夹结构按架构/对象类型进行组织。 仓库中的每个对象都用包含其数据定义语言 (DDL) 定义的 .sql 文件表示。 SQL 数据库项目中不包括仓库表数据和 SQL 安全功能

共享查询也会提交到存储库,并继承它们保存时使用的名称。

在 Fabric 中下载仓库的 SQL 数据库项目

借助 Azure Data StudioVisual Studio Code 中 提供的 SQL 数据库项目扩展,可以管理仓库架构,并像其他 SQL 数据库项目一样处理 Warehouse 对象更改。

若要下载仓库架构的本地副本,请在功能区中选择“下载 SQL 数据库项目”

Fabric 门户的屏幕截图,其中显示了查询功能区。突出显示了“下载 SQL 数据库项目”框。

包含仓库架构定义的数据库项目的本地副本。 数据库项目可用于:

  • 在另一个仓库中重新创建仓库架构。
  • 在客户端工具(如 Azure Data Studio 或 Visual Studio Code)中进一步开发仓库架构。

将 SQL 数据库项目发布到新仓库

若要将仓库架构发布到新仓库,请执行以下操作:

  1. 在 Fabric 工作区中创建新仓库。
  2. 在新仓库启动页上,选择“生成仓库”下的“SQL 数据库项目”Fabric 门户的屏幕截图,其中显示了 SQL 数据库项目按钮。
  3. 选择从现有仓库下载的 .zip 文件。
  4. 仓库架构将发布到新仓库。

部署管道

还可以使用部署管道跨不同环境(例如开发、测试和生产)部署仓库代码。 部署管道不会公开数据库项目。

使用部署管道,完成以下步骤来完成仓库部署。

  1. 创建新的部署管道或打开现有的部署管道。 有关详细信息,请参阅部署管道入门
  2. 根据部署目标将工作区分配到不同的阶段。
  3. 选择、查看和比较不同阶段之间的项(包括仓库),如以下示例所示。 Fabric 门户的屏幕截图,其中显示了开发、测试和生产阶段。
  4. 选择“部署”以跨开发、测试和生产阶段部署仓库

有关 Fabric 部署管道过程的详细信息,请参阅 Fabric 部署管道概述

源代码管理限制

Git 集成限制

  • 目前,如果使用 ALTER TABLE 在数据库项目中添加约束或列,则会在部署时删除表并重新创建,进而导致数据丢失。 请考虑使用以下解决方法来保留表定义和数据:
    • 使用 CREATE TABLEINSERTCREATE TABLE AS SELECT克隆表在仓库中新建表的副本。
    • 根据需要,使用 ALTER TABLE 修改具有新约束或列的新表定义。
    • 删除旧表。
    • 使用 sp_rename 将新表重命名为旧表的名称。
    • 以完全相同的方式修改 SQL 数据库项目中旧表的定义。 现在,源代码管理中仓库的 SQL 数据库项目和实时仓库中的应该一致。
  • 目前,不要创建具有仓库的输出目标的 Dataflow Gen2。 如果从 Git 提交和更新,将被存储库中显示的名为 DataflowsStagingWarehouse 的新项阻止。
  • Git 集成不支持 SQL 分析终结点。

部署管道限制

  • 目前,如果使用 ALTER TABLE 在数据库项目中添加约束或列,则会在部署时删除表并重新创建,进而导致数据丢失。
  • 目前,不要创建具有仓库的输出目标的 Dataflow Gen2。 部署将被部署管道中显示的名为 DataflowsStagingWarehouse 的新项阻止。
  • 部署管道不支持 SQL 分析终结点。