Skip to content

Releases: feast-dev/feast

Feast v0.16.0

08 Dec 02:13
65c41bd
Compare
Choose a tag to compare

Overview

Today we are releasing Feast 0.16, which includes many bug fixes and optimizations.

👥 Contributors

Thanks to @achals, @adchia, @ArrichM, @aurobindoc, @casassg, @danilopeixoto, @felixwang9817, @judahrand, @mavysavydav, @olivierlabreche, @nossrannug, @ptoman-pa, @pyalex, @tsotnet, @ysk24ok for the contributions!

✨ New Features:

  • Install redis extra in AWS Lambda feature server & add hiredis depend… #2057 (tsotnet)
  • Support of GC and S3 storages for registry in Java Feature Server #2043 (pyalex)
  • Adding stream ingestion alpha documentation #2005 (adchia)

🔴 Fixed bugs:

  • requested_features are not passed to online_read() from passthrough_provider #2106
  • feast apply broken with 0.15.* if the registry already exists #2086
  • Inconsistent logic with on_demand_feature_views #2072
  • requested_features is passed to online_read from passthrough_provider #2107 (aurobindoc)
  • Don't materialize FeatureViews where online is False #2101 (judahrand)
  • Have apply_total use the repo_config that's passed in as a parameter (makes it more compatible with custom wrapper code) #2099 (mavysavydav)
  • Do not attempt to compute ODFVs when there are no ODFVs #2090 (felixwang9817)
  • Duplicate feast apply bug #2087 (felixwang9817)
  • Add --host as an option for feast serve #2078 (nossrannug)
  • Fix feature server docker image tag generation in pr integration tests #2077 (tsotnet)
  • Fix ECR Image build on master branch #2076 (tsotnet)
  • Optimize memory usage during materialization #2073 (judahrand)
  • Fix unexpected feature view deletion when applying edited odfv #2054 (ArrichM)
  • Properly exclude entities from feature inference #2048 (mavysavydav)
  • Don't allow FeatureStore.apply with commit=False #2047 (nossrannug)
  • Fix bug causing OnDemandFeatureView.infer_features() to fail when the… #2046 (ArrichM)
  • Add missing comma in setup.py #2031 (achals)
  • Correct cleanup after usage e2e tests #2015 (pyalex)
  • Change Environment timestamps to be in UTC #2007 (felixwang9817)
  • get_online_features on demand transform bug fixes + local integration test mode #2004 (adchia)
  • Always pass full and partial feature names to ODFV #2003 (judahrand)
  • ODFV UDFs should handle list types #2002 (Agent007)
  • Update bq_to_feast_value_type with BOOLEAN type as a legacy sql data type #1996 (mavysavydav)
  • Fix bug where using some Pandas dtypes in the output of an ODFV fails #1994 (judahrand)
  • Fix duplicate update infra #1990 (felixwang9817)
  • Improve performance of _convert_arrow_to_proto #1984 (nossrannug)

🔨 Merged pull requests:

Read more

Feast v0.15.1

13 Nov 01:27
Compare
Choose a tag to compare

Fixed bugs:

Merged pull requests:

  • Remove unsupported java parts #2029 (pyalex)
  • Fix checked out branch for PR docker image build workflow #2018 (tsotnet)
  • Remove duplicates in setup.py and run rudimentary verifications #2016 (achals)
  • Upload feature server docker image to ECR on approved PRs #2014 (tsotnet)
  • Add integration tests for AWS Lambda feature server #2001 (tsotnet)
  • Moving Feast Java back into main repo under java/ package #1997 (adchia)

Feast v0.15.0

08 Nov 17:20
Compare
Choose a tag to compare

Overview

