0
0
MLOpsdevops~10 mins

Feast feature store basics in MLOps - Commands & Configuration

Choose your learning style9 modes available
Introduction
When building machine learning models, you need a way to store and reuse data features safely and quickly. Feast is a tool that helps you organize, store, and serve these features so your models get consistent data during training and prediction.
When you want to share features between different ML models without duplicating data.
When you need to keep feature data fresh and consistent between training and serving.
When you want to simplify feature management and avoid errors from manual data handling.
When you want to serve features in real-time for online predictions.
When you want to track feature definitions and changes over time.
Config File - feature_store.yaml
feature_store.yaml
project: my_project
registry: data/registry.db
provider: local
online_store:
  local:
    path: data/online_store.db

This file sets up the Feast feature store configuration.

  • project: Names your feature store project.
  • registry: Path to the registry file that tracks feature definitions.
  • provider: Specifies where Feast runs; here it is local for simplicity.
  • online_store: Defines where real-time features are stored; here a local database.
Commands
This command creates a new Feast feature store project folder named 'my_feature_repo' with default files to start defining features.
Terminal
feast init my_feature_repo
Expected OutputExpected
Created new Feast repository at my_feature_repo
Change directory into the new feature store project to work on feature definitions and configurations.
Terminal
cd my_feature_repo
Expected OutputExpected
No output (command runs silently)
This command registers the feature definitions and creates the online store tables based on your config and feature files.
Terminal
feast apply
Expected OutputExpected
Applying feature store... Feature sets applied successfully.
This command loads historical feature data from offline storage into the online store for the given date range, making features ready for online serving.
Terminal
feast materialize 2023-01-01T00:00:00 2023-01-02T00:00:00
Expected OutputExpected
Materializing features from 2023-01-01T00:00:00 to 2023-01-02T00:00:00 Materialization complete.
Fetches the latest feature values for the given entity from the online store, useful for real-time model predictions.
Terminal
feast get-online-features --feature-refs=my_feature_set:feature1 --entity-rows='[{"entity_id": 123}]'
Expected OutputExpected
entity_id: 123 feature1: 42.0
Key Concept

If you remember nothing else from Feast, remember: it keeps your ML features consistent and ready for both training and real-time prediction.

Code Example
MLOps
from feast import FeatureStore

store = FeatureStore(repo_path=".")

# Define entity rows to fetch features for
entity_rows = [{"entity_id": 123}]

# Fetch online features
online_features = store.get_online_features(
    feature_refs=["my_feature_set:feature1"],
    entity_rows=entity_rows
).to_dict()

print(f"Feature value for entity 123: {online_features['feature1'][0]}")
OutputSuccess
Common Mistakes
Not running 'feast apply' after changing feature definitions
The online store and registry won't update, so your changes won't take effect.
Always run 'feast apply' after editing feature files to register changes.
Using inconsistent feature data between training and serving
This causes your model to see different data formats or values, reducing accuracy.
Use Feast to serve the same features for training and online prediction to keep data consistent.
Not materializing features before online serving
The online store will not have the latest feature data, causing missing or stale values.
Run 'feast materialize' regularly to load fresh data into the online store.
Summary
Initialize a Feast project with 'feast init' to start managing features.
Use 'feast apply' to register feature definitions and prepare the online store.
Load fresh feature data into the online store with 'feast materialize' for real-time use.
Fetch features for prediction using 'feast get-online-features' or the Python SDK.