Feast 0.20 adds API and connector improvements

  • April 21, 2022
  • Danny Chiao

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]"!
  • 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:

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 of feature_store.write_to_online_store (docs)
    • Also available in the python feature server (“/push”, docs)
  • Data sources as a top level object that is discoverable and visible in UI
  • Deprecated RequestFeatureView
  • [Upcoming]: FeatureView -> StreamFeatureView and BatchFeatureView 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.