feast-dev / feast

The Open Source Feature Store for Machine Learning
https://feast.dev
Apache License 2.0
5.55k stars 993 forks source link

sql registry error after initialisation #4632

Open NikhilKr872 opened 1 day ago

NikhilKr872 commented 1 day ago

Expected Behavior

sql registry should initialise properly

Current Behavior

Works properly with an empty db but throws error after db has been populated

Steps to reproduce

Initialise registry with mysql db

  File "/home/ec2-user/feast-test/venv/lib/python3.10/site-packages/feast/feature_store.py", line 150, in __init__
    self._registry = SqlRegistry(registry_config, self.config.project, None)
  File "/home/ec2-user/feast-test/venv/lib/python3.10/site-packages/feast/infra/registry/sql.py", line 195, in __init__
    super().__init__(
  File "/home/ec2-user/feast-test/venv/lib/python3.10/site-packages/feast/infra/registry/caching_registry.py", line 27, in __init__
    self.cached_registry_proto = self.proto()
  File "/home/ec2-user/feast-test/venv/lib/python3.10/site-packages/feast/infra/registry/sql.py", line 670, in proto
    objs: List[Any] = lister(project)  # type: ignore
  File "/home/ec2-user/feast-test/venv/lib/python3.10/site-packages/feast/infra/registry/caching_registry.py", line 70, in list_data_sources
    return self._list_data_sources(project, tags)
  File "/home/ec2-user/feast-test/venv/lib/python3.10/site-packages/feast/infra/registry/sql.py", line 380, in _list_data_sources
    return self._list_objects(
  File "/home/ec2-user/feast-test/venv/lib/python3.10/site-packages/feast/infra/registry/sql.py", line 855, in _list_objects
    obj = python_class.from_proto(
  File "/home/ec2-user/feast-test/venv/lib/python3.10/site-packages/feast/data_source.py", line 297, in from_proto
    cls = get_data_source_class_from_type(data_source.data_source_class_type)
  File "/home/ec2-user/feast-test/venv/lib/python3.10/site-packages/feast/repo_config.py", line 448, in get_data_source_class_from_type
    module_name, config_class_name = data_source_type.rsplit(".", 1)
ValueError: not enough values to unpack (expected 2, got 1)

Specifications

franciscojavierarceo commented 1 day ago

Can you share what online/offline store you are using? Maybe share your feature_store.yaml?

NikhilKr872 commented 1 day ago

I'm using Trino as offline store and redis as online store

feature_store.yaml

project: feature_store_test
# By default, the registry is a file (but can be turned into a more scalable SQL-backed registry)
registry: 
  registry_type: sql
  path: mysql+pymysql://user:pass@localhost:3306/feast
  cache_ttl_seconds: 60
  sqlalchemy_config_kwargs:
      echo: false
      pool_pre_ping: true
# The provider primarily specifies default offline / online stores & storing the registry in a given cloud
provider: local
offline_store:
    type: feast_trino.trino.TrinoOfflineStore
    catalog: hive
    dataset: poc
    connector:
        type: memory
online_store:
    type: redis
    redis_type: redis_cluster
    connection_string: "$REDIS_HOST:$REDIS_PORT,ssl=true,password=$REDIS_PASSWORD"
entity_key_serialization_version: 2