| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
Feast users use Feast to manage two important sets of configuration:
With Feast, the above configuration can be written declaratively and stored as code in a central location. This central location is called a feature repository. The feature repository is the declarative source of truth for what the desired state of a feature store should be.
The Feast CLI uses the feature repository to configure, deploy, and manage your feature store.
A feature repository consists of:
{% hint style="info" %} Typically, users store their feature repositories in a Git repository, especially when working in teams. However, using Git is not a requirement. {% endhint %}
The structure of a feature repository is as follows:
An example structure of a feature repository is shown below:
$ tree -a . ├── data │ └── driver_stats.parquet ├── driver_features.py ├── feature_store.yaml └── .feastignore 1 directory, 4 files
A couple of things to note about the feature repository:
The configuration for a feature store is stored in a file named feature_store.yaml , which must be located at the root of a feature repository. An example feature_store.yaml file is shown below:
{% code title="feature_store.yaml" %}
project: my_feature_repo_1
registry: data/metadata.db
provider: local
online_store:
path: data/online_store.db{% endcode %}
The feature_store.yaml file configures how the feature store should run. See feature_store.yaml for more details.
This file contains paths that should be ignored when running feast apply. An example .feastignore is shown below:
{% code title=".feastignore" %}
# Ignore virtual environment venv # Ignore a specific Python file scripts/foo.py # Ignore all Python files directly under scripts directory scripts/*.py # Ignore all "foo.py" anywhere under scripts directory scripts/**/foo.py
{% endcode %}
See .feastignore for more details.
A feature repository can also contain one or more Python files that contain feature definitions. An example feature definition file is shown below:
{% code title="driver_features.py" %}
from datetime import timedelta
from feast import BigQuerySource, Entity, Feature, FeatureView, Field
from feast.types import Float32, Int64, String
driver_locations_source = BigQuerySource(
table_ref="rh_prod.ride_hailing_co.drivers",
timestamp_field="event_timestamp",
created_timestamp_column="created_timestamp",
)
driver = Entity(
name="driver",
description="driver id",
)
driver_locations = FeatureView(
name="driver_locations",
entities=[driver],
ttl=timedelta(days=1),
schema=[
Field(name="lat", dtype=Float32),
Field(name="lon", dtype=String),
Field(name="driver", dtype=Int64),
],
source=driver_locations_source,
){% endcode %}
To declare new feature definitions, just add code to the feature repository, either in existing files or in a new file. For more information on how to define features, see Feature Views.
| Back | FazBrowse Home | New Git URL |