New Features
Python Mode for On-Demand Feature Views
On-demand Feature Views can now be used with mode=python
transformations.
Compared to the existing mode=pandas
option, On Demand Feature Views with
mode=python
will deliver significantly faster request-time latency.
When implementing a transformation with mode=python
, the inputs and outputs
will be Python dictionaries instead of DataFrames. Removing the overhead of
creating DataFrames allows for faster request-time execution. See an
implementation example in the
documentation.
We recommend using python instead of pandas in most cases.
Delete keys from a Feature View
Previously, the only way to delete feature data was to remove the entire feature
view. The new delete_keys()
method for Feature Views makes it simple to delete
feature values for specific keys from a materialized Feature View. This
capability can be helpful for handling user data deletion requests or cleaning
up erroneous data.
See a usage example in the key deletion guide.
New unit testing framework for Feature Views
Previously, unit testing with Tecton required implementing your own test harness using "plan hooks". The new framework makes it much simpler to get started unit testing feature views, especially for Spark transformations.
When running tecton plan
, tecton apply
, or tecton test
, the Tecton CLI
will use pytest
to execute any files matching matching the
pattern **/tests/*.py
.
See the unit testing guide for an example.
Improvements and Bug Fixes
Adds supports for Python 3.9 and Mac M1 native builds See the Tecton CLI setup
Improved support for release automation with tecton apply
- Protect critical objects from accidental deletion with the
prevent_destroy
tag apply
a previously validatedplan
output based on the plan idtecton restore
now shows the SDK version for that apply
See the CI/CD integration guide for more detail.
Warnings during tecton plan
Warnings will now be shown for each object modified or created during
tecton plan
. These warnings help promote best practices in your feature repo,
but do not block applying the changes.
Fixed data input filtering for aggregateFeatureView.run()
Prior to the fix, aggregate Feature Views run()
filter inputs down to
feature_start_time and feature_end_time window. This may result in inaccurately
output because the aggregation feature result may require input data from before
feature_start_time to perform a correct computation. The fix read just the input
filter to use the correct filter window relative to aggregation window size.