Schedule parameterization is in the beta phase of development and may not be available on your enrollment. The feature is currently only available for Python transforms, and functionality may change during active development.
Parameterization allows transform logic to run with different parameter values.
To use parameterization, you must first define the parameters in your transform logic and verify that your repository meets the following version requirements:
transformsVersion must be 10.96.0 or later.transformsLangPythonPluginVersion must be 1.1137.0 or later.If it does not, follow the repository upgrade guide to ensure your repository meets the version requirements above.
Each parameter has a name, type, and default value.
The following example Python transform has two parameters named town_name and risk_factor with default values of "Seattle" and 5.
Copied!1 2 3 4 5 6 7 8 9 10 11@transform.using( processed_towns=Output('/path/to/output_towns'), towns=Input('/path/to/input_towns'), town_name=StringParam("Seattle"), risk_factor=IntegerParam(5), ) def compute(processed_towns, towns, town_name, risk_factor): ... selected_town_name = town_name.value selected_risk_factor = risk_factor.value ...
Once you have your transform logic in place, create a new schedule in Data Lineage, and enable the Parameterization option. The parameters defined on your target datasets' transforms will be available here.

In standard mode, you provide the parameter values on the schedule, and these values are passed to your transforms when the schedule runs.
To use the default value defined on the transform for a parameter, hide that parameter in the schedule.
The following example shows the risk_factor parameter hidden, and the town_name set to "New York" for this schedule.

Suppose you have an incremental pipeline where you need to run hourly incremental builds, but also run a daily non-incremental build that performs data compaction. You can achieve this using a parameterized schedule by following the steps below:
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13@incremental() @transform.using( processed_towns=Output('/path/to/output_towns'), towns=Input('/path/to/input_towns'), is_compaction_job=BooleanParam(False), ) def compute(processed_towns, towns, is_compaction_job): towns_df = towns.polars() if is_compaction_job.value: processed_towns.set_mode("replace") processed_towns.write_table(towns_df)

is_compaction_job to true.
These schedules allow you to run hourly incremental builds and daily non-incremental builds while keeping the same transform logic deployed.
Parallelized mode allows you to create a schedule that can run independent parallel builds with different parameter values and aggregate their results.
In parallelized mode, parameter values are not directly provided on the schedule. Instead, they are defined by run setups of the schedule.
A run setup is a set of parameter values, including a unique value for the special run setup key parameter. When you create a parallelized schedule, you designate one of the parameters as the run setup key, which is used to identify that run setup.
You can build run setups independently in parallel without waiting for other run setups to finish building. Foundry stores the output data of each successful build in the configured union view outputs.
To manage the run setups of a schedule, select Metrics & History on an existing parallelized schedule, and navigate to the Run setups tab.

To create a new run setup:
To build an existing run setup:
If the build succeeds, the rows will be available in the configured union view outputs.
To change the parameter values of an existing run setup:
The next time the run setup is built, it uses the updated parameter values. The old rows from the previous builds will remain in the configured union view outputs until the deployment is rebuilt.
To remove a run setup along with the rows it contributed to the union view outputs:
When a run setup is deleted, its corresponding rows are removed from the configured union view outputs.
When the build of a parallel run setup succeeds, the contents of the output datasets will not be updated on the main schedule branch. Instead, the contents of the rows are collected inside an output union view that you configure on the schedule.
You can configure the union outputs while creating or editing the schedule. For each target dataset in the schedule, you can select a union view that will be used to store the resulting rows.

Parallelized schedules are most useful when the run setups are built by an action type. Learn more about creating an action type that runs a schedule.
When you run a parallelized schedule through an action, Foundry automatically creates a new run setup with the parameter values provided by the action and invokes a build right away.
If there is already an existing run setup with the same value for the run setup key, then the parameter values are updated for this run setup before the build is invoked.
The following limitations apply to all parameterized schedules:
The following additional limitations apply to parallelized mode schedules: