kedro - Kedro 部署到数据块
问题描述
也许我误解了打包的目的,但它似乎对创建用于生产部署的工件没有帮助,因为它只打包代码。它忽略了 conf、data 和其他使 kedro 项目可重现的目录。
我知道我可以使用 docker 或气流插件进行部署,但如何部署到数据块。你有什么建议吗?
我正在考虑制作一个可以安装在集群上的轮子,但我需要先打包 conf。另一种选择是将 git 工作区同步到集群并通过笔记本运行 kedro。
关于最佳实践的任何想法?
解决方案
如果您不使用docker
并且只是使用 kedro 直接部署在 databricks 集群上。这就是我们将 kedro 部署到数据块的方式。
CI/CD 管道使用
kedro package
. 创建一个轮子文件。上传
dist
并conf
复制到 dbfs 或 AzureBlob 文件(如果使用 Azure Databricks)
这会将所有内容上传到每个数据块git push
然后,您可以拥有一个笔记本,其中包含以下内容:
- 您可以在 databricks 中有一个初始化脚本,例如:
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()
在这里conf
,catalog
和pipeline
将可用
当您想
master
在生产中运行分支或分支时调用此初始化脚本,例如:%run "/Projects/InitialSetup/load_pipeline" $branch="master"
对于开发和测试,您可以运行特定节点
pipeline = pipeline.only_nodes_with_tags(*tags)
然后运行完整或部分管道
SequentialRunner().run(pipeline, catalog)
在生产中,这个笔记本可以通过数据块进行调度。如果你在 Azure Databricks 上,则可以使用它Azure Data Factory
来计划和运行它。
推荐阅读
- python - 网状python无法识别本地python:错误:找不到Python共享库,未加载Python绑定
- python - 使用 folium.GeoJson 方法时出错
- python-3.x - 两个 Raspberry Pi 4 之间的 BLE 通信
- css - div 的奇怪关闭导致的 CSS 错误
- android - 无法将我的回收站视图滚动到最后一个元素
- c# - 查找最小值和最大值 - 用于搜索的纬度和经度
- react-native - 关闭 React 本机模式不起作用
- swift - SwiftUI NavigationLink 通过滑动打开
- rest - 如果我不使用它们,是否需要将路径参数放在 URI 中[REST API]
- r - 为什么我的 R 数据框没有被复制到 ifelse 语句中?