Back to Feast

Configuration Reference

skills/references/configuration.md

0.63.06.9 KB
Original Source

Configuration Reference

Table of Contents

feature_store.yaml

Minimal local config:

yaml
project: my_project
registry: data/registry.db
provider: local
online_store:
  type: sqlite
  path: data/online_store.db

GCP config:

yaml
project: my_project
registry: gs://my-bucket/registry.pb
provider: gcp
online_store:
  type: datastore
offline_store:
  type: bigquery

AWS config:

yaml
project: my_project
registry: s3://my-bucket/registry.pb
provider: aws
online_store:
  type: dynamodb
  region: us-east-1
offline_store:
  type: redshift
  cluster_id: my-cluster
  region: us-east-1
  database: feast
  user: admin
  s3_staging_location: s3://my-bucket/feast-staging

RepoConfig Fields

FieldAliasTypeDefaultDescription
project-strrequiredProject namespace (alphanumeric + underscores)
project_description-strNoneProject description
provider-str"local""local", "gcp", or "aws"
registryregistry_configstr/dictrequiredRegistry path or config object
online_storeonline_configstr/dict"sqlite"Online store type or config
offline_storeoffline_configstr/dict"dask"Offline store type or config
batch_enginebatch_engine_configstr/dict"local"Batch materialization engine
auth-dictno_authAuthentication config
feature_server-dictNoneFeature server config
entity_key_serialization_version-int3Entity key serialization version
coerce_tz_aware-boolTrueCoerce timestamps to timezone-aware
materializationmaterialization_configdictdefaultMaterialization options
openlineageopenlineage_configdictNoneOpenLineage config

Registry Configuration

FieldDefaultDescription
registry_type"file""file", "sql", "snowflake.registry", "remote"
path""Local path, GCS/S3 URI (file), or DB connection URL (sql)
cache_ttl_seconds600Registry cache TTL (0 = no expiry)
cache_mode"sync""sync" or "thread"
s3_additional_kwargsNoneExtra boto3 kwargs for S3

File registry

yaml
registry: data/registry.db

or

yaml
registry:
  registry_type: file
  path: data/registry.db
  cache_ttl_seconds: 60

SQL registry

yaml
registry:
  registry_type: sql
  path: postgresql://user:pass@host:5432/feast  # pragma: allowlist secret
  cache_ttl_seconds: 60

Remote registry

yaml
registry:
  registry_type: remote
  path: grpc://feast-registry-server:6570

Online Store Types

TypeConfig KeyUse Case
sqlitepathLocal development
redisconnection_stringProduction, low-latency
dynamodbregionAWS-native
datastoreproject_idGCP-native
bigtableproject_id, instanceGCP, high-throughput
postgreshost, port, database, user, passwordSelf-managed
snowflake.onlineaccount, database, schemaSnowflake ecosystem
milvushost, portVector search
qdranthost, portVector search
remotepathRemote feature server

Examples

yaml
# SQLite (local dev)
online_store:
  type: sqlite
  path: data/online_store.db

# Redis
online_store:
  type: redis
  connection_string: redis://localhost:6379

# PostgreSQL
online_store:
  type: postgres
  host: localhost
  port: 5432
  database: feast
  db_schema: public
  user: postgres
  password: secret

# Milvus (vector search)
online_store:
  type: milvus
  host: localhost
  port: 19530

Offline Store Types

TypeUse Case
daskLocal development (default)
duckdbLocal, fast analytics
bigqueryGCP
snowflake.offlineSnowflake
redshiftAWS
sparkLarge-scale processing
postgresSelf-managed
trinoFederated queries
athenaAWS serverless
clickhouseAnalytics
remoteRemote offline server

Examples

yaml
# DuckDB
offline_store:
  type: duckdb

# BigQuery
offline_store:
  type: bigquery
  project_id: my-gcp-project
  dataset: feast_dataset

# Snowflake
offline_store:
  type: snowflake.offline
  account: my_account
  user: user
  password: pass
  database: FEAST
  schema: PUBLIC
  warehouse: COMPUTE_WH

# Spark
offline_store:
  type: spark
  spark_conf:
    spark.master: "local[*]"

Batch Engine Types

TypeDescription
localLocal Python process (default)
snowflake.engineSnowflake-based materialization
spark.engineSpark-based materialization
lambdaAWS Lambda-based
k8sKubernetes job-based
ray.engineRay-based
yaml
batch_engine:
  type: local

Authentication

TypeDescription
no_authNo authentication (default)
kubernetesKubernetes service account
oidcOpenID Connect (server-side)
oidc_clientOpenID Connect (client-side)
yaml
# OIDC example
auth:
  type: oidc
  client_id: feast-client
  auth_server_url: https://auth.example.com
  auth_discovery_url: https://auth.example.com/.well-known/openid-configuration

Feature Server

yaml
feature_server:
  type: local

MCP-based feature server:

yaml
feature_server:
  type: mcp

Materialization Config

yaml
materialization:
  pull_latest_features: false  # Only pull latest feature values per entity

OpenLineage Config

yaml
openlineage:
  enabled: true
  transport_type: http  # http, console, file, kafka
  transport_url: http://marquez:5000
  transport_endpoint: api/v1/lineage
  namespace: feast
  emit_on_apply: true
  emit_on_materialize: true

Feature Repository Layout

my_feature_repo/
├── feature_store.yaml          # Required config
├── .feastignore                # Optional gitignore-style file
├── driver_features.py          # Feature definitions
├── customer_features.py        # More definitions
└── data/
    ├── driver_stats.parquet    # Data files (for FileSource)
    └── registry.db             # Auto-generated registry
  • Feast recursively scans all .py files for feature definitions
  • Use .feastignore to exclude files/directories from scanning
  • feast apply registers all discovered definitions into the registry