Today we are releasing Feast 0.15, which includes performance improvements, bug fixes, and several features:

  1. [Experimental] Push based stream ingestion (docs): Feast now allows users to push features previously registered in a feature view to the online store. This most commonly would be done from a stream processing job (e.g. a Beam or Spark Streaming job).
  2. Entity aliasing (docs): This allows for use cases where the same entity has different column names in different source tables (e.g. there are "spammer", "reporter", and "user" tables that all refer to the same user entity).
  3. Feature Transformation Server: a server that executes on demand transformations. The existing feature server (e.g. deployed with AWS Lambda) executes on demand transformations already. This new server integrates with Feast Serving (java server) for latency sensitive usecases.
  4. Easy way to test offline/online store plugins using the existing Feast test suite. See docs for details.

Experimental features are subject to API changes in the near future as we collect feedback. If you have thoughts, please don’t hesitate to reach out to the Feast team!

👥 Contributors

Thanks to @achals, @adchia, @Agent007, @amommendes, @codyjlin, @DvirDukhan, @felixwang9817, @judahrand, @loftiskg, @mavysavydav, @MattDelac, @nossrannug, @pyalex, @qooba, @samuel100, @tsotnet, @vas28r13, and @ysk24ok for the contributions!

✨ New Features:

  • Feature transformation server docker image #1972 (felixwang9817)
  • eventtime check before writing features, use pipelines, ttl #1961 (vas28r13)
  • Plugin repo universal tests #1946 (felixwang9817)
  • direct data ingestion into Online store #1939 (vas28r13)
  • Add an interface for TransformationService and a basic implementation #1932 (achals)
  • Allows registering of features in request data as RequestFeatureView. Refactors common logic into a BaseFeatureView class #1931 (adchia)
  • Add final_output_feature_names in Query context to avoid SELECT * EXCEPT #1911 (MattDelac)
  • Add Dockerfile for GCP CloudRun FeatureServer #1887 (judahrand)

🔴 Fixed bugs:

  • feast=0.14.0 query_generator() unecessary used twice #1978
  • get_online_features on demand transform bug fixes + local integration test mode #2004 (adchia)
  • Always pass full and partial feature names to ODFV #2003 (judahrand)
  • Update bq_to_feast_value_type with BOOLEAN type as a legacy sql data type #1996 (mavysavydav)
  • Fix bug where using some Pandas dtypes in the output of an ODFV fails #1994 (judahrand)
  • Fix duplicate update infra #1990 (felixwang9817)
  • Improve performance of _convert_arrow_to_proto #1984 (nossrannug)
  • Fix duplicate upload entity #1981 (achals)
  • fix redis cluster materialization #1968 (qooba)
  • Allow plugin repos to actually overwrite repo configs #1966 (felixwang9817)
  • Delete keys from Redis when tearing down online store #1965 (achals)
  • Fix issues with lint test and upgrade pip version #1964 (felixwang9817)
  • Move IntegrationTestRepoConfig class to another module #1962 (felixwang9817)
  • Solve package conflict in [gcp] and [ci] #1955 (ysk24ok)
  • Remove some paths from unit test cache #1944 (achals)
  • Fix bug in feast alpha enable CLI command #1940 (felixwang9817)
  • Fix conditional statements for if OnDemandFVs exist #1937 (codyjlin)
  • Fix __getitem__ return value for feature view and on-demand feature view #1936 (mavysavydav)
  • Corrected setup.py BigQuery version that's needed for a contributor's merged PR 1844 #1934 (mavysavydav)

🔨 Merged pull requests:

Feast v0.14.1

28 Oct 07:22
Compare
Choose a tag to compare

Fixed bugs:

  • Fix duplicate upload entity #1981 (achals)
  • Fix bug in feast alpha enable CLI command #1940 (felixwang9817)
  • Fix conditional statements for if OnDemandFVs exist #1937 (codyjlin)
  • Fix __getitem__ return value for feature view and on-demand feature view #1936 (mavysavydav)
  • Corrected setup.py BigQuery version that's needed for a contributor's merged PR 1844 #1934 (mavysavydav)

Merged pull requests:

Feast v0.14.0

20 Oct 17:51
b7d2d8f
Compare
Choose a tag to compare

Overview

