Title: feat: Add DynamoDB in-place list update support for array-based features by anshishrivastava · Pull Request #5916 · feast-dev/feast · GitHub
Open Graph Title: feat: Add DynamoDB in-place list update support for array-based features by anshishrivastava · Pull Request #5916 · feast-dev/feast
X Title: feat: Add DynamoDB in-place list update support for array-based features by anshishrivastava · Pull Request #5916 · feast-dev/feast
Description: Summary
Adds DynamoDB-specific list update functionality to avoid inefficient read-modify-write patterns for array-based features. This implements the solution requested in #5687.
Fixes #5687
Changes
Add update_online_store() and update_online_store_async() methods to DynamoDBOnlineStore class
Add corresponding methods to FeatureStore class for user-facing API
Support DynamoDB UpdateItem with list_append expressions for efficient array operations
Implement proper list serialization for all ValueProto list types
Add comprehensive unit tests for both DynamoDB online store and FeatureStore methods
Maintain 100% backward compatibility with existing write_to_online_store behavior
DynamoDB-specific functionality kept separate from core OnlineStore interface
Testing
Added comprehensive unit tests for DynamoDB online store update methods
Added FeatureStore integration tests for both sync and async methods
All tests pass and maintain backward compatibility.
Usage Example
# Append new transactions to existing transaction history
store.update_online_store(
feature_view_name="user_transactions",
df=new_transactions_df,
update_expressions={
"transaction_history": "list_append(transaction_history, :new_val)",
"recent_amounts": "list_append(:new_val, recent_amounts)[:10]" # sliding window
}
)
---
Open Graph Description: Summary Adds DynamoDB-specific list update functionality to avoid inefficient read-modify-write patterns for array-based features. This implements the solution requested in #5687. Fixes #5687 Chang...
X Description: Summary Adds DynamoDB-specific list update functionality to avoid inefficient read-modify-write patterns for array-based features. This implements the solution requested in #5687. Fixes #5687 Chang...
Opengraph URL: https://github.com/feast-dev/feast/pull/5916
X: @github
Domain: github.com
| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:454c1624-79bc-b68a-6297-029be0ce92c9 |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | 92F4:34D244:17E4629:208D553:6A4F2B1D |
| html-safe-nonce | d510962a3d68a3e7f80eb1329701e072854a3a6b989dc7e78c156d3afbd52e79 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5MkY0OjM0RDI0NDoxN0U0NjI5OjIwOEQ1NTM6NkE0RjJCMUQiLCJ2aXNpdG9yX2lkIjoiNzgxMzExMjEwNTI5MzI2MTU5NyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 311b700dd14a439ca63cfb25b1812b7342737946f6b24a78c3df55d3610f20dd |
| hovercard-subject-tag | pull_request:3216340519 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/feast-dev/feast/pull/5916/files |
| twitter:image | https://avatars.githubusercontent.com/u/19619602?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/19619602?s=400&v=4 |
| og:image:alt | Summary Adds DynamoDB-specific list update functionality to avoid inefficient read-modify-write patterns for array-based features. This implements the solution requested in #5687. Fixes #5687 Chang... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | b92d11c0aa4a77d54ef4af1078b6a15fb5a70a215b30c4ecf28889d5a8e656d9 |
| turbo-cache-control | no-preview |
| diff-view | unified |
| go-import | github.com/feast-dev/feast git https://github.com/feast-dev/feast.git |
| octolytics-dimension-user_id | 57027613 |
| octolytics-dimension-user_login | feast-dev |
| octolytics-dimension-repository_id | 161133770 |
| octolytics-dimension-repository_nwo | feast-dev/feast |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 161133770 |
| octolytics-dimension-repository_network_root_nwo | feast-dev/feast |
| turbo-body-classes | logged-out env-production page-responsive full-width |
| disable-turbo | true |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 2b8f23afb982271f1b22258a94aede67a6b77760 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width