0.6 to 0.7 Upgrade Guide
Overview
Version 0.7 of the SDK comes with new capabilities to define more powerful features, ingest data into Tecton from existing streaming feature pipelines, and much more. Along with these new features, it includes minor changes to the behavior and naming of some Tecton objects, methods, and CLI commands.
Read the general Upgrade Process page in addition
to the following documentation for guidance on how to safely upgrade from
version 0.6 to 0.7. These changes will not require re-materialization of Feature
Views unless noted otherwise on this page or while using tecton plan /
tecton apply.
SDK Interfaces with modified behavior in 0.7
ttl
Prior to 0.7, ttl was a required parameter. In 0.7, ttl can be left
undefined or set to None — this means that 1) the Feature View’s data will
not expire from the online store and 2) when generating offline training
datasets from the Feature View, the window to "look back" relative to each
training example's timestamp will begin at the feature start time.
Note: Customers who had previously configured Feature Views with an
arbitrary long ttl (e.g. 10 years) can remove ttl or set it to None. When
making and applying this change in your workspace, use the
--suppress-recreates flag to prevent re-materialization.
Stream Feature Views using Tecton's new Stream Ingest API
For StreamFeatureViews that use a PushSource and batch_config:
manual_trigger_backfill_end_timeis now a required parameterbatch_trigger_typeis now an optional parameter (it is automatically set toBatchTriggerType.MANUAL)
Previously, customers using the Stream Ingest API with a Stream Feature View
backed by a BatchSource had to manually trigger a job to backfill data from
the Data Source into Tecton's Online Store. Version 0.7 introduces a new
parameter, manual_trigger_backfill_end_time, which configures Feature Views
set to BatchTriggerType.MANUAL to be automatically backfilled until the
specified time. With the introduction of this parameter, customers no longer
need to manually kick off a backfill when configuring a Stream Feature View to
use the Stream Ingest API and a Batch Data Source.
Potential breaking changes to unit tests
Bug fix and changes to run() and test_run()
In 0.7, the methods run() and test_run() will not filter output feature
values based on feature_start_time.
Note: This is a fix for a 0.6 issue that caused test_run() to filter
feature values based on feature_start_time for some Feature Views with
aggregations. We introduced the fix in 0.7 instead of backporting it to 0.6 to
prevent breaking customer unit tests.
Spark timezone in testing environment
Tecton’s Pytest setup (which is run using the tecton test command) now sets
the local Spark session’s timezone (spark.sql.session.timeZone) to UTC by
default. This may impact the output of test_run() in some cases where users
were relying on the default Spark timezone (which is typically the system
timezone).
Changes to Tecton on Snowflake
get_historical_features() behavior
In 0.7, the .get_historical_features() method is now updated to use a more
accurate feature timestamp. For more details, see details on
this page
about _effective_timestamp.
Validation of timestamp_field
In 0.7, Tecton now validates the timestamp parameter of Data Sources during
tecton plan/apply to ensure correct behavior. If the timestamp_field
parameter is specified on a Snowflake data source, we assert that the column
exists and that it is of type TIMESTAMP_NTZ or TIMESTAMP_TZ.
SDK Interfaces that are deprecated or removed in 0.7
Parameters that are deprecated in 0.7 and will be removed in the future
| Deprecated Parameter | Replacement |
|---|---|
FeatureView.max_batch_aggregation_interval | FeatureView.max_backfill_interval |
Parameters that were previously deprecated and are officially removed in 0.7
| Removed Parameter | Replacement |
|---|---|
FeatureView.aggregation_mode | FeatureView.stream_processing_mode (Notes) |
Properties & methods that were previously deprecated and are officially removed in 0.7
| Removed Property or Method | Replacement |
|---|---|
DataSource.is_streaming | isinstance(fv, StreamSource) |
FeatureView.max_data_delay | FeatureView.max_source_data_delay |
TectonDataFrame.to_snowflake() | TectonDataFrame.to_snowpark() |
tecton.cli.common.get_current_workspace() | tecton.get_current_workspace() |
Additional SDK Changes
Version validation during interactive feature development
To ensure correct behavior when a user is interacting with Tecton objects across multiple Python environments (e.g. with the Notebook Development workflow), Tecton will now validate that the notebook environment uses a SDK version equal to or greater than the SDK version with which the object was applied.
- For example, if a user creates a Feature View and runs
tecton applyin their Feature Repository using version0.6.x, and then later attempts to retrieve it in a notebook, Tecton will check that the notebook is running Tecton0.6.x+. - This check can be bypassed by setting the environment variable
SKIP_OBJECT_VERSION_CHECK=Trueor by runningtecton.conf.set('SKIP_OBJECT_VERSION_CHECK', True).
Using Databricks Unity Catalog Data Sources
0.7 allows Databricks customers to connect to Unity Catalog data sources using
the new UnityConfig configuration option. Customers interested in using this
new config option should contact Tecton support, as the internal cluster should
be upgraded to DBR 11.3+.
CLI Changes
Removal of api-key commands
api-key create, api-key delete, api-key list were previously deprecated
and are officially removed in 0.7. Use tecton service-account --help instead
to create and manage API keys.
Deprecation of --safety-checks and --no-safety-checks
--safety-checks / --no-safety-checks are deprecated in 0.7 and will be removed
in a future SDK release. In 0.7, users should use the --yes or -y flag to
disable interactive safety checks when running apply, destroy, plan, and
upgrade commands.