Today we are releasing Feast 0.14, which includes a new feature and several important improvements:

  1. [Experimental] AWS Lambda feature servers, which allow you to quickly deploy an HTTP server to serve online features on AWS Lambda. GCP Cloud Run and Java feature servers are coming soon! (see docs)
  2. Bug fixes around performance. The core online serving path is now significantly faster.
  3. Improvements for developer experience. The integration tests are now faster, and temporary tables created during integration tests are immediately dropped after the test.

Experimental features are subject to API changes in the near future as we collect feedback. If you have thoughts, please don’t hesitate to reach out to the Feast team!

👥 Contributors

Thanks to @achals, @adchia, @Agent007, @DvirDukhan, @felixwang9817, @loftiskg, @mavysavydav, @samuel100, @tsotnet, and @ysk24ok for the contributions!

✨ New Features:

  • Rename FVProjection member functions to be more clear #1929 (mavysavydav)
  • Make serverless alpha feature #1928 (felixwang9817)
  • Feast endpoint #1927 (felixwang9817)
  • Add location to BigQueryOfflineStoreConfig #1921 (loftiskg)
  • Create & teardown Lambda & API Gateway resources for serverless feature server #1900 (tsotnet)
  • Hide FeatureViewProjections from user interface & have FeatureViews carry FVProjections that carries the modified info of the FeatureView #1899 (mavysavydav)
  • Upload docker image to ECR during feast apply #1877 (felixwang9817)
  • Added .with_name method in FeatureView/OnDemandFeatureView classes for name aliasing. FeatureViewProjection will hold this information #1872 (mavysavydav)

🔴 Fixed bugs:

  • Update makefile to use pip installed dependencies #1920 (loftiskg)
  • Delete tables #1916 (felixwang9817)
  • Set a 5 minute limit for redshift statement execution #1915 (achals)
  • Use set when parsing repos to prevent duplicates #1913 (achals)
  • resolve environment variables in repo config #1909 (samuel100)
  • Respect specified ValueTypes for features during materialization #1906 (Agent007)
  • Fix issue with feature views being detected as duplicated when imported #1905 (achals)
  • Use contextvars to maintain a call stack during the usage calls #1882 (achals)

🔨 Merged pull requests:

Feast v0.13.0

22 Sep 21:59
a435283
Compare
Choose a tag to compare

Overview

Today we are releasing Feast 0.13, which includes 3 new features:

  1. [Experimental] On demand feature views, which allow for consistently applied transformations in both training and online paths. This also introduces the concept of request data, which is data only available at the time of the prediction request, as potential inputs into these transformations (see docs)
  2. [Experimental] Python feature servers, which allow you to quickly deploy a local HTTP server to serve online features. Serverless deployments and java feature servers to come soon! (see docs)
  3. Feature views without entities, which allow you to specify features that should only be joined on event timestamps. You do not need lists of entities / entity values when defining and retrieving features from these feature views. (see docs)

Experimental features are subject to API changes in the near future as we collect feedback. If you have thoughts, please don’t hesitate to reach out to the Feast team!

👥 Contributors

Thanks to @achals, @adchia, @Baineng, @codyjlin, @DvirDukhan, @felixwang9817, @GregKuhlmann, @guykhazma, @hamzakpt, @judahrand, @jdamji, @LarsKlingen, @MattDelac, @mavysavydav, @mmurdoch, @qooba, @tedhtchang, @samuel100, @tsotnet, and @WingCode for the contributions!

💥 Breaking changes:

  • Enforce case-insensitively unique feature view names #1835 (codyjlin)
  • Add init to Provider contract #1796 (woop)

