使用 dbx 实时同步本地文件与远程工作区
重要
本文档已停用,可能不会更新。
Databricks 建议使用 Databricks CLI 0.205 或更高版本,而不是 dbx sync
,因为这些版本通过 databricks sync
命令提供了类似于 dbx 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 开始)。 - 在
.databrickscfg
文件的 Azure Databricks 配置文件中。
dbx
分别在这两个位置查找身份验证凭据。dbx
仅使用它找到的第一组匹配凭据。注意
如果使用
.databrickscfg
文件,则在默认情况下,dbx sync
会在此文件中查找名为DEFAULT
的配置文件。 要指定其他配置文件,请在运行dbx sync
命令时使用--profile
选项,本文稍后将对此进行介绍。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==version
dbx sync
开始将当前本地目录中的文件与工作区中以下 DBFS 路径中的文件同步。dbx sync
通过打印Target base path
后跟 DBFS 路径来确认这一点,例如:/tmp/users/<your-Databricks-username>/<local-directory-name>
提示
若要指定其他用户名或 DBFS 路径,请在运行
dbx sync
时分别指定--user
和--dest
选项。根据需要更改本地文件。
重要
必须让终端或 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==version
dbx sync
开始将本地克隆存储库中的文件与工作区中的 Databricks Git 文件夹中的文件同步。dbx sync
通过打印Target base path
后跟 Databricks Git 文件夹路径来确认这一点,例如:/Repos/<your-Databricks-username>/<your-repo-name>
提示
若要指定其他用户名或存储库名称,请在运行
dbx sync
时分别指定--user
和--dest-repo
选项。根据需要更改本地文件。
重要
必须保持终端或 PowerShell 处于打开状态,以便
dbx sync
继续同步。 如果关闭终端或 PowerShell,dbx sync
停止监视文件更改并停止同步。 若要恢复文件更改同步,请从头重复此过程。根据需要,验证工作区中 Databricks Git 文件夹中的文件更改。
其他资源
- dbx 文档
- dbx 同步文档
- GitHub 上的 databrickslabs/dbx 存储库
- dbx 限制