Primary Sources


Table sources are used directly via a view. Featureform will never write to a primary source.

Transformation Sources

SQL transformations are used to create a view. By default, those views are materialized and updated according to the schedule parameter. Deprecated transformations are converted to un-materialized views to save storage space.

Offline to Inference Store Materialization

When a feature is registered, Featureform creates an internal transformation to get the newest value of every feature and its associated entity. A Kubernetes job is then kicked off to sync this up with the Inference store.

Training Set Generation

Every registered feature and label is associated with a view table. That view contains three columns, the entity, value, and timestamp. When a training set is registered, it is created as a materialized view via a JOIN on the corresponding label and feature views.


First we have to add a declarative Redshift configuration in Python.

You will use the Postgres registration to set up a connection to the target Redshift instance.
import featureform as ff

    name = "redshift_docs",
    description = "Example offline store store",
    team = "Featureform",
    host = "",
    port = "5432",
    user = "redshift",
    password = "password",
    database = "redshift",

Once our config file is complete, we can apply it to our Featureform deployment

featureform apply --host $FEATUREFORM_HOST

We can re-verify that the provider is created by checking the Providers tab of the Feature Registry.

Mutable Configuration Fields

  • description

  • username

  • password

  • port