✨ New Features:

  • Add on demand feature view experimental docs #1880 (adchia)
  • Adding telemetry for on demand feature views and making existing usage calls async #1873 (adchia)
  • Read registry & config from env variables in AWS Lambda feature server #1870 (tsotnet)
  • Add feature server configuration for AWS lambda #1865 (felixwang9817)
  • Add MVP support for on demand transforms for AWS to_s3 and to_redshift #1856 (adchia)
  • Add MVP support for on demand transforms for bigquery #1855 (adchia)
  • Add arrow support for on demand feature views #1853 (adchia)
  • Support adding request data in on demand transforms #1851 (adchia)
  • Support on demand feature views in feature services #1849 (achals)
  • Infer features for on demand feature views, support multiple output features #1845 (achals)
  • Add Registry and CLI operations for on demand feature views #1828 (achals)
  • Implementing initial on demand transforms for historical retrieval to_df #1824 (adchia)
  • Registry store plugin #1812 (DvirDukhan)
  • Enable entityless featureviews #1804 (codyjlin)
  • Initial scaffolding for on demand feature view #1803 (adchia)
  • Add s3 support (with custom endpoints) #1789 (woop)
  • Local feature server implementation (HTTP endpoint) #1780 (tsotnet)

🔴 Fixed bugs:

  • Array/list feature materialization in BQ crashes in type conversion #1839
  • Fixing odfv cli group description #1890 (adchia)
  • Fix list feature format for BigQuery offline datasources. #1889 (judahrand)
  • Add dill to main dependencies #1886 (judahrand)
  • Fix pytest_collection_modifyitems to select benchmark tests only #1874 (achals)
  • Add support for multiple entities in Redshift #1850 (felixwang9817)
  • Move apply(dummy_entity) to apply time to ensure it persists in FeatureStore #1848 (codyjlin)
  • Add schema parameter to RedshiftSource #1847 (felixwang9817)
  • Pass bigquery job object to get_job #1844 (LarsKlingen)
  • Simplify _python_value_to_proto_value by looking up values in a dict #1837 (achals)
  • Update historical retrieval integration test for on demand feature views #1836 (achals)
  • Fix flaky connection to redshift data API #1834 (achals)
  • Init registry during create_test_environment #1829 (achals)
  • Randomly generating new BQ dataset for offline_online_store_consistency test #1818 (adchia)
  • Ensure docstring tests always teardown #1817 (felixwang9817)
  • Use get_multi instead of get for datastore reads #1814 (achals)
  • Fix Redshift query for external tables #1810 (woop)
  • Use a random dataset and table name for simple_bq_source #1801 (achals)
  • Refactor Environment class and DataSourceCreator API, and use fixtures for datasets and data sources #1790 (achals)
  • Fix get_online_features telemetry to only log every 10000 times #1786 (felixwang9817)
  • Add a description field the Feature Service class and proto #1771 (achals)
  • Validate project name upon feast.apply #1766 (tedhtchang)

🔨 Merged pull requests:

  • Add ValueType.NULL #1893 (judahrand)
  • Adding more details to the CONTRIBUTING.md #1888 (adchia)
  • Parse BQ DATETIME and TIMESTAMP #1885 (judahrand)
  • Add durations to list the slowest tests #1881 (achals)
  • Upload benchmark information to S3 after integration test runs #1878 (achals)
  • Refactor providers to remove duplicate implementations #1876 (achals)
  • Add Felix & Danny to code owners file #1869 (tsotnet)
  • Initial docker image for aws lambda feature server #1866 (tsotnet)
  • Add flags file to include experimental flags and test/usage flags #1864 (adchia)
  • Hookup pytest-benchmark to online retreival #1858 (achals)
  • Add feature server docs & small changes in local server #1852 (tsotnet)
  • Add roadmap to README.md #1843 (woop)
  • Enable the types test to run on all compatible environments #1840 (adchia)
  • Update reviewers/approvers to include Danny/Felix #1833 (adchia)
  • Fix wrong links in README #1832 (baineng)
    ...
Read more

Feast v0.12.1

20 Aug 23:34
Compare
Choose a tag to compare

Fixed bugs:

Feast v0.12.0

06 Aug 04:58
Compare
Choose a tag to compare

Overview

Today we are releasing Feast 0.12, which includes 2 new major features:

  1. A new AWS provider which uses DynamoDB for the online store and Redshift for the offline store.
  2. A concept of FeatureService, that represents a logical group of features from one or more feature views.

👥 Contributors

