Feast is an open-source feature store that enables data scientists and engineers to productionize machine learning features. It provides a consistent way to define, manage, and serve features for both model training (historical data) and online inference (low-latency serving). Feast is actively maintained, with new releases typically occurring monthly.
pip install 'feast[local]'Verified import paths — ran on the pinned version, not inferred.
This quickstart demonstrates how to define entities and feature views, set up a local Feast repository programmatically, and then retrieve both historical and online features. In a typical Feast workflow, `feature_store.yaml` and feature definitions (`feature_repo.py`) are managed as files in a `feature_repo` directory, and the `feast apply` CLI command is used to register them. This example simulates the necessary file structure and programmatic application for a runnable Python script, followed by cleanup.
Consult the official Feast migration guides for your specific version upgrade (e.g., on the Feast documentation website). Always test upgrades in a staging environment.
Install Feast with the required provider group, e.g., `pip install 'feast[aws]'`, `pip install 'feast[gcp]'`, or `pip install 'feast[spark,local]'`. Refer to the Feast documentation for a complete list of provider groups.
Ensure `feature_store.yaml` is in the directory where your script is run, or explicitly pass `repo_path` to `FeatureStore(repo_path="./my_feature_repo/")`. For production, it's recommended to define a dedicated feature repository directory.
Explicitly define `path` for file-based `registry` and `online_store` types in your `feature_store.yaml` configuration.
Install the missing dependency: `pip install proto-plus jinja2`. Alternatively, ensure you install Feast with the `[ci]` extra if you are setting up a development environment: `pip install 'feast[ci]'`.
Ensure you are importing `ValueType` directly from the `feast` module (e.g., `from feast import ValueType`) and using the correct `ValueType` enumerations (e.g., `ValueType.INT64`) without attempting to convert them from other internal types. Update your Feast SDK to the latest version if using older code.
Run `feast apply` in your feature repository directory to register your feature definitions with the Feast registry. Double-check the spelling of the feature view (or other object) and ensure your `feature_store.yaml` correctly points to your feature definitions.
Install Feast with the `sqlite` extra to include necessary dependencies: `pip install 'feast[sqlite]'`. If Feast is already installed, you can directly install the missing package: `pip install sqlite-vec`.