如何将任意文件从 Azure git 存储库部署到 Databricks 工作区?
How can I deploy arbitrary files from an Azure git repo to a Databricks workspace?
Databricks 最近添加了对“存储库中的文件”的支持,这是一个很好的功能。它为项目提供了更多的灵活性,因为我们现在可以添加 .json
配置文件,甚至可以编写仅存在于我们封闭环境中的自定义 python 模块。
但是,我刚刚注意到从 Azure git 存储库部署到工作区的标准方法不支持任意文件。首先,所有 .py
文件都转换为笔记本,破坏了我们为项目编写的自定义模块。其次,它有意跳过以下列之一结尾的文件:.scala, .py, .sql, .SQL, .r, .R, .ipynb, .html, .dbc
,这意味着部署完成后我们的 .json
配置文件丢失。
有什么方法可以解决这些问题,或者我们是否必须恢复一切以像以前一样使用笔记本?
您需要停止以旧方式进行部署,因为它依赖于不支持任意文件的 Workspace REST API。相反,您需要在目标工作区中进行 Git 签出,并在发布时将该签出更新为给定的 branch/tag。这可以通过 DevOps 管道中的 Repos API, or databricks cli. Here is an example of how to do that with cli 完成。
- script: |
echo "Checking out the releases branch"
databricks repos update --path $(STAGING_DIRECTORY) --branch "$(Build.SourceBranchName)"
env:
DATABRICKS_HOST: $(DATABRICKS_HOST)
DATABRICKS_TOKEN: $(DATABRICKS_TOKEN)
displayName: 'Update Staging repository'
Databricks 最近添加了对“存储库中的文件”的支持,这是一个很好的功能。它为项目提供了更多的灵活性,因为我们现在可以添加 .json
配置文件,甚至可以编写仅存在于我们封闭环境中的自定义 python 模块。
但是,我刚刚注意到从 Azure git 存储库部署到工作区的标准方法不支持任意文件。首先,所有 .py
文件都转换为笔记本,破坏了我们为项目编写的自定义模块。其次,它有意跳过以下列之一结尾的文件:.scala, .py, .sql, .SQL, .r, .R, .ipynb, .html, .dbc
,这意味着部署完成后我们的 .json
配置文件丢失。
有什么方法可以解决这些问题,或者我们是否必须恢复一切以像以前一样使用笔记本?
您需要停止以旧方式进行部署,因为它依赖于不支持任意文件的 Workspace REST API。相反,您需要在目标工作区中进行 Git 签出,并在发布时将该签出更新为给定的 branch/tag。这可以通过 DevOps 管道中的 Repos API, or databricks cli. Here is an example of how to do that with cli 完成。
- script: |
echo "Checking out the releases branch"
databricks repos update --path $(STAGING_DIRECTORY) --branch "$(Build.SourceBranchName)"
env:
DATABRICKS_HOST: $(DATABRICKS_HOST)
DATABRICKS_TOKEN: $(DATABRICKS_TOKEN)
displayName: 'Update Staging repository'