feast.infra.online_stores.contrib.hazelcast_online_store package

Submodules

feast.infra.online_stores.contrib.hazelcast_online_store.hazelcast_online_store module

Hazelcast online store for Feast.

exception feast.infra.online_stores.contrib.hazelcast_online_store.hazelcast_online_store.HazelcastInvalidConfig(msg: str)[source]

Bases: Exception

class feast.infra.online_stores.contrib.hazelcast_online_store.hazelcast_online_store.HazelcastOnlineStore[source]

Bases: OnlineStore

Hazelcast online store implementation for Feast

_client

Hazelcast client connection.

Type:

hazelcast.client.HazelcastClient | None

_lock

Prevent race condition while creating the client connection

online_read(config: RepoConfig, table: FeatureView, entity_keys: List[EntityKey], requested_features: List[str] | None = None) List[Tuple[datetime | None, Dict[str, Value] | None]][source]

Reads features values for the given entity keys.

Parameters:
  • config – The config for the current feature store.

  • table – The feature view whose feature values should be read.

  • entity_keys – The list of entity keys for which feature values should be read.

  • requested_features – The list of features that should be read.

Returns:

A list of the same length as entity_keys. Each item in the list is a tuple where the first item is the event timestamp for the row, and the second item is a dict mapping feature names to values, which are returned in proto format.

online_write_batch(config: RepoConfig, table: FeatureView, data: List[Tuple[EntityKey, Dict[str, Value], datetime, datetime | None]], progress: Callable[[int], Any] | None) None[source]

Writes a batch of feature rows to the online store.

If a tz-naive timestamp is passed to this method, it is assumed to be UTC.

Parameters:
  • config – The config for the current feature store.

  • table – Feature view to which these feature rows correspond.

  • data – A list of quadruplets containing feature data. Each quadruplet contains an entity key, a dict containing feature values, an event timestamp for the row, and the created timestamp for the row if it exists.

  • progress – Function to be called once a batch of rows is written to the online store, used to show progress.

teardown(config: RepoConfig, tables: Sequence[FeatureView], entities: Sequence[Entity])[source]

Tears down all cloud resources for the specified set of Feast objects.

Parameters:
  • config – The config for the current feature store.

  • tables – Feature views whose corresponding infrastructure should be deleted.

  • entities – Entities whose corresponding infrastructure should be deleted.

update(config: RepoConfig, tables_to_delete: Sequence[FeatureView], tables_to_keep: Sequence[FeatureView], entities_to_delete: Sequence[Entity], entities_to_keep: Sequence[Entity], partial: bool)[source]

Reconciles cloud resources with the specified set of Feast objects.

Parameters:
  • config – The config for the current feature store.

  • tables_to_delete – Feature views whose corresponding infrastructure should be deleted.

  • tables_to_keep – Feature views whose corresponding infrastructure should not be deleted, and may need to be updated.

  • entities_to_delete – Entities whose corresponding infrastructure should be deleted.

  • entities_to_keep – Entities whose corresponding infrastructure should not be deleted, and may need to be updated.

  • partial – If true, tables_to_delete and tables_to_keep are not exhaustive lists, so infrastructure corresponding to other feature views should be not be touched.

class feast.infra.online_stores.contrib.hazelcast_online_store.hazelcast_online_store.HazelcastOnlineStoreConfig(*, type: Literal['hazelcast'] = 'hazelcast', cluster_name: StrictStr = 'dev', cluster_members: List[str] | None = ['localhost:5701'], discovery_token: StrictStr | None = '', ssl_cafile_path: StrictStr | None = '', ssl_certfile_path: StrictStr | None = '', ssl_keyfile_path: StrictStr | None = '', ssl_password: StrictStr | None = '', key_ttl_seconds: int | None = 0)[source]

Bases: FeastConfigBaseModel

Online store config for Hazelcast store

cluster_members: List[str] | None

List of member addresses which is connected to your cluster

cluster_name: StrictStr

Name of the cluster you want to connect. The default cluster name is dev

discovery_token: StrictStr | None

The discovery token of your Hazelcast Viridian cluster

key_ttl_seconds: int | None

Hazelcast key bin TTL (in seconds) for expiring entities

ssl_cafile_path: StrictStr | None

Absolute path of CA certificates in PEM format.

ssl_certfile_path: StrictStr | None

Absolute path of the client certificate in PEM format.

ssl_keyfile_path: StrictStr | None

Absolute path of the private key file for the client certificate in the PEM format.

ssl_password: StrictStr | None

Password for decrypting the keyfile if it is encrypted.

type: Literal['hazelcast']

Online store type selector

Module contents