Welcome to Prefect¶
Prefect enables you to build and observe resilient data workflows so that you can understand, react to, and recover from unexpected changes. It's the easiest way to transform any Python function into a unit of work that can be observed and orchestrated. Just bring your Python code, sprinkle in a few decorators, and go!
With Prefect you gain simple:
Trying to implement these features from scratch is a huge pain that takes time, headaches, and money. That's why Prefect offers all this functionality and more!
New to Prefect?¶
If you're ready to dive in and learn Prefect, try the tutorial where you'll create a full data project, jump into Prefect concepts, or explore the guides for common use cases.
Or, read on for a quick sample of Prefect.
Quick Start: Hello Prefect¶
Install Prefect with
pip install -U prefect
See the install guide for more detailed instructions.
Run a basic flow¶
Import flow
and decorate your Python function using the @flow
decorator.
from prefect import flow
@flow
def my_favorite_function():
print("What is your favorite number?")
return 42
print(my_favorite_function())
Thats it! Your function is now a flow. Run the code as you normally would, and you'll see its execution via the Prefect logs:
$ python hello_prefect.py
15:27:42.543 | INFO | prefect.engine - Created flow run 'olive-poodle' for flow 'my-favorite-function'
15:27:42.543 | INFO | Flow run 'olive-poodle' - Using task runner 'ConcurrentTaskRunner'
What is your favorite number?
15:27:42.652 | INFO | Flow run 'olive-poodle' - Finished in state Completed()
42
Prefect automatically persists all executions of your flow along with useful metadata such as start time, end time, and state. This is just the beginning, so keep exploring to learn how to add retries, notifications, scheduling and much more!
Next Steps¶
To learn more, try our tutorials and guides, or go deeper with Prefect concepts.
Community¶
- Join over 25,000 engineers in the Prefect Slack community
- Get help in Prefect Discourse - the community-driven knowledge base
- Give Prefect a ⭐️ on GitHub
Changing from 'Orion'
With the 2.8.1 release, we removed references to "Orion" and replaced them with more explicit, conventional nomenclature throughout the codebase. These changes clarify the function of various components, commands, and variables. See the Release Notes for details.
Looking for Prefect 1 Core and Server?
Prefect 2 is now available for general use. See our Migration Guide to move your flows from Prefect 1 to Prefect 2.
Prefect 1 Core and Server documentation is available at http://docs-v1.prefect.io/.