prefect - Prefect 是一个新的工作流管理系统,专为现代基础设施而设计,由开源 Prefect Core 工作流引擎提供支持。用户组织Tasks成Flows,而 Prefect 负责其余的工作。

Created at: 2018-06-30 05:59:26
Language: Python
License: Apache-2.0

世界你好!👋

我们为数据科学时代重建了数据工程。

Prefect 是一个新的工作流管理系统,专为现代基础设施而设计,由开源的 Prefect Core 工作流引擎提供支持。用户组织成 ,然后省长负责其余的工作。

Tasks
Flows

阅读文档;获取代码;问我们任何事情;通过Prefect Discourse与社区聊天!

欢迎来到工作流

Prefect的Pythonic API应该对新手来说很熟悉。将函数标记为任务,并相互调用它们以构建流。

from prefect import task, Flow, Parameter


@task(log_stdout=True)
def say_hello(name):
    print("Hello, {}!".format(name))


with Flow("My First Flow") as flow:
    name = Parameter('name')
    say_hello(name)


flow.run(name='world') # "Hello, world!"
flow.run(name='Marvin') # "Hello, Marvin!"

有关更多详细信息,请参阅核心文档

用户界面和服务器

除了Prefect云平台之外,Prefect还包括一个用于编排和管理流的开源后端,主要由Prefect ServerPrefect UI组成。此本地服务器将流元数据存储在 Postgres 数据库中,并公开一个 GraphQL API。

默认情况下,Prefect 配置为使用 Prefect Cloud 作为后端,你可以通过运行以下命令将 Prefect Cloud 设置为后端:

$ prefect backend cloud

若要使用 Prefect Server 作为后端,请运行以下命令为本地业务流程配置 Prefect:

$ prefect backend server

请注意,服务器需要 DockerDocker Compose 才能运行。

要启动服务器、UI 和所有必需的基础结构,请运行:

$ prefect server start

运行所有组件后,可以通过访问 http://localhost:8080 来查看 UI。

提示:如果你在启动服务器时遇到任何问题,请查看我们的故障排除指南

请注意,从服务器执行流需要至少运行一个级代理。例如,若要启动本地代理,请运行以下命令:

$ prefect agent local start

最后,要向服务器注册任何流,请使用项目名称在流中调用。有关更多详细信息,请参阅编排文档

flow.register(project_name="<project_name>")

"...级长?

从拉丁语praefectus,意思是“负责人”,级长是监督域并确保遵守规则的官员。同样,Prefect 负责确保工作流正确执行。

它也恰好是那本非常了不起的书《银河系搭便车指南》(The Hitchhiker's Guide to the Galaxy)的一位巡回研究员的名字。

集成

得益于Prefect不断增长的任务库和深度生态系统集成,构建数据应用程序比以往任何时候都更容易。

缺少了什么?打开功能请求贡献 PR!Prefect 旨在使添加新功能变得非常容易,无论你是在开源软件包之上构建,还是为你的团队维护内部任务库。

任务库

Prefect任务库是一个不断增长的预定义任务列表,这些任务提供现成的功能,用于使用各种工具,从shell脚本执行到Kubernetes作业管理再到发送推文。

空字节 空气表 体式 AWS 天蓝色
Azure ML 人口普查 立方体JS 数据砖 断续器
docker 德雷米奥 投递箱 电子邮件 火弩箭
五特兰 GitHub 谷歌云 谷歌表格 远大期望
吉拉 朱皮耶特 Kubernetes Mixpanel 星期一
蒙特卡洛 我的SQL PostgreSQL 普罗 米修斯 推杆
雷迪斯 郭婷婷 发送网格
松弛 snowflake 斯帕西 SQL Server SQLite
变换 特雷洛 Zendesk

部署与执行

         

天蓝色

AWS

达斯克

docker

谷歌云

Kubernetes

通用部署

资源

Prefect提供各种资源,以帮助指导你取得成功的结果。

我们致力于确保一个积极的环境,所有互动都受我们的行为准则的约束。

文档

Prefect 的文档(包括概念、教程和完整的 API 参考)始终可在 docs.prefect.io

有关贡献文档的说明,请参阅开发指南

级长话语

加入我们的论坛,分享知识,讨论想法,找到常见问题的答案并获得支持。

松弛社区

加入我们的Slack,聊聊Prefect,提出问题并分享技巧。

博客

访问级长博客,了解级长团队的最新动态和见解。

支持

Prefect 为 Prefect Core 和 Prefect Cloud 的用户提供各种社区和高级支持选项

贡献

阅读有关Prefect社区的信息或深入了解开发指南,了解有关贡献,文档,代码样式和测试的信息。

安装

要求

Prefect 需要 Python 3.7+。如果你不熟悉Python,我们建议你安装Anaconda发行版

最新版本

要安装 Prefect,请运行:

pip install prefect

或者,如果你更喜欢使用 :

conda

conda install -c conda-forge prefect

或:

pipenv

pipenv install --pre prefect

流血边缘

对于开发或只是为了尝试最新功能,你可能希望直接从源代码安装Prefect。

请注意,Prefect 的主分支不保证与 Prefect Cloud 或本地服务器兼容。

git clone https://github.com/PrefectHQ/prefect.git
pip install ./prefect

许可证

Prefect Core 在 Apache 软件许可证版本 2.0 下获得许可。请注意,Prefect Core包括用于运行Prefect ServerPrefect UI的实用程序,它们本身已根据Prefect社区许可证获得许可。