重要
本文档已停用,可能不会更新。
Databricks 建议使用 dbx sync,而不是 ,因为这些版本通过 dbx sync 命令提供了类似于 databricks sync 的功能。
适用于 Visual Studio Code 的 Databricks 扩展 还包括与集成到 Visual Studio Code IDE 中的 dbx sync 类似的功能。 请注意,dbx sync 可以将文件更改从本地开发计算机同步到 Azure Databricks 工作区中的 DBFS、工作区位置以及 Databricks Git 文件夹。 Visual Studio Code 的 Databricks 扩展仅支持将文件更改同步到工作区用户(/Users)文件和 Databricks Git 文件夹(/Repos)。
注意
本文介绍 Databricks Labs 的 dbx,它按原样提供,并且 Databricks 不会通过客户技术支持渠道为它提供支持。 问题与功能请求可以通过 GitHub 上的 databrickslabs/dbx 存储库的 问题 页进行通信。
可以使用由 Databricks Labs 提供的 dbx,将本地开发计算机上文件的更改实时同步到 Azure Databricks 工作区中的对应文件。 这些工作区文件可以位于 DBFS 或 Databricks Git 文件夹中。
与 dbx(也称为 dbx sync)的实时文件同步在快速代码开发方案中非常有用。 例如,可以将本地集成开发环境(IDE)用于提高生产力的功能,例如语法高亮、智能代码补全、代码规范检查以及测试和调试。 然后,可以立即转到工作区并运行更新的代码。
可以单独使用 dbx sync,或者将 与自动化作业一起使用,或将 与 IDE一起使用。
dbx sync 开发工作流
有两种用于 dbx sync的开发流程,一种使用 DBFS,另一种使用 Databricks Git 目录。
使用 dbx sync 和 DBFS 的典型开发工作流是:
- 标识包含要同步到 DBFS 的文件的本地目录。
- 确定要与本地目录同步的 DBFS 中的路径(或让
dbx sync为你创建默认 DBFS 路径)。 - 运行
dbx sync dbfs,将本地目录同步到 DBFS 路径。dbx sync开始监视本地目录是否有任何文件更改。 - 根据需要更改本地目录中的文件。
dbx sync实时将这些更改应用于 DBFS 路径中的相应文件。
使用 dbx sync 和 Databricks Git 文件夹的典型开发工作流是:
- 如果还没有可用的存储库,请使用 Databricks Git 文件夹支持的 Git 提供程序创建一个存储库。
- 将存储库克隆到 Azure Databricks 工作区。
- 将存储库克隆到本地开发计算机。
- 运行
dbx sync repo,将本地克隆的存储库与工作区克隆的存储库相关联。dbx sync开始监视本地目录是否有任何文件更改。 - 根据需要更改本地克隆存储库中的文件。
dbx sync将这些更改实时应用于 Databricks Git 文件夹中的相应文件。 - 定期将工作区中克隆的存储库中的更新文件推送到 Git 提供程序,使存储库与 Git 提供程序保持最新。
重要
dbx sync 仅执行从本地开发计算机到远程工作区的文件更改的单向实时同步。 因此,Databricks 不建议在 Azure Databricks 工作区中启动对由 dbx sync监视的文件的更改。 如果必须进行此类工作区启动的文件更改,则还必须执行以下操作:
- 对于 DBFS 中的文件更改,请手动对本地文件进行相应的更改。
- 对于 Databricks Git 文件夹中的文件更改,请将文件更改从工作区推送到 Git 提供程序。 然后,在本地开发计算机上,从 Git 提供程序中拉取这些文件更改。
要求
如果要对 Databricks Git 文件夹使用 dbx sync,Azure Databricks 工作区必须满足以下要求:
- 建议使用 Git 提供程序克隆存储库,但这不是必需的。
在本地开发计算机上,必须安装以下各项:
Python 版本 3.8 或更高版本。 若要检查 Python 是否已安装,以及检查已安装的 Python 版本,请在终端或 PowerShell 中运行
python --version。python --version注意
某些
python的安装可能需要使用python3来替代python。 如果是,请将python替换为本文中的python3。pip。 若要检查是否已安装
pip,以及检查已安装pip版本,请运行pip --version还是python -m pip --version。pip --version # Or... python -m pip --version注意
某些
pip的安装可能需要使用pip3来替代pip。 如果是,请将pip替换为本文中的pip3。dbx 版本 0.8.0 或更高版本。 若要检查是否已安装
dbx,并检查已安装dbx版本,请运行dbx --version。 若要从 Python 包索引(PyPI)安装dbx,请运行pip install dbx或python -m pip install dbx。 (dbx包括 dbx sync。)# Check whether dbx is installed, and check its version. dbx --version # Install dbx. pip install dbx # Or... python -m pip install dbx注意
有关
的详细信息,请参阅 Databricks Labs dbx 和 dbx 文档 。设置了身份验证的 Databricks CLI 0.18 或更低版本。 安装
dbx时,会自动安装旧版 Databricks CLI(Databricks CLI 版本 0.17)。 可以在以下一个或两个位置的本地开发计算机上设置此身份验证:- 在
DATABRICKS_HOST和DATABRICKS_TOKEN环境变量中(从旧版 Databricks CLI 版本 0.8.0 开始)。 - 在 文件的 Azure Databricks
.databrickscfg中。
dbx分别在这两个位置查找身份验证凭据。dbx仅使用它找到的第一组匹配凭据。注意
如果使用
.databrickscfg文件,则在默认情况下,dbx sync会在此文件中查找名为DEFAULT的配置文件。 要指定其他配置文件,请在运行--profile命令时使用dbx sync选项,本文稍后将对此进行介绍。dbx不支持使用 .netrc 文件进行身份验证。- 在
如果想将
dbx sync与 Databricks Git 文件夹结合使用,建议使用 Git 提供程序对存储库进行本地克隆(但这不是必需的)。 若要执行本地克隆,请参阅 Git 提供程序的文档。
将 DBFS 与 dbx sync 配合使用
从本地开发计算机上的终端或 PowerShell 切换到包含要同步到 Azure Databricks 工作区中的 DBFS 的文件的目录。
运行 dbx sync 命令,将本地目录同步到工作区中的 DBFS,如下所示。 (不要忘记末尾的点(
.),表示当前目录。dbx sync dbfs --source .提示
若要指定不同的源目录,请将点(
.)替换为其他路径。注意
如果出现错误
Error: No such command 'sync',则安装dbx可能已过期。 若要解决此问题,请运行pip install --upgrade dbx==<version>或python -m pip install --upgrade dbx==version,其中<version>是最新版本的dbx。 可以在 dbx的PyPI 网页中找到此版本号。 pip install --upgrade dbx==<version> # Or... python -m pip install --upgrade dbx==versiondbx sync开始将当前本地目录中的文件与工作区中以下 DBFS 路径中的文件同步。dbx sync通过打印Target base path后跟 DBFS 路径来确认这一点,例如:/tmp/users/<your-Databricks-username>/<local-directory-name>提示
若要指定其他用户名或 DBFS 路径,请在运行
--user时分别指定--dest和dbx sync选项。根据需要更改本地文件。
重要
必须让终端或 PowerShell 保持打开状态,才能使
dbx sync继续同步。 如果关闭终端或 PowerShell,dbx sync停止监视文件更改并停止同步。 若要恢复文件更改同步,请从头重复此过程。根据需要,在工作区中验证在 DBFS 中的上述路径中的文件更改。
将 Databricks Git 文件夹与 dbx sync 配合使用
在本地开发计算机的终端或 PowerShell 中,切换到包含 Git 提供商存储库克隆的根目录。
在 Azure Databricks 工作区中,标识要将本地克隆存储库同步到的 Databricks Git 文件夹的名称。 可以通过单击工作区边栏中的 Git 文件夹 找到此存储库名称。
在本地开发计算机上,运行 dbx sync 命令,将本地克隆的存储库同步到工作区中的 Databricks Git 文件夹,如下所示,将
<your-repo-name>替换为 Databricks Git 文件夹中存储库的名称。 (不要忘记末尾的点(.),表示当前目录。dbx sync repo -d <your-repo-name> --source .提示
若要指定不同的源目录,请将点(
.)替换为其他路径。注意
如果出现错误
Error: No such command 'sync',则安装dbx可能已过期。 若要解决此问题,请运行pip install --upgrade dbx==<version>或python -m pip install --upgrade dbx==version,其中<version>是最新版本的dbx。 可以在 dbx的PyPI 网页中找到此版本号。 pip install --upgrade dbx==<version> # Or... python -m pip install --upgrade dbx==versiondbx sync开始将本地克隆存储库中的文件与工作区中的 Databricks Git 文件夹中的文件同步。dbx sync通过打印Target base path后跟 Databricks Git 文件夹路径来确认这一点,例如:/Repos/<your-Databricks-username>/<your-repo-name>提示
若要指定其他用户名或存储库名称,请在运行
--user时分别指定--dest-repo和dbx sync选项。根据需要更改本地文件。
重要
必须让终端或 PowerShell 保持打开状态,才能使
dbx sync继续同步。 如果关闭终端或 PowerShell,dbx sync停止监视文件更改并停止同步。 若要恢复文件更改同步,请从头重复此过程。根据需要,验证工作区中 Databricks Git 文件夹中的文件更改。
其他资源
- dbx 文档
- dbx 同步文档
- GitHub 上的 databrickslabs/dbx 存储库
- dbx 限制