Runtime Variables
Learn how to use Runtime & Environment Variables with Sling
Runtime Variables
A powerful feature that allows dynamic configuration. The used parts will be replaced at runtime with the corresponding values. So you could name your target object {target_schema}.{stream_schema}_{stream_table}
, and at runtime it will be formatted correctly as depicted below.
run_timestamp
: The run timestamp of the task (2006_01_02_150405
)source_account
: the name of the account of the source connection (when source conn is AZURE)source_bucket
: the name of the bucket of the source connection (when source conn is GCS or S3)source_container
: the name of the container of the source connection (when source conn is AZURE)source_name
: the name of the source connectionstream_file_folder
: the file parent folder name of the stream (when source is a file system)stream_file_name
: the file name of the stream (when source is a file system)stream_file_ext
: the file extension of the stream (when source is a file system)stream_file_path
: the file path of the stream (when source is a file system)stream_name
: the name of the streamstream_schema
/stream_schema_lower
/stream_schema_upper
: the schema name of the source stream (when source is a database)stream_table
/stream_table_lower
/stream_table_upper
: the table name of the source stream (when source is a database)stream_full_name
: the full qualified table name of the source stream (when source is a database)target_account
: the name of the account of the target connection (when target is AZURE)target_bucket
: the name of the bucket of the target connection (when target is GCS or S3)target_container
: the name of the container of the target connection (when target is AZURE)target_name
: the name of the target connectiontarget_schema
: the default target schema defined in connection (when target is a database)object_schema
: the target object table schema (when target is a database)object_table
: the target object table name (when target is a database)object_full_name
: the target object full qualified table name (when target is a database)object_name
: the target object name
Timestamp Patterns
YYYY
: The 4 digit year of the run timestamp of the taskYY
: The 2 digit year of the run timestamp of the taskMMM
: The abbreviation of the month of the run timestamp of the taskMM
: The 2 digit month of the run timestamp of the taskDD
: The 2 digit day of the run timestamp of the taskHH
: The 2 digit 24-hour of the run timestamp of the taskhh
: The 2 digit 12-hour of the run timestamp of the taskmm
: The 2 digit minute of the run timestamp of the taskss
: The 2 digit second of the run timestamp of the taskISO8601
: The ISO-8601 format of the run timestamp of the task (2006-01-02T15:04:05Z
)
Partition Patterns
This only applies when writing parquet files. You must specified the update_key
along with a part_
variable in the object_name
, for example: object: my/folder/{part_year_month}/{part_day}
.
part_year
: The 4 digit year partition value of theupdate_key
.part_month
: The 2 digit month partition value of theupdate_key
.part_year_month
: Combination of the 4 digit year and the 2 digit month partition values of theupdate_key
(e.g.2024-11
as one value).part_day
: The 2 digit day partition value of theupdate_key
.part_week
: The ISO-8601 2 digit week partition value of theupdate_key
.part_hour
: The 2 digit hour partition value of theupdate_key
.part_minute
: The 2 digit minute partition value of theupdate_key
.
Environment Variables
Sling also allows you to pass-in environment variables in order to further customize configurations in a scalable manner. We are then able to reuse them in various places in our config files.
Definition
A convenient way to embed global variables is in the env.yaml
file. You could also simply define it in the environment, the traditional way.
Replication
Global Environment Variables
Last updated