也许我误解了打包的目的,但它似乎对创建用于生产部署的工件没有帮助,因为它只打包代码。它省略了 conf、data 和其他使 kedro 项目可重现的目录。
我知道我可以使用 docker 或气流插件进行部署,但是部署到 databricks 又如何呢?您有什么建议吗?
我正在考虑制作一个可以安装在集群上的轮子,但我需要先打包conf。另一种选择是将 git 工作区同步到集群并通过笔记本运行 kedro。
关于最佳实践有什么想法吗?
如果您不使用docker而只是使用 kedro 直接部署在 databricks 集群上。这就是我们将 kedro 部署到 databricks 的方式。
CI/CD 管道使用kedro package. 创建轮文件。
上传dist到confdbfs 或 AzureBlob 文件副本(如果使用 Azure Databricks)
这会将所有内容上传到每个git push
然后你就可以拥有一个包含以下内容的笔记本:
from cargoai import run
from cargoai.pipeline import create_pipeline
branch = dbutils.widgets.get("branch")
conf = run.get_config(
project_path=f"/dbfs/project_name/build/cicd/{branch}"
)
catalog = run.create_catalog(config=conf)
pipeline = create_pipeline()
Run Code Online (Sandbox Code Playgroud)
这里conf、catalog、 和pipeline将可用
当您想要master在生产中运行一个或多个分支时,请调用此初始化脚本,例如:%run "/Projects/InitialSetup/load_pipeline" $branch="master"
对于开发和测试,您可以运行特定节点pipeline = pipeline.only_nodes_with_tags(*tags)
然后运行完整或部分管道SequentialRunner().run(pipeline, catalog)
在生产中,该笔记本可以通过 databricks 进行调度。如果您使用的是 Azure Databricks,则可以使用Azure Data Factory它来计划和运行它。
| 归档时间: |
|
| 查看次数: |
2765 次 |
| 最近记录: |