Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/PrefectHQ/prefect
Prefect is a workflow orchestration tool empowering developers to build, observe, and react to data pipelines
https://github.com/PrefectHQ/prefect
automation data data-engineering data-ops data-science infrastructure ml-ops observability orchestration pipeline prefect python workflow workflow-engine
Last synced: 3 months ago
JSON representation
Prefect is a workflow orchestration tool empowering developers to build, observe, and react to data pipelines
- Host: GitHub
- URL: https://github.com/PrefectHQ/prefect
- Owner: PrefectHQ
- License: apache-2.0
- Created: 2018-06-29T21:59:26.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2024-04-13T23:43:42.000Z (9 months ago)
- Last Synced: 2024-04-14T16:06:23.084Z (9 months ago)
- Topics: automation, data, data-engineering, data-ops, data-science, infrastructure, ml-ops, observability, orchestration, pipeline, prefect, python, workflow, workflow-engine
- Language: Python
- Homepage: https://prefect.io
- Size: 138 MB
- Stars: 14,512
- Watchers: 159
- Forks: 1,442
- Open Issues: 616
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
- awesome - PrefectHQ/prefect - Prefect is a workflow orchestration framework for building resilient data pipelines in Python. (Python)
- awesome-ccamel - PrefectHQ/prefect - Prefect is a workflow orchestration framework for building resilient data pipelines in Python. (Python)
- awesome-self-driving-labs - [code
- awesome-python-resources - GitHub - 25% open · ⏱️ 25.08.2022): (任务调度)
- awesome-llmops - Prefect - square) | (Large Scale Deployment / Workflow)
- awesome-repositories - PrefectHQ/prefect - Prefect is a workflow orchestration framework for building resilient data pipelines in Python. (Python)
- awesome-data-science-development - Prefect _Data Automation_
- awesome-starts - PrefectHQ/prefect - The easiest way to automate your data (Python)
- awesome-list - Prefect 2 - The easiest way to transform any function into a unit of work that can be observed and governed by orchestration rules. (DevOps / Data Management)
- awesome-production-machine-learning - Prefect Core - Workflow management system that makes it easy to take your data pipelines and add semantics like retries, logging, dynamic mapping, caching, failure notifications, and more. (Data Pipeline)
- awesome-etl - prefect - "a new workflow management system, designed for modern infrastructure and powered by the open-source Prefect Core workflow engine. Users organize Tasks into Flows, and Prefect takes care of the rest." (Workflow Management/Engines)
- awesome-python-machine-learning-resources - GitHub - 25% open · ⏱️ 25.08.2022): (数据管道和流处理)
- AiTreasureBox - PrefectHQ/prefect - 01-07_17948_11](https://img.shields.io/github/stars/PrefectHQ/prefect.svg)|Prefect is a workflow orchestration tool empowering developers to build, observe, and react to data pipelines| (Repos)
- StarryDivineSky - PrefectHQ/prefect
- awesome-rainmana - PrefectHQ/prefect - Prefect is a workflow orchestration framework for building resilient data pipelines in Python. (Python)
- jimsghstars - PrefectHQ/prefect - Prefect is a workflow orchestration framework for building resilient data pipelines in Python. (Python)
- awesomeLibrary - perfect - Prefect is a workflow orchestration tool empowering developers to build, observe, and react to data pipelines (语言资源库 / python)
- best-of-python - GitHub - 17% open · ⏱️ 06.06.2024): (Data Pipelines & Streaming)
- my-awesome - PrefectHQ/prefect - engineering,data-ops,data-science,infrastructure,ml-ops,observability,orchestration,pipeline,prefect,python,workflow,workflow-engine pushed_at:2025-01 star:17.9k fork:1.7k Prefect is a workflow orchestration framework for building resilient data pipelines in Python. (Python)
- awesome-starred - PrefectHQ/prefect - Prefect is a workflow orchestration tool empowering developers to build, observe, and react to data pipelines (automation)
README
# Prefect
Prefect is a workflow orchestration framework for building data pipelines in Python.
It's the simplest way to elevate a script into a resilient production workflow.
With Prefect, you can build resilient, dynamic data pipelines that react to the world around them and recover from unexpected changes.With just a few lines of code, data teams can confidently automate any data process with features such as scheduling, caching, retries, and event-based automations.
Workflow activity is tracked and can be monitored with a self-hosted [Prefect server](https://docs.prefect.io/latest/manage/self-host/?utm_source=oss&utm_medium=oss&utm_campaign=oss_gh_repo&utm_term=none&utm_content=none) instance or managed [Prefect Cloud](https://www.prefect.io/cloud-vs-oss?utm_source=oss&utm_medium=oss&utm_campaign=oss_gh_repo&utm_term=none&utm_content=none) dashboard.
## Getting started
Prefect requires Python 3.9 or later. To [install the latest or upgrade to the latest version of Prefect](https://docs.prefect.io/get-started/install), run the following command:
```bash
pip install -U prefect
```Then create and run a Python file that uses Prefect `flow` and `task` decorators to orchestrate and observe your workflow - in this case, a simple script that fetches the number of GitHub stars from a repository:
```python
from prefect import flow, task
from typing import List
import httpx@task(log_prints=True)
def get_stars(repo: str):
url = f"https://api.github.com/repos/{repo}"
count = httpx.get(url).json()["stargazers_count"]
print(f"{repo} has {count} stars!")@flow(name="GitHub Stars")
def github_stars(repos: List[str]):
for repo in repos:
get_stars(repo)# run the flow!
if __name__=="__main__":
github_stars(["PrefectHQ/Prefect"])
```Fire up the Prefect UI to see what happened:
```bash
prefect server start
```To run your workflow on a schedule, turn it into a deployment and schedule it to run every minute by changing the last line of your script to the following:
```python
if __name__ == "__main__":
github_stars.serve(
name="first-deployment",
cron="* * * * *",
parameters={"repos": ["PrefectHQ/prefect"]}
)
```You now have a server running locally that is looking for scheduled deployments!
Additionally you can run your workflow manually from the UI or CLI. You can even run deployments in response to [events](https://docs.prefect.io/latest/automate/?utm_source=oss&utm_medium=oss&utm_campaign=oss_gh_repo&utm_term=none&utm_content=none).## Prefect Cloud
Prefect Cloud provides workflow orchestration for the modern data enterprise. By automating over 200 million data tasks monthly, Prefect empowers diverse organizations — from Fortune 50 leaders such as Progressive Insurance to innovative disruptors such as Cash App — to increase engineering productivity, reduce pipeline errors, and cut data workflow compute costs.
Read more about Prefect Cloud [here](https://www.prefect.io/cloud-vs-oss?utm_source=oss&utm_medium=oss&utm_campaign=oss_gh_repo&utm_term=none&utm_content=none) or sign up to [try it for yourself](https://app.prefect.cloud?utm_source=oss&utm_medium=oss&utm_campaign=oss_gh_repo&utm_term=none&utm_content=none).
## prefect-client
If your use case is geared towards communicating with Prefect Cloud or a remote Prefect server, check out our
[prefect-client](https://pypi.org/project/prefect-client/). It is a lighter-weight option for accessing client-side functionality in the Prefect SDK and is ideal for use in ephemeral execution environments.## Next steps
- Check out the [Docs](https://docs.prefect.io/).
- Join the [Prefect Slack community](https://prefect.io/slack).
- Learn how to [contribute to Prefect](https://docs.prefect.io/contribute/).