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_time
is now a required parameterbatch_trigger_type
is 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 apply
in 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=True
or 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.