Skip to main content
Version: 6.0-SNAPSHOT

Configure Feature Store

To use a Feast project, you must configure the feature store. The configuration is defined in a YAML configuration file.

The feature store forms part of the feature repository. The feature repository stores the configuration to run Feast on your infrastructure and the feature definitions in a central location. It provides the declarative source of truth for the desired state of the feature store. The feature repository consists of the following:

  • Feature declarations in Python files
  • Infrastructural configuration in the feature_store.yaml file
  • Paths to ignore in the feature repository in the .feastignore file

By default, the feature repository is the current directory. This can be changed using the Feast CLI, as described in the Feast CLI reference documentation.

For further information on the feature repository, refer to the Feature repository topic of the Feast documentation.

The feature_store.yaml file defines the following:

  • The environment in which Feast deploys and operates. This is defined in the project section
  • The location of the feature registry. This is defined in the registry section
  • The online store. This is defined in the online_store section
  • The offline store. This is defined in the offline_store section
  • The namespace to use for the feature store. This can be used to isolate multiple deployments in a single Feast installation, and can contain only letters, numbers, and underscores. This is defined in the project section
  • The materialization engine. This is defined in the engine section
  • The serialization service. This serializes the entity key to a bytestring to allow it to be be used as a lookup key in a hash table. You can specify Feast's serialization service. This is defined in the entity_key_serialization_version section

Configure Hazelcast as Online Store​

The online-store section configures the online store and initializes a config object, which is passed to the OnlineStore interface by Feast to create the connection.

The available options are as follows:

NameTypeDescriptionDefault Value
typeStringOnline store type selector"hazelcast"
cluster_nameStringName of the cluster to which you want to connect"dev"
cluster_membersList[String]List of member addresses connected to your cluster["localhost:5701"]
discovery_tokenStringDiscovery token used by a Hazelcast Cloud cluster""
ssl_cafile_pathStringAbsolute path of CA certificates in PEM format""
ssl_certfile_pathStringAbsolute path of the client certificate in PEM format""
ssl_keyfile_pathStringAbsolute path of theprivate key file for the client certificate in PEM format""
ssl_passwordStringPassword for decrypting the keyfile, if encrypted""
key_ttl_secondsIntegerHazelcast key bin TTL for expiring entities, in seconds0
creds_usernameStringEnterprise only. Username for credential authentication""
creds_passwordStringEnterprise only. Password for credential authentication""

Example Local Cluster Configuration​

You can configure the connection to a local cluster as shown in the following example:

yaml
online_store:
type: hazelcast
cluster_name: <YOUR_CLUSTER_NAME>
cluster_members: [<YOUR_CLUSTER_MEMBERS>]
ssl_cafile_path: <PATH_TO_CA_CERT>
ssl_certfile_path: <PATH_TO_CLIENT_CERT>
ssl_keyfile_path: <PATH_TO_PRIVATE_KEY_FILE>
ssl_password: <PATH_TO_DECRYPTION_PSWD>
key_ttl_seconds: <TTL_IN_SECONDS>

Example SSL-enabled Cluster Configuration​

You can configure an SSL-enabled connection as shown in the following example:

yaml
online_store:
type: hazelcast
cluster_name: <YOUR_CLUSTER_NAME>
cluster_members: [<YOUR_CLUSTER_MEMBERS>]
sl_cafile_path: <PATH_TO_CA_CERT>
ssl_certfile_path: <PATH_TO_CLIENT_CERT>
kssl_keyfile_path: <PATH_TO_PRIVATE_KEY_FILE>
ssl_password: <YOUR_SSL_PASSWORD>