Skip to main content
Version: 0.4

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 parameter
  • batch_trigger_type is now an optional parameter (it is automatically set to BatchTriggerType.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 ParameterReplacement
FeatureView.max_batch_aggregation_intervalFeatureView.max_backfill_interval

Parameters that were previously deprecated and are officially removed in 0.7

Removed ParameterReplacement
FeatureView.aggregation_modeFeatureView.stream_processing_mode (Notes)

Properties & methods that were previously deprecated and are officially removed in 0.7

Removed Property or MethodReplacement
DataSource.is_streamingisinstance(fv, StreamSource)
FeatureView.max_data_delayFeatureView.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 version 0.6.x, and then later attempts to retrieve it in a notebook, Tecton will check that the notebook is running Tecton 0.6.x+.
  • This check can be bypassed by setting the environment variable SKIP_OBJECT_VERSION_CHECK=True or by running tecton.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.

Was this page helpful?

Happy React is loading...