Thanks to @achals, @adchia, @charliec443, @codyjlin, @DvirDukhan, @felixwang9817, @GregKuhlmann, @MattDelac, @mavysavydav, @Mwad22, @nels, @potatochip, @szalai1, @tedhtchang and @tsotnet for the contributions!

💥 Breaking changes:

  • Set default feature naming to not include feature view name. Add option to include feature view name in feature naming. #1641 (Mwad22)

✨ New Features:

  • AWS Template improvements (input prompt for configs, default to Redshift) #1731 (tsotnet)
  • Clean up uploaded entities in Redshift offline store #1730 (tsotnet)
  • Implement Redshift historical retrieval #1720 (tsotnet)
  • Add custom data sources #1713 (achals)
  • Added --skip-source-validation flag to feast apply #1702 (mavysavydav)
  • Allow specifying FeatureServices in FeatureStore methods #1691 (achals)
  • Implement materialization for RedshiftOfflineStore & RedshiftRetrievalJob #1680 (tsotnet)
  • Add FeatureService proto definition #1676 (achals)
  • Add RedshiftDataSource #1669 (tsotnet)
  • Add streaming sources to the FeatureView API #1664 (achals)
  • Add to_table() to RetrievalJob object #1663 (MattDelac)
  • Provide the user with more options for setting the to_bigquery config #1661 (codyjlin)

🔴 Fixed bugs:

  • Fix feast apply bugs #1754 (tsotnet)
  • Teardown integration tests resources for aws #1740 (achals)
  • Fix GCS version #1732 (potatochip)
  • Fix unit test warnings related to file_url #1726 (tedhtchang)
  • Refactor data source classes to fix import issues #1723 (achals)
  • Append ns time and random integer to redshift test tables #1716 (achals)
  • Add randomness to bigquery table name #1711 (felixwang9817)
  • Fix dry_run bug that was making to_bigquery hang indefinitely #1706 (codyjlin)
  • Stringify WhichOneof to make mypy happy #1705 (achals)
  • Update redis options parsing #1704 (DvirDukhan)
  • Cancel BigQuery job if block_until_done call times out or is interrupted #1699 (codyjlin)
  • Teardown infrastructure after integration tests #1697 (achals)
  • Fix unit tests that got broken by Pandas 1.3.0 release #1683 (tsotnet)
  • Remove default list from the FeatureView constructor #1679 (achals)
  • BQ exception should be raised first before we check the timedout #1675 (MattDelac)
  • Allow strings for online/offline store instead of dicts #1673 (achals)
  • Cancel BigQuery job if timeout hits #1672 (MattDelac)
  • Make sure FeatureViews with same name can not be applied at the same … #1651 (tedhtchang)

🔨 Merged pull requests:

Feast v0.11.0

24 Jun 05:30
Compare
Choose a tag to compare

Overview

Feast 0.11 is here! This is the first release after the major changes introduced in Feast 0.10. We’ve focused on two areas in particular:

  1. Introducing a new online store, Redis, which supports feature serving at high throughput and low latency.
  2. Improving the Feast user experience through reduced boilerplate, smoother workflows, and improved error messages. A key addition here is the introduction of feature inferencing, which allows Feast to dynamically discover data schemas in data sources.

👥 Contributors

Thanks to @MattDelac , @vtao2, @tsotnet, @woop, @achals, @tedhtchang, @qooba, @codyjlin, @jklegar, @rightx2, @kevinhu, @shihabuddinbuet, @jongillham and @szalai1 for the contributions!

✨ New Features:

