feat: Add feature view versioning support to Redis and DynamoDB online stores by YassinNouh21 · Pull Request #6257 · feast-dev/feast
…e stores Redis: Add _versioned_fv_name() helper that computes versioned feature view names (e.g. driver_stats_v2) used in hash field keys (_ts: and mmh3 feature hashes). This ensures version isolation within the same entity hash key. DynamoDB: Modify _get_table_name() to apply version suffix before template formatting, so each version gets its own DynamoDB table. Both stores are registered in _check_versioned_read_support() and the error message is updated accordingly. Closes feast-dev#6164, closes feast-dev#6163 Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
…sioning gate Redis and DynamoDB modules raise FeastExtrasDependencyImportError (not ImportError) when their dependencies are missing. Use broad Exception catch so environments without redis/boto3 don't break. Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
Move version resolution logic into a shared compute_versioned_name() in helpers.py, reused by Redis, DynamoDB, and compute_table_id(). Addresses reviewer feedback to avoid duplicating version logic. Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
korbonits pushed a commit to korbonits/feast that referenced this pull request
…e stores (feast-dev#6257) * feat: Add feature view versioning support to Redis and DynamoDB online stores Redis: Add _versioned_fv_name() helper that computes versioned feature view names (e.g. driver_stats_v2) used in hash field keys (_ts: and mmh3 feature hashes). This ensures version isolation within the same entity hash key. DynamoDB: Modify _get_table_name() to apply version suffix before template formatting, so each version gets its own DynamoDB table. Both stores are registered in _check_versioned_read_support() and the error message is updated accordingly. Closes feast-dev#6164, closes feast-dev#6163 Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com> * fix: Add pragma allowlist for dummy moto credentials in DynamoDB test Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com> * fix: Catch Exception instead of ImportError for Redis/DynamoDB in versioning gate Redis and DynamoDB modules raise FeastExtrasDependencyImportError (not ImportError) when their dependencies are missing. Use broad Exception catch so environments without redis/boto3 don't break. Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com> * refactor: Extract shared compute_versioned_name helper to helpers.py Move version resolution logic into a shared compute_versioned_name() in helpers.py, reused by Redis, DynamoDB, and compute_table_id(). Addresses reviewer feedback to avoid duplicating version logic. Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com> --------- Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com> Signed-off-by: Alex Korbonits <alex@korbonits.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters