Databricks Repos 发生了什么情况?

Azure Databricks 推出了新的用户界面元素,使用户能够从工作区 UI 中直接使用 Git 存储库支持的文件夹,有效地取代了以前单独的“存储库”特性功能。

这种更改对我意味着什么?

如果你是一个使用 Databricks Repos 特性对项目资产进行基于 Git 的共同版本控制源代码管理的用户,则核心功能没有更改。 最明显的区别是,许多上下文 UI 操作现引用“Git 文件夹”而不是“存储库”。

例如,可通过从 UI 中依次选择“新建”和“存储库”来创建 Git 存储库支持的 Databricks 文件夹

用于引用“存储库”的“新建”菜单选项

现在,选择“新建”,然后选择“Git 文件夹”。 同样的操作,不同的名称!

“新建”菜单选项现要求你创建“Git 文件夹”

此更改提供了一些改进,简化了受版本控制的文件夹的使用:

  1. 文件夹组织更佳:可在工作区文件树的任何级别创建 Git 文件夹,使你能够以最适合项目的方式组织 Git 文件夹。 例如,可在 /Workspace/Users/<user email>/level_1/level_2/level_3/<Git folder name> 创建 Git 文件夹。 只能在固定目录级别创建存储库,例如存储库用户文件夹的根目录(如 /Workspace/Repos/<user email>/<Repo name>)。
    • 注意:Git 文件夹可包含当前存储库不支持的其他资产或与其并置。 不支持的资产类型(如 DBSQL 资产和 MLflow 试验)可移动到 Git 文件夹中。 随着时间推移,将添加对其他资产的序列化支持。
  2. 简化的 UI 行为:更改将一种常见的工作区交互(使用 Git)直接引入了 Databricks 工作区,并减少了在工作区和受版本控制的 Git 文件夹之间导航所花费的时间

具体进行了什么更改?

  1. Git 文件夹可在 /Repos 目录外创建。
  2. 通过在 Databricks 工作区中选择“新建”>“Git 文件夹”,创建 Git 文件夹。 这会在 /Workspace/Users/<user-email>/ 下创建新的 Git 文件夹。
  3. 可在工作区文件树的各种深度创建 Git 文件夹,只要这些文件夹位于 /Workspace/Users/<user-email> 下即可。 例如,可在 /Workspace/Users/<user-email>/level_1/level_2/level_3/<git-folder-name> 创建 Git 文件夹。 在 /Workspace/Users/<user-email> 下,你可以有多个 Git 文件夹。
  4. Git 文件夹中允许不支持的资产。 随着时间推移,将添加对其他资产类型的序列化支持。
  5. 与存储库不同,在没有远程存储库 URL 的情况下,无法在 Databricks 中创建新的 Git 文件夹。

我当前的 Repo 会怎样?

如果为 Azure Databricks 工作区定义了 Repos,则它们不会消失,并且不需要将这些现有 Repos 迁移到 Git 文件夹。 相反,Repos 已集成到 Azure Databricks 工作区用户界面中,不再显示为在顶级 Repo 节点下组织的独立文件夹集。 它们现在可以在 /Workspace 根文件夹下找到,名为 /Workspace/Repos

  • 现有 /Repos 引用将继续发挥作用。 以 /Repos/Workspace/Repos 开头的路径指向同一文件夹,在 jobsdbutils.notebook.run%run 引用中声明的路径可以保持不变。
  • 在极少数情况下,您必须在工作区中进行一次性修改,此重定向才能正常工作。 有关此修改的更多详细信息,请参阅对工作区对象的引用

Databricks 建议用户在需要从 Databricks 工作区连接到 Git 源代码管理时,创建新的 Git 文件夹,而不是存储库。 将 Git 存储库和其他工作区资产并置会使 Git 文件夹比存储库更易于发现和管理。

Git 文件夹权限:Git 文件夹具有与其他工作区文件夹相同的工作区文件夹权限。 用户必须具有 CAN_MANAGE 权限才能执行大多数 Git 操作。

我应该使用哪个 DBR 在 Git 文件夹中运行代码?

为了在 Git 文件夹和旧存储库之间保持一致的代码执行,Databricks 建议用户仅在具有 DBR 15+ 的 Git 文件夹中运行代码。

当前工作目录 (CWD) 行为

Databricks Runtime (DBR) 14 或更高版本允许使用相对路径,并为所有笔记本提供相同的当前工作目录 (CWD) 体验,它让你可从当前工作目录运行笔记本。 对于较旧版本的 Databricks Runtime (DBR),当前工作目录 (CWD) 行为在 Git 文件夹与非 Git 文件夹中的笔记本之间可能不一致。

Python sys.path 行为

Databricks Runtime (DBR) 版本 14.3 或更高版本在 Git 文件夹中提供与旧版存储库中相同的 sys.path 行为。 使用早期 DBR 版本时,Git 文件夹的行为不同于旧版存储库,因为根存储库目录不会自动添加到 Git 文件夹的 sys.path。 对于 Python,sys.path 包含解释器在导入模块时搜索的目录列表。 如果无法使用 DBR 15 或更高版本,可手动将文件夹路径追加到 sys.path,这是一种解决方法。

有关如何使用相对路径将目录添加到 sys.path 的示例,请参阅导入 Python 和 R 模块

Python 库优先级

Databricks Runtime (DBR) 版本 14.3 或更高版本在 Git 文件夹中提供与旧版存储库中相同的 Python 库优先级