Creating your Paradime schedules file in your repository
Coming from dbt Cloud™️? Import all your dbt™️ jobs with one click. See our doc here.
Paradime offers two distinct methods for running dbt™️ schedules in production:
UI-Based Schedules:Create, edit, and update your dbt™️ schedules within the user interface. All the configurations available in the YAML-based schedule are available in the UI.
YAML-Based Schedules: Create, edit, and update your dbt™️ schedules in the paradime_schedules.yml file, which is located in your Git repository.
Cron schedules are always based on UTC.
UI-Based Schedules
To create a UI-Based schedule, go to Bolt on the home screen and click + New Schedule.
Afterwards, fill out the various fields to complete your first schedule.
For additional details, watch the demo, and read more about the available fields.
UI-Based Schedule Fields
Fields
Description
Example
Required?
Type
The execution type for your scheduled dbt™ run: Standard, deferred, or Turbo CI.
Standard
The specific name to identify your dbt™ schedule
hourly_schedule
Commands
Specify which dbt™ commands this job should execute. You can execute multiple commands in a sequence.
dbt run and/or
dbt test
Git Branch
Specify a branch name from your repo other than your default branch.
main
Owner Email
Specify a job owner of the schedule
me@email.com
Cron Schedule
You can use "cron" syntax to specify how often you'd like the job to run. Check alsocrontab.guru.You can also set this to OFF if you want a schedule to be triggered only manually from the UI.
@hourly
Slack Notify On
Configure when you want a notification to be sent to Slack based on the status of the run when completed (Passed or failed).
failed and/or passed
Slack Channels and Users
Choose the specific slack channels and users to receive the alert. This is dependent on "Slack Notify On".
#data-team-alerts
Emily Notify On
Configure when you want a notification to be sent via email based on the status of the run when completed (Passed or failed).
failed and/or passed
Email Notify
Choose the email addresses to receive the alert. This is dependent on "Email Notify On".
example@emali.com
YAML-Based Schedules
Paradime scheduler will always use the configurations in your paradime_schedules.yml from your git repo default branch (Usually this is referred as the Main branch).
Make sure that the version of the file with up to date configurations is always merged into your remote default branch.
This file is used to define your Bolt jobs specifications to run dbt™️ on a schedules. Make sure that this file sits in you dbt™️ project root level, this is usually in the same directory where your dbt_project.yml sits.
Bolt updates this list every 10 minutes when the Paradime scheduler parses the paradime_schedules.yml as per your origin/default branch.
YAML-based schedule Parameters
Parameters
Description
Example
name
This is the name to identify your job schedules.
weekly_run
schedule
This is to configure when a job should run. You can use "cron" syntax to specify when you'd like the job to run. Check alsocrontab.guru.You can also set this to OFF if you want a schedule to be triggered only manually from the UI.
@weekly
environment
This is to choose the environment to use when running your models. Only production is allowed.
production
commands
This is to specify which dbt™ commands this job should execute. You can execute multiple commands in a sequence.
dbt run or dbt test
git_branch
This field is optional and can be used to specify a branch name from your repo other than your default branch. If not required simply don't include this parameter in your configuration.
main-finance
owner_email
This is to specify a job owner email to each configured paradime schedule. If not required simply don't include this parameter in your configuration.
john@acme.io
slack_on
This is to configure when you want a notification to be sent to Slack based on the status of the run when completed. This requires that the Paradime Slack App is connected to your Slack workspace.
failed and/or passed
slack_notify
This is to configure who you want to be notified in Slack when a run is completed. This requires that the Paradime Slack App is connected to your Slack workspace and the slack_on configuration must be defined for the schedule run.
#data-team-alerts
email_on
This is to configure when you want a notification to be sent via email based on the status of the run when completed.
failed and/or passed
email_notify
This is to configure who you want to be notified when a run is completed.
john@acme.com
Example paradime_schedules.yml configuration
The below parameters are used to configure each individual schedule in paradime.
paradime_schedules.yml
schedules: - name:operations_run#the name of your scheduleschedule:"*/10 * * * *"#the schedule cron configuration or use "OFF" if you want to disable the scheduleenvironment:production#the environment used to run the schedule -> this is always productioncommands:#the set of dbt commands you want to run in the schedule - dbt seed - dbt run - dbt testowner_email:"john@acme.io"#the owner email slack_on: #the configuration of when a notification is triggered. Here we want to send a notification when the run is completed either successfully or when failing
- passed - failedslack_notify:#the channel/user that will be notified - "#data-alerts" - "@john"email_notify:#the email addresses that will be notified - "john@acme.com" - "data_team@acme.com" email_on: #the configuration of when a notification is triggered. Here we want to send a notification when the run is completed either successfully or when failing
- passed - failed
Using the terminal make sure to navigate into your dbt™️ project directory, where you paradime_schedules.yml sits before running any of the available commands.
Paradime schedules terminal commands
Validate the correct file format
paradimescheduleverify
This command parses the paradime_schedules.yml and checks for any formatting error of your schedule file. It will output in the terminal whether the formatting is correct or if there are any errors in the terminal.
Run your schedule locally
This command runs all your defined schedules in the paradime_schedules.yml file based on your local context (ie. based on your development environment and your current branch).
paradimeschedulerun
You can also run this command in your terminal for only a selected schedule by adding your schedule name.
paradimeschedulerunhourly
Dry run
This command simulates the execution of a schedule without running any dbt™️ models against your database.
paradime schedule run --dry-run daily
Similarly to the paradime schedule run, this command supports a schedule selector to run the command for a specific schedule name. See the below example:
paradime schedule run --dry-run
📹️ See also our tutorial on creating your first schedule in paradime.