We are delighted to announce the release of Feast 0.20, which introduces many new features and enhancements:
- Many connector improvements and bug fixes (DynamoDB, Snowflake, Spark, Trino)
- Note: Trino has been officially bundled into Feast. You can now run this with
pip install "feast[trino]"
!
- Note: Trino has been officially bundled into Feast. You can now run this with
- Feast API changes
- [Experimental] Feast UI as an importable npm module
- [Experimental] Python SDK with embedded Go mode
Connector optimizations & bug fixes
Key changes:
- DynamoDB online store implementation is now much more efficient with batch feature retrieval (thanks @TremaMiguel!). As per updates on the benchmark blog post, DynamoDB now is much more performant at high batch sizes for online feature retrieval!
- Snowflake offline store connector supports key pair authentication.
- Contrib plugins
- Spark offline store bug fixes
- Trino offline store bug fixes (and now also moved into the main Feast repo!)
- Upcoming: PostgreSQL offline / online store & HBase online store contrib connectors to come in the next release.
To try out these plugins:
pip install "feast[snowflake]"
(see docs and reference)pip install "feast[spark]"
(see offline store reference and data source reference)pip install "feast[trino]"
(documentation still pending, but see old docs)
Feast API simplification
In planning for upcoming functionality (data quality monitoring, batch + stream transformations), certain parts of the Feast API are changing. As part of this change, Feast 0.20 addresses API inconsistencies. No existing feature repos will be broken, and we intend to provide a migration script to help upgrade to the latest syntax.
Key changes:
- Naming changes (e.g.
FeatureView
changes from features -> schema) - All Feast objects will be defined with keyword args (in practice not impacting users unless they use positional args)
- Key Feast object metadata will be consistently exposed through constructors (e.g. owner, description, name)
- [Experimental] Pushing transformed features (e.g. from a stream) directly to the online store:
- Favoring push sources +
feature_store.push
instead offeature_store.write_to_online_store
(docs)
- Also available in the python feature server (“/push”, docs)
- Favoring push sources +
- Data sources as a top level object that is discoverable and visible in UI
- Deprecated
RequestFeatureView
- [Upcoming]:
FeatureView
->StreamFeatureView
andBatchFeatureView
to support batch and stream transformations
See Feast RFC: Feast API updates for some in progress discussions of what will be changing.
[Experimental] Feast Web UI
See https://github.com/feast-dev/feast/tree/master/ui to check out the new Feast Web UI! You can generate registry dumps via the Feast CLI and stand up the server at a local endpoint. You can also embed the UI as a React component and add custom tabs.
What’s next
In response to survey results (fill out this form to give your input), the Feast community will be diving much more deeply into data quality monitoring, batch + stream transformations, and more performant / scalable materialization.
The community is also actively involved in many efforts. Join:
- #feast-web-ui to get involved with helping on the Feast Web UI
- #feast-ops to get involved with things e.g. around feature versioning, CI/CD, integrating with Kubeflow, etc
- #feast-dqm-dev to get involved with efforts around data quality monitoring
- #feast-feature-transformations to get involved with batch + stream + on demand transformations
Download Feast 0.20 today from PyPI (or pip install feast) and try it out! Let us know on our slack channel what you think. Also join the Google group here to stay in the loop for community calls and other area specific meetings!
Credits
We want to extend our gratitude and acknowledgement to all the Feast community contributors who’ve helped with this release. To see all the features, enhancements, and bug fixes, check the changelog for this release.