From 55bdb3e4bebe76ccf5e79ba04eb7127c18ff1f75 Mon Sep 17 00:00:00 2001 From: Zach Barnett Date: Mon, 14 Oct 2024 15:54:34 -0500 Subject: [PATCH 01/15] test changes --- .../cassandra_online_store.py | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py b/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py index af747650e24..a50787c4261 100644 --- a/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py +++ b/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py @@ -88,7 +88,7 @@ event_ts TIMESTAMP, created_ts TIMESTAMP, PRIMARY KEY ((entity_key), feature_name) - ) WITH CLUSTERING ORDER BY (feature_name ASC); + ) WITH CLUSTERING ORDER BY (feature_name ASC) {optional_ttl_clause}; """ DROP_TABLE_CQL_TEMPLATE = "DROP TABLE IF EXISTS {fqtable};" @@ -231,14 +231,21 @@ def _get_session(self, config: RepoConfig): return self._session if not self._session: # configuration consistency checks - hosts = online_store_config.hosts secure_bundle_path = online_store_config.secure_bundle_path - port = online_store_config.port or 9042 + port = 19042 if online_store_config.type == "scylladb" else ( + online_store_config.port or 9042) keyspace = online_store_config.keyspace username = online_store_config.username password = online_store_config.password protocol_version = online_store_config.protocol_version + if online_store_config.type == "scylladb": + # Using the shard aware functionality + if online_store_config.load_balancing is None: + online_store_config.load_balancing = "TokenAwarePolicy(DCAwareRoundRobinPolicy)" + if online_store_config.protocol_version is None: + protocol_version = 4 + hosts = online_store_config.hosts db_directions = hosts or secure_bundle_path if not db_directions or not keyspace: raise CassandraInvalidConfig(E_CASSANDRA_NOT_CONFIGURED) @@ -456,6 +463,10 @@ def update( """ project = config.project + if config.online_config.lazy_table_creation: + # create tables during materialization + return + for table in tables_to_keep: self._create_table(config, project, table) for table in tables_to_delete: @@ -568,7 +579,10 @@ def _create_table(self, config: RepoConfig, project: str, table: FeatureView): fqtable = CassandraOnlineStore._fq_table_name(keyspace, project, table) create_cql = self._get_cql_statement(config, "create", fqtable) logger.info(f"Creating table {fqtable}.") - session.execute(create_cql) + if config.online_config.ttl: + session.execute(create_cql, parameters=config.online_config.ttl) + else: + session.execute(create_cql) def _get_cql_statement( self, config: RepoConfig, op_name: str, fqtable: str, **kwargs @@ -585,9 +599,15 @@ def _get_cql_statement( """ session: Session = self._get_session(config) template, prepare = CQL_TEMPLATE_MAP[op_name] + if op_name == "create" and config.online_config.ttl: + ttl_clause = " WITH default_time_to_live = ?" + else: + ttl_clause = None + statement = template.format( fqtable=fqtable, - **kwargs, + optional_ttl_clause=ttl_clause, + **kwargs ) if prepare: # using the statement itself as key (no problem with that) From 855c41673709649847998194372c2c215e566faa Mon Sep 17 00:00:00 2001 From: Zach Barnett Date: Tue, 15 Oct 2024 14:04:02 -0500 Subject: [PATCH 02/15] fix: allow for scylladb in feature_store.yaml --- .../contrib/cassandra_online_store/cassandra_online_store.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py b/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py index a50787c4261..1363833cc5c 100644 --- a/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py +++ b/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py @@ -463,7 +463,8 @@ def update( """ project = config.project - if config.online_config.lazy_table_creation: + if getattr(config.online_store, "lazy_table_creation", False): + logger.info(f"Lazy table creation enabled. Skipping table creation for {project} online store.") # create tables during materialization return From 643d23cdf06a7305b60ec866eb2cade2271e74cf Mon Sep 17 00:00:00 2001 From: Zach Barnett Date: Tue, 15 Oct 2024 14:13:37 -0500 Subject: [PATCH 03/15] fix: linter issue --- .../contrib/cassandra_online_store/cassandra_online_store.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py b/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py index 1363833cc5c..1146784b293 100644 --- a/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py +++ b/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py @@ -239,9 +239,10 @@ def _get_session(self, config: RepoConfig): password = online_store_config.password protocol_version = online_store_config.protocol_version if online_store_config.type == "scylladb": - # Using the shard aware functionality if online_store_config.load_balancing is None: - online_store_config.load_balancing = "TokenAwarePolicy(DCAwareRoundRobinPolicy)" + online_store_config.load_balancing = CassandraOnlineStoreConfig.CassandraLoadBalancingPolicy( + load_balancing_policy="TokenAwarePolicy(DCAwareRoundRobinPolicy)" + ) if online_store_config.protocol_version is None: protocol_version = 4 From bce55ce9182f8db3999e8b05e34b01fc32bba41f Mon Sep 17 00:00:00 2001 From: Zach Barnett Date: Tue, 15 Oct 2024 14:18:42 -0500 Subject: [PATCH 04/15] fix: linter issue --- .../cassandra_online_store.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py b/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py index 1146784b293..3be3eaad0d1 100644 --- a/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py +++ b/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py @@ -232,8 +232,11 @@ def _get_session(self, config: RepoConfig): if not self._session: # configuration consistency checks secure_bundle_path = online_store_config.secure_bundle_path - port = 19042 if online_store_config.type == "scylladb" else ( - online_store_config.port or 9042) + port = ( + 19042 + if online_store_config.type == "scylladb" + else (online_store_config.port or 9042) + ) keyspace = online_store_config.keyspace username = online_store_config.username password = online_store_config.password @@ -465,7 +468,9 @@ def update( project = config.project if getattr(config.online_store, "lazy_table_creation", False): - logger.info(f"Lazy table creation enabled. Skipping table creation for {project} online store.") + logger.info( + f"Lazy table creation enabled. Skipping table creation for {project} online store." + ) # create tables during materialization return @@ -607,9 +612,7 @@ def _get_cql_statement( ttl_clause = None statement = template.format( - fqtable=fqtable, - optional_ttl_clause=ttl_clause, - **kwargs + fqtable=fqtable, optional_ttl_clause=ttl_clause, **kwargs ) if prepare: # using the statement itself as key (no problem with that) From 23f4451da4e891c2ff8a512d602892d0d8bd72f2 Mon Sep 17 00:00:00 2001 From: Zach Barnett Date: Wed, 16 Oct 2024 14:11:21 -0500 Subject: [PATCH 05/15] fix materialization/registration logic --- sdk/python/feast/expediagroup/provider/expedia.py | 11 +++++++++++ .../cassandra_online_store/cassandra_online_store.py | 7 ------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/sdk/python/feast/expediagroup/provider/expedia.py b/sdk/python/feast/expediagroup/provider/expedia.py index b242e004373..4eb2c56d06e 100644 --- a/sdk/python/feast/expediagroup/provider/expedia.py +++ b/sdk/python/feast/expediagroup/provider/expedia.py @@ -68,8 +68,19 @@ def update_infra( entities_to_delete: Sequence[Entity], entities_to_keep: Sequence[Entity], partial: bool, + materialization_update: bool = False, ): if self.online_store: + if self.online_store.type == "scylladb" and materialization_update: + self.online_store.update( + config=self.repo_config, + tables_to_delete=tables_to_delete, + tables_to_keep=tables_to_keep, + entities_to_keep=entities_to_keep, + entities_to_delete=entities_to_delete, + partial=partial, + ) + if tables_to_delete: logger.info( f"Data associated to {[feature_view.name for feature_view in tables_to_delete]} feature views will be deleted from the online store based on ttl defined if the entities are not shared with other feature views" diff --git a/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py b/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py index 3be3eaad0d1..80a7bbb3bbc 100644 --- a/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py +++ b/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py @@ -467,13 +467,6 @@ def update( """ project = config.project - if getattr(config.online_store, "lazy_table_creation", False): - logger.info( - f"Lazy table creation enabled. Skipping table creation for {project} online store." - ) - # create tables during materialization - return - for table in tables_to_keep: self._create_table(config, project, table) for table in tables_to_delete: From 650b11d20624c4cc0522e3ca2e8c51550fbbb804 Mon Sep 17 00:00:00 2001 From: Zach Barnett Date: Wed, 16 Oct 2024 14:26:08 -0500 Subject: [PATCH 06/15] fix: use kwargs in expedia provider update infra --- sdk/python/feast/expediagroup/provider/expedia.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sdk/python/feast/expediagroup/provider/expedia.py b/sdk/python/feast/expediagroup/provider/expedia.py index 4eb2c56d06e..2433c4920d7 100644 --- a/sdk/python/feast/expediagroup/provider/expedia.py +++ b/sdk/python/feast/expediagroup/provider/expedia.py @@ -68,8 +68,10 @@ def update_infra( entities_to_delete: Sequence[Entity], entities_to_keep: Sequence[Entity], partial: bool, - materialization_update: bool = False, + **kwargs ): + materialization_update = kwargs.get("materialization_update", False) + if self.online_store: if self.online_store.type == "scylladb" and materialization_update: self.online_store.update( From 7375a4d36b7c0dc21a0df922f5febd40478c70eb Mon Sep 17 00:00:00 2001 From: Zach Barnett Date: Wed, 16 Oct 2024 14:41:53 -0500 Subject: [PATCH 07/15] try to ignore keyword lint error --- sdk/python/feast/expediagroup/provider/expedia.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sdk/python/feast/expediagroup/provider/expedia.py b/sdk/python/feast/expediagroup/provider/expedia.py index 2433c4920d7..4eb2c56d06e 100644 --- a/sdk/python/feast/expediagroup/provider/expedia.py +++ b/sdk/python/feast/expediagroup/provider/expedia.py @@ -68,10 +68,8 @@ def update_infra( entities_to_delete: Sequence[Entity], entities_to_keep: Sequence[Entity], partial: bool, - **kwargs + materialization_update: bool = False, ): - materialization_update = kwargs.get("materialization_update", False) - if self.online_store: if self.online_store.type == "scylladb" and materialization_update: self.online_store.update( From cf36eb8a83e37a0c8ecd3333bec4903ab91ca84f Mon Sep 17 00:00:00 2001 From: Zach Barnett Date: Wed, 16 Oct 2024 14:53:41 -0500 Subject: [PATCH 08/15] allow for non-lazy table creation --- sdk/python/feast/expediagroup/provider/expedia.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/python/feast/expediagroup/provider/expedia.py b/sdk/python/feast/expediagroup/provider/expedia.py index 4eb2c56d06e..d69177ec9b7 100644 --- a/sdk/python/feast/expediagroup/provider/expedia.py +++ b/sdk/python/feast/expediagroup/provider/expedia.py @@ -71,7 +71,7 @@ def update_infra( materialization_update: bool = False, ): if self.online_store: - if self.online_store.type == "scylladb" and materialization_update: + if materialization_update or not getattr(self.repo_config.online_store, "lazy_table_creation", False): self.online_store.update( config=self.repo_config, tables_to_delete=tables_to_delete, From c3c4e5e93c374b1d903139f24bc748996541f307 Mon Sep 17 00:00:00 2001 From: Zach Barnett Date: Wed, 16 Oct 2024 14:56:25 -0500 Subject: [PATCH 09/15] fix: lint formatting --- sdk/python/feast/expediagroup/provider/expedia.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sdk/python/feast/expediagroup/provider/expedia.py b/sdk/python/feast/expediagroup/provider/expedia.py index d69177ec9b7..029d301e169 100644 --- a/sdk/python/feast/expediagroup/provider/expedia.py +++ b/sdk/python/feast/expediagroup/provider/expedia.py @@ -71,7 +71,9 @@ def update_infra( materialization_update: bool = False, ): if self.online_store: - if materialization_update or not getattr(self.repo_config.online_store, "lazy_table_creation", False): + if materialization_update or not getattr( + self.repo_config.online_store, "lazy_table_creation", False + ): self.online_store.update( config=self.repo_config, tables_to_delete=tables_to_delete, From 118c89e79c505775c1f9814c465696ed5719ed61 Mon Sep 17 00:00:00 2001 From: Zach Barnett Date: Wed, 16 Oct 2024 15:03:39 -0500 Subject: [PATCH 10/15] dont update for non-scylladb --- sdk/python/feast/expediagroup/provider/expedia.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/sdk/python/feast/expediagroup/provider/expedia.py b/sdk/python/feast/expediagroup/provider/expedia.py index 029d301e169..6bef40b8a9a 100644 --- a/sdk/python/feast/expediagroup/provider/expedia.py +++ b/sdk/python/feast/expediagroup/provider/expedia.py @@ -70,10 +70,12 @@ def update_infra( partial: bool, materialization_update: bool = False, ): + scylla_no_lazy_table_creation = self.repo_config.online_store.type == "scylladb" and not getattr( + self.repo_config.online_store, "lazy_table_creation", False + ) + if self.online_store: - if materialization_update or not getattr( - self.repo_config.online_store, "lazy_table_creation", False - ): + if materialization_update or scylla_no_lazy_table_creation: self.online_store.update( config=self.repo_config, tables_to_delete=tables_to_delete, From 339f960f90d61834bdc0df66db3f7c7c4f0a7305 Mon Sep 17 00:00:00 2001 From: Zach Barnett Date: Wed, 16 Oct 2024 15:07:08 -0500 Subject: [PATCH 11/15] fix: lint formatting --- sdk/python/feast/expediagroup/provider/expedia.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sdk/python/feast/expediagroup/provider/expedia.py b/sdk/python/feast/expediagroup/provider/expedia.py index 6bef40b8a9a..6e9dfa6c93b 100644 --- a/sdk/python/feast/expediagroup/provider/expedia.py +++ b/sdk/python/feast/expediagroup/provider/expedia.py @@ -70,8 +70,9 @@ def update_infra( partial: bool, materialization_update: bool = False, ): - scylla_no_lazy_table_creation = self.repo_config.online_store.type == "scylladb" and not getattr( - self.repo_config.online_store, "lazy_table_creation", False + scylla_no_lazy_table_creation = ( + self.repo_config.online_store.type == "scylladb" + and not getattr(self.repo_config.online_store, "lazy_table_creation", False) ) if self.online_store: From 238b38913edaa6fcbf25a4c8f63605b73cb42009 Mon Sep 17 00:00:00 2001 From: Zach Barnett Date: Mon, 21 Oct 2024 10:08:45 -0500 Subject: [PATCH 12/15] fix: address Bhargav's comments --- .../feast/expediagroup/provider/expedia.py | 16 ---------- .../cassandra_online_store.py | 30 ++++--------------- 2 files changed, 6 insertions(+), 40 deletions(-) diff --git a/sdk/python/feast/expediagroup/provider/expedia.py b/sdk/python/feast/expediagroup/provider/expedia.py index 6e9dfa6c93b..b242e004373 100644 --- a/sdk/python/feast/expediagroup/provider/expedia.py +++ b/sdk/python/feast/expediagroup/provider/expedia.py @@ -68,24 +68,8 @@ def update_infra( entities_to_delete: Sequence[Entity], entities_to_keep: Sequence[Entity], partial: bool, - materialization_update: bool = False, ): - scylla_no_lazy_table_creation = ( - self.repo_config.online_store.type == "scylladb" - and not getattr(self.repo_config.online_store, "lazy_table_creation", False) - ) - if self.online_store: - if materialization_update or scylla_no_lazy_table_creation: - self.online_store.update( - config=self.repo_config, - tables_to_delete=tables_to_delete, - tables_to_keep=tables_to_keep, - entities_to_keep=entities_to_keep, - entities_to_delete=entities_to_delete, - partial=partial, - ) - if tables_to_delete: logger.info( f"Data associated to {[feature_view.name for feature_view in tables_to_delete]} feature views will be deleted from the online store based on ttl defined if the entities are not shared with other feature views" diff --git a/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py b/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py index 80a7bbb3bbc..af747650e24 100644 --- a/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py +++ b/sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/cassandra_online_store.py @@ -88,7 +88,7 @@ event_ts TIMESTAMP, created_ts TIMESTAMP, PRIMARY KEY ((entity_key), feature_name) - ) WITH CLUSTERING ORDER BY (feature_name ASC) {optional_ttl_clause}; + ) WITH CLUSTERING ORDER BY (feature_name ASC); """ DROP_TABLE_CQL_TEMPLATE = "DROP TABLE IF EXISTS {fqtable};" @@ -231,25 +231,14 @@ def _get_session(self, config: RepoConfig): return self._session if not self._session: # configuration consistency checks + hosts = online_store_config.hosts secure_bundle_path = online_store_config.secure_bundle_path - port = ( - 19042 - if online_store_config.type == "scylladb" - else (online_store_config.port or 9042) - ) + port = online_store_config.port or 9042 keyspace = online_store_config.keyspace username = online_store_config.username password = online_store_config.password protocol_version = online_store_config.protocol_version - if online_store_config.type == "scylladb": - if online_store_config.load_balancing is None: - online_store_config.load_balancing = CassandraOnlineStoreConfig.CassandraLoadBalancingPolicy( - load_balancing_policy="TokenAwarePolicy(DCAwareRoundRobinPolicy)" - ) - if online_store_config.protocol_version is None: - protocol_version = 4 - hosts = online_store_config.hosts db_directions = hosts or secure_bundle_path if not db_directions or not keyspace: raise CassandraInvalidConfig(E_CASSANDRA_NOT_CONFIGURED) @@ -579,10 +568,7 @@ def _create_table(self, config: RepoConfig, project: str, table: FeatureView): fqtable = CassandraOnlineStore._fq_table_name(keyspace, project, table) create_cql = self._get_cql_statement(config, "create", fqtable) logger.info(f"Creating table {fqtable}.") - if config.online_config.ttl: - session.execute(create_cql, parameters=config.online_config.ttl) - else: - session.execute(create_cql) + session.execute(create_cql) def _get_cql_statement( self, config: RepoConfig, op_name: str, fqtable: str, **kwargs @@ -599,13 +585,9 @@ def _get_cql_statement( """ session: Session = self._get_session(config) template, prepare = CQL_TEMPLATE_MAP[op_name] - if op_name == "create" and config.online_config.ttl: - ttl_clause = " WITH default_time_to_live = ?" - else: - ttl_clause = None - statement = template.format( - fqtable=fqtable, optional_ttl_clause=ttl_clause, **kwargs + fqtable=fqtable, + **kwargs, ) if prepare: # using the statement itself as key (no problem with that) From 46c03e0c365823f4d7ba8e410f333e23bdf2a331 Mon Sep 17 00:00:00 2001 From: Zach Barnett Date: Tue, 22 Oct 2024 10:31:47 -0500 Subject: [PATCH 13/15] feat: enable infra creation during materialization --- .../feast/infra/passthrough_provider.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/sdk/python/feast/infra/passthrough_provider.py b/sdk/python/feast/infra/passthrough_provider.py index c3c3048a896..17e67522f96 100644 --- a/sdk/python/feast/infra/passthrough_provider.py +++ b/sdk/python/feast/infra/passthrough_provider.py @@ -317,6 +317,25 @@ def materialize_single_feature_view( or isinstance(feature_view, StreamFeatureView) or isinstance(feature_view, FeatureView) ), f"Unexpected type for {feature_view.name}: {type(feature_view)}" + + if getattr(config.online_store, "lazy_table_creation", False): + print( + f"Online store {config.online_store.__class__.__name__} supports lazy table creation and it is enabled" + ) + + self.update_infra( + project=project, + tables_to_delete=[], + tables_to_keep=[feature_view], + entities_to_delete=[], + entities_to_keep=registry.list_entities(project=project), + partial=True, + ) + else: + print( + f"Online store {config.online_store.__class__.__name__} does not support lazy table creation or it is disabled" + ) + task = MaterializationTask( project=project, feature_view=feature_view, From af7eeeb6f4b5322f17d113a831d8e3fcd2c252d7 Mon Sep 17 00:00:00 2001 From: Zach Barnett Date: Tue, 22 Oct 2024 14:56:16 -0500 Subject: [PATCH 14/15] fix: use logger instead of print --- sdk/python/feast/infra/passthrough_provider.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sdk/python/feast/infra/passthrough_provider.py b/sdk/python/feast/infra/passthrough_provider.py index 17e67522f96..058d36d94ea 100644 --- a/sdk/python/feast/infra/passthrough_provider.py +++ b/sdk/python/feast/infra/passthrough_provider.py @@ -1,4 +1,5 @@ from datetime import datetime, timedelta +import logging from typing import Any, Callable, Dict, List, Mapping, Optional, Sequence, Tuple, Union import pandas as pd @@ -37,6 +38,8 @@ make_tzaware, ) +logger = logging.getLogger(__name__) + DEFAULT_BATCH_SIZE = 10_000 @@ -319,7 +322,7 @@ def materialize_single_feature_view( ), f"Unexpected type for {feature_view.name}: {type(feature_view)}" if getattr(config.online_store, "lazy_table_creation", False): - print( + logger.info( f"Online store {config.online_store.__class__.__name__} supports lazy table creation and it is enabled" ) @@ -332,7 +335,7 @@ def materialize_single_feature_view( partial=True, ) else: - print( + logger.info( f"Online store {config.online_store.__class__.__name__} does not support lazy table creation or it is disabled" ) From c74dd54d92cc1057b695f2be9f052ab3d3796417 Mon Sep 17 00:00:00 2001 From: Zach Barnett Date: Tue, 22 Oct 2024 15:07:48 -0500 Subject: [PATCH 15/15] fix: remove else clause --- sdk/python/feast/infra/passthrough_provider.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/sdk/python/feast/infra/passthrough_provider.py b/sdk/python/feast/infra/passthrough_provider.py index 058d36d94ea..9d0376fb43c 100644 --- a/sdk/python/feast/infra/passthrough_provider.py +++ b/sdk/python/feast/infra/passthrough_provider.py @@ -1,5 +1,5 @@ -from datetime import datetime, timedelta import logging +from datetime import datetime, timedelta from typing import Any, Callable, Dict, List, Mapping, Optional, Sequence, Tuple, Union import pandas as pd @@ -334,10 +334,6 @@ def materialize_single_feature_view( entities_to_keep=registry.list_entities(project=project), partial=True, ) - else: - logger.info( - f"Online store {config.online_store.__class__.__name__} does not support lazy table creation or it is disabled" - ) task = MaterializationTask( project=project,