Snowflake

Description

The Snowflake online store provides support for materializing feature values into a Snowflake Transient Table for serving online features.

  • Only the latest feature values are persisted

The data model for using a Snowflake Transient Table as an online store follows a tall format (one row per feature)):

  • "entity_feature_key" (BINARY) -- unique key used when reading specific feature_view x entity combination

  • "entity_key" (BINARY) -- repeated key currently unused for reading entity_combination

  • "feature_name" (VARCHAR)

  • "value" (BINARY)

  • "event_ts" (TIMESTAMP)

  • "created_ts" (TIMESTAMP)

(This model may be subject to change when Snowflake Hybrid Tables are released)

Getting started

In order to use this online store, you'll need to run pip install 'feast[snowflake]'. You can then get started with the command feast init REPO_NAME -t snowflake.

Example

feature_store.yaml
project: my_feature_repo
registry: data/registry.db
provider: local
online_store:
    type: snowflake.online
    account: SNOWFLAKE_DEPLOYMENT_URL
    user: SNOWFLAKE_USER
    password: SNOWFLAKE_PASSWORD
    role: SNOWFLAKE_ROLE
    warehouse: SNOWFLAKE_WAREHOUSE
    database: SNOWFLAKE_DATABASE

Tags KWARGs Actions:

"snowflake-online-store/online_path": Adding the "snowflake-online-store/online_path" key to a FeatureView tags parameter allows you to choose the online table path for the online serving table (ex. "{database}"."{schema}").

example_config.py
driver_stats_fv = FeatureView(
    ...
    tags={"snowflake-online-store/online_path": '"FEAST"."ONLINE"'},
)

The full set of configuration options is available in SnowflakeOnlineStoreConfig.

Functionality Matrix

The set of functionality supported by online stores is described in detail here. Below is a matrix indicating which functionality is supported by the Snowflake online store.

To compare this set of functionality against other online stores, please see the full functionality matrix.

Last updated