Skip to main content

使用 cli 或 REST API 以编程方式安排参数化笔记本

项目描述

:rocket: NB 工作流程

NB-工作流程 阅读文档 PyPI - 格式 PyPI - 状态

编解码器

:books: 说明

NB Workflows 授权不同的数据角色将笔记本投入生产,从而简化了这样做所需的时间。它使人们能够使用由数据科学家、分析师或以迭代方式处理数据的任何角色制作的相同笔记本文件,从数据探索实例转变为部署在生产中的完整项目。

NB Workflows 是一个库和服务,允许您以分布式方式运行参数化笔记本。

Notebook 可以按需远程启动,也可以按时间间隔或使用 cron 语法进行调度。

在内部,它使用Sanic作为 Web 服务器,Papermill作为笔记本执行器,一个 用于任务分配和协调的RQ 。

:tada: 演示 :tada:

:floppy_disk:示例项目

:望远镜:哲学

注意工作流程它不是一个完整的 MLOps 解决方案,而且永远不会。我们努力简单地向用户公开正确的 API,以便在考虑可重复性的情况下调度笔记本。

我们也尝试为用户提供与乐高积木相同的自由,但我们在某些方面持有意见:我们理解为数据科学或/和数据分析编写代码的过程,作为一个需要解决的工程师问题

带着这个观点,那么:

  1. Git 是必要的 :wink:
  2. Docker 是环境可重现性所必需的。
  3. 尽管您可以推送未版本控制的代码,但版本控制几乎是强制执行的,并且始终是软件开发中的一个好习惯

这个想法来自Netflix 的一篇帖子,该帖子建议使用接口或某种 DSL 之类的笔记本来编排不同的工作负载,例如 Spark 等。但它也可以用来运行整个过程:比如训练模型、爬取站点、执行 etls 等等。

这种方法的好处是可以存储运行的笔记本并检查其好坏。如果出现故障,很容易以经典方式运行:逐个单元格。

最后一点要澄清,它可能会挑战常识或我们习惯于使用 Jupyter 笔记本的方式,每个笔记本更像是一个具有输入和输出的函数定义,因此笔记本可能用于不同的目的,因此工作流的名称,实际上这个想法在数据空间中很常见。然后,工作流将是一个笔记本,其参数定义为在用户想要的任何时候使用,可以更改或不更改发送的参数。

:nut_and_bolt: 特点

  • 像函数一样定义笔记本,按需执行或调度
  • 自动生成 Dockerfile。一个项目应该共享一个独特的环境,但可以使用同一环境的不同版本
  • 执行历史、Slack 或 Discord 通知。

安装

服务器

码头工人组成

该项目提供了一个docker-compose.yaml文件作为示例。

:建设:注意:建设:

因为NB Workflows将为每个工作负载生成 docker 实例,所以在 docker 容器内安装可能会很棘手。最困难的部分是需要访问docker socket的 worker 的配置。

提供Dockerfile用于自定义 uid 和 guid 女巫应与本地环境匹配。第二种选择是通过 HTTP 公开 docker 守护进程,如果DOCKER_HOST可以使用 env,请参阅docker client sdk

git clone https://github.com/nuxion/nb_workflows
cd nb_workflows

下一步是初始化数据库并创建用户(请先查看脚本):

docker-compose postgres up -d 
./scripts/initdb_docker.sh

现在你可以开始其他一切了:

docker-compose up -d 

没有码头工人

pip install nb-workflows[server]==0.6.0

第一个终端:

export NB_SERVER=True
nb manager db upgrade
nb manager users create
nb web --apps workflows,history,projects,events,runtimes

第二终端:

nb rqworker -w 1 -q control,mch.default

在此之前,redis postgresql 和webdav 模式下的 nginx应该配置好

客户

客户:

pip install nb-workflows==0.6.0
nb startporject .

:earth_americas: 路线图

见路线图 草案

:post_office: 建筑

nb_workflows 架构

:bookmark_tabs: 参考和灵感

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

nb_workflows-0.7.0.tar.gz (87.6 kB 查看哈希)

已上传 source

内置分布

nb_workflows-0.7.0-py3-none-any.whl (124.8 kB 查看哈希)

已上传 py3