Azure / feast-azure

Azure plugins for Feast (FEAture STore)
MIT License
82 stars 52 forks source link

Feast azure to support Feast 0.19.x+ version #67

Open mdrijwan123 opened 2 years ago

mdrijwan123 commented 2 years ago

Hi, thankyou for creating this extension on feast, I am just curious if there will be any update on version on feast that will be used with feast-azure-provider, right now the default feast version its downloading is 0.18.x, but we are using 0.19+ version, so is there any way I can use feast azure provider with updated version of feast.

mithrandir184 commented 1 year ago

Supporting @mdrijwan123 to add support for 0.34.1 and it is throwing the following error when initializing FeatureStore

/anaconda/envs/azureml_py38/lib/python3.8/site-packages/urllib3/util/retry.py:455: DeprecationWarning: Using 'method_whitelist' with Retry is deprecated and will be removed in v2.0. Use 'allowed_methods' instead warnings.warn(

ImportError Traceback (most recent call last) File /anaconda/envs/azureml_py38/lib/python3.8/site-packages/feast/importer.py:26, in import_class(module_name, class_name, class_type) 25 try: ---> 26 module = importlib.import_module(module_name) 27 except Exception as e: 28 # The original exception can be anything - either module not found, 29 # or any other kind of error happening during the module import time. 30 # So we should include the original error as well in the stack trace.

File /anaconda/envs/azureml_py38/lib/python3.8/importlib/init.py:127, in import_module(name, package) 126 level += 1 --> 127 return _bootstrap._gcd_import(name[level:], package, level)

File :1014, in _gcd_import(name, package, level)

File :991, in _find_andload(name, import)

File :975, in _find_and_loadunlocked(name, import)

File :671, in _load_unlocked(spec)

File :783, in exec_module(self, module)

File :219, in _call_with_frames_removed(f, *args, **kwds)

File /anaconda/envs/azureml_py38/lib/python3.8/site-packages/feast_azure_provider/mssqlserver.py:39 36 from feast.infra.offline_stores.offline_utils import ( 37 DEFAULT_ENTITY_DF_EVENT_TIMESTAMP_COL, 38 ) ---> 39 from feast.infra.provider import ( 40 RetrievalJob, 41 _get_requested_feature_views_to_features_dict, 42 ) 43 from feast.registry import Registry

ImportError: cannot import name '_get_requested_feature_views_to_features_dict' from 'feast.infra.provider' (/anaconda/envs/azureml_py38/lib/python3.8/site-packages/feast/infra/provider.py)

The above exception was the direct cause of the following exception:

FeastModuleImportError Traceback (most recent call last) Cell In[6], line 13 10 os.environ['REDIS_CONN']=kv.get_secret("FEAST-ONLINE-STORE-CONN") 12 # connect to feature store ---> 13 fs = FeatureStore("./feature_repo")

File /anaconda/envs/azureml_py38/lib/python3.8/site-packages/feast/usage.py:362, in log_exceptions..decorator..wrapper(*args, **kwargs) 359 _produce_event(ctx) 361 if traceback: --> 362 raise exc.with_traceback(traceback) 364 raise exc

File /anaconda/envs/azureml_py38/lib/python3.8/site-packages/feast/usage.py:348, in log_exceptions..decorator..wrapper(*args, *kwargs) 344 fn_call = FnCall( 345 id=uuid.uuid4().hex, fn_name=_fn_fullname(func), start=datetime.utcnow() 346 ) 347 try: --> 348 return func(args, **kwargs) 349 except Exception: 350 _, exc, traceback = sys.exc_info()

File /anaconda/envs/azureml_py38/lib/python3.8/site-packages/feast/feature_store.py:154, in FeatureStore.init(self, repo_path, config, fs_yaml_file) 152 self.config = load_repo_config(self.repo_path, fs_yaml_file) 153 else: --> 154 self.config = load_repo_config( 155 self.repo_path, utils.get_default_yaml_file_path(self.repo_path) 156 ) 158 registry_config = self.config.registry 159 if registry_config.registry_type == "sql":

File /anaconda/envs/azureml_py38/lib/python3.8/site-packages/feast/repo_config.py:549, in load_repo_config(repo_path, fs_yaml_file) 547 raw_config = yaml.safe_load(os.path.expandvars(f.read())) 548 try: --> 549 c = RepoConfig(**raw_config) 550 c.repo_path = repo_path 551 return c

File /anaconda/envs/azureml_py38/lib/python3.8/site-packages/feast/repo_config.py:185, in RepoConfig.init(self, data) 184 def init(self, data: Any): --> 185 super().init(**data) 187 self._registry = None 188 if "registry" not in data:

File /anaconda/envs/azureml_py38/lib/python3.8/site-packages/pydantic/main.py:339, in pydantic.main.BaseModel.init()

File /anaconda/envs/azureml_py38/lib/python3.8/site-packages/pydantic/main.py:1050, in pydantic.main.validate_model()

File /anaconda/envs/azureml_py38/lib/python3.8/site-packages/feast/repo_config.py:385, in RepoConfig._validate_offline_store_config(cls, values) 383 # Validate the dict to ensure one of the union types match 384 try: --> 385 offline_config_class = get_offline_config_from_type(offline_store_type) 386 offline_config_class(**values["offline_store"]) 387 except ValidationError as e:

File /anaconda/envs/azureml_py38/lib/python3.8/site-packages/feast/repo_config.py:530, in get_offline_config_from_type(offline_store_type) 527 module_name, offline_store_class_type = offline_store_type.rsplit(".", 1) 528 config_class_name = f"{offline_store_class_type}Config" --> 530 return import_class(module_name, config_class_name, config_class_name)

File /anaconda/envs/azureml_py38/lib/python3.8/site-packages/feast/importer.py:31, in import_class(module_name, class_name, class_type) 26 module = importlib.import_module(module_name) 27 except Exception as e: 28 # The original exception can be anything - either module not found, 29 # or any other kind of error happening during the module import time. 30 # So we should include the original error as well in the stack trace. ---> 31 raise FeastModuleImportError(module_name, class_name) from e 33 # Try getting the class. 34 try:

FeastModuleImportError: Could not import module 'feast_azure_provider.mssqlserver' while attempting to load class 'MsSqlServerOfflineStoreConfig'