🔴 Fixed bugs:

  • Schema Inferencing should happen at apply time #1646 (mavysavydav)
  • Don't use .result() in BigQueryOfflineStore, since it still leads to OOM #1642 (tsotnet)
  • Don't load entire bigquery query results in memory #1638 (tsotnet)
  • Remove file loader & its test #1632 (tsotnet)
  • Provide descriptive error on invalid table reference #1627 (codyjlin)
  • Fix ttl duration when ttl is None #1624 (MattDelac)
  • Fix race condition in historical e2e tests #1620 (woop)
  • Add validations when materializing from file sources #1615 (achals)
  • Add entity column validations when getting historical features from bigquery #1614 (achals)
  • Allow telemetry configuration to fail gracefully #1612 (achals)
  • Update type conversion from pandas to timestamp to support various the timestamp types #1603 (achals)
  • Add current directory in sys path for CLI commands that might depend on custom providers #1594 (MattDelac)
  • Fix contention issue #1582 (woop)
  • Ensure that only None types fail predicate #1580 (woop)
  • Don't create bigquery dataset if it already exists #1569 (tsotnet)
  • Don't lose materialization interval tracking when re-applying feature views #1559 (jklegar)
  • Validate project and repo names for apply and init commands #1558 (tedhtchang)
  • Bump supported Python version to 3.7 #1504 (tsotnet)

🔨 Merged pull requests:

  • Rename telemetry to usage #1660 (tsotnet)
  • Refactor OfflineStoreConfig classes into their owning modules #1657 (achals)
  • Run python unit tests in parallel #1652 (achals)
  • Refactor OnlineStoreConfig classes into owning modules #1649 (achals)
  • Fix table_refs in BigQuerySource definitions #1644 (tsotnet)
  • Make test historical retrieval longer #1630 (MattDelac)
  • Fix failing historical retrieval assertion #1622 (woop)
  • Add a specific error for missing columns during materialization #1619 (achals)
  • Use drop_duplicates() instead of groupby (about 1.5~2x faster) #1617 (rightx2)
  • Optimize historical retrieval with BigQuery offline store #1602 (MattDelac)
  • Use CONCAT() instead of ROW_NUMBER() #1601 (MattDelac)
  • Minor doc fix in the code snippet: Fix to reference the right instance for the retrieved job instance object #1599 (dmatrix)
  • Repo and project names should not start with an underscore #1597 (tedhtchang)
  • Append nanoseconds to dataset name in test_historical_retrival to prevent tests stomping over each other #1593 (achals)
  • Make start and end timestamps tz aware in the CLI #1590 (achals)
  • Bump fastavro version #1585 (kevinhu)
  • Change OfflineStore class description #1571 (tedhtchang)
  • Fix Sphinx documentation building #1563 (woop)
  • Add test coverage and remove MacOS integration tests #1562 (woop)
  • Improve GCP exception handling #1561 (woop)
  • Update default cli no option help message #1550 (tedhtchang)
  • Add opt-out exception logging telemetry #1535 (jklegar)
  • Add instruction for install Feast on IKS and OpenShift using Kustomize #1534 (tedhtchang)
  • BigQuery type to Feast type conversion chart update #1530 (mavysavydav)
  • remove unnecessay path join in setup.py #1529 (shihabuddinbuet)
  • Add roadmap to documentation #1528 (woop)
  • Add test matrix for different Python versions #1526 (woop)
  • Update broken urls in the github pr template file #1521 (tedhtchang)
  • Add a fixed timestamp to quickstart data #1513 (jklegar)
  • Make gcp imports optional #1512 (jklegar)
  • Fix documentation inconsistency #1510 (jongillham)
  • Upgrade grpcio version in python SDK #1508 (szalai1)
  • pre-commit co...
Read more

Feast v0.10.8

17 Jun 02:17
Compare
Choose a tag to compare

Implemented enhancements:

  • Add to_bigquery() function to BigQueryRetrievalJob #1634 (vtao2)

Fixed bugs:

  • Don't use .result() in BigQueryOfflineStore, since it still leads to OOM #1642 (tsotnet)
  • Don't load entire bigquery query results in memory #1638 (tsotnet)
  • Add entity column validations when getting historical features from bigquery #1614 (achals)

Merged pull requests:

  • Make test historical retrieval longer #1630 (MattDelac)
  • Fix failing historical retrieval assertion #1622 (woop)
  • Optimize historical retrieval with BigQuery offline store #1602 (MattDelac)