Install
conn_id. See the Airflow operator reference for connection setup.
ParadimeBoltDbtScheduleRunOperator identifies the schedule with either slug (stable) or schedule_name, and also accepts commands, branch, and retry_from_failure.Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Trigger Paradime Bolt schedules from Apache Airflow DAGs using the Paradime dbt provider, wait for runs to finish, and download dbt run artifacts.
pip install airflow-provider-paradime-dbt
conn_id. See the Airflow operator reference for connection setup.
ParadimeBoltDbtScheduleRunOperator identifies the schedule with either slug (stable) or schedule_name, and also accepts commands, branch, and retry_from_failure.from airflow.decorators import dag # type: ignore[import]
from paradime_dbt_provider.operators.paradime import ParadimeBoltDbtScheduleRunArtifactOperator, ParadimeBoltDbtScheduleRunOperator
from paradime_dbt_provider.sensors.paradime import ParadimeBoltDbtScheduleRunSensor
PARADIME_CONN_ID = "your_paradime_conn_id" # Update this to your connection id
BOLT_SCHEDULE_SLUG = "your_schedule_slug" # Update this to your schedule slug
@dag(
default_args={"conn_id": PARADIME_CONN_ID},
)
def run_schedule_and_download_manifest():
# Run the schedule and return the run id as the xcom return value
task_run_schedule = ParadimeBoltDbtScheduleRunOperator(task_id="run_schedule", slug=BOLT_SCHEDULE_SLUG)
# Get the run id from the xcom return value
run_id = "{{ task_instance.xcom_pull(task_ids='run_schedule') }}"
# Wait for the schedule to complete before continuing
task_wait_for_schedule = ParadimeBoltDbtScheduleRunSensor(task_id="wait_for_schedule", run_id=run_id)
# Download the manifest.json file from the schedule run and return the path as the xcom return value
task_download_manifest = ParadimeBoltDbtScheduleRunArtifactOperator(task_id="download_manifest", run_id=run_id, artifact_path="target/manifest.json")
# Get the path to the manifest.json file from the xcom return value
output_path = "{{ task_instance.xcom_pull(task_ids='download_manifest') }}"
task_run_schedule >> task_wait_for_schedule >> task_download_manifest
run_schedule_and_download_manifest()
from airflow.decorators import dag # type: ignore[import]
from paradime_dbt_provider.operators.paradime import ParadimeBoltDbtScheduleRunArtifactOperator, ParadimeBoltDbtScheduleRunOperator
from paradime_dbt_provider.sensors.paradime import ParadimeBoltDbtScheduleRunSensor
PARADIME_CONN_ID = "your_paradime_conn_id" # Update this to your connection id
BOLT_SCHEDULE_SLUG = "your_schedule_slug" # Update this to your schedule slug
@dag(
default_args={"conn_id": PARADIME_CONN_ID},
)
def run_schedule_with_custom_commands():
# Define the custom commands to run
custom_commands = ["dbt run", "dbt test"]
# Run the schedule with custom commands and return the run id as the xcom return value
task_run_schedule = ParadimeBoltDbtScheduleRunOperator(task_id="run_schedule", slug=BOLT_SCHEDULE_SLUG, commands=custom_commands)
# Get the run id from the xcom return value
run_id = "{{ task_instance.xcom_pull(task_ids='run_schedule') }}"
# Wait for the schedule to complete before continuing
task_wait_for_schedule = ParadimeBoltDbtScheduleRunSensor(task_id="wait_for_schedule", run_id=run_id)
# Download the manifest.json file from the schedule run and return the path as the xcom return value
task_download_manifest = ParadimeBoltDbtScheduleRunArtifactOperator(task_id="download_manifest", run_id=run_id, artifact_path="target/manifest.json")
# Get the path to the manifest.json file from the xcom return value
output_path = "{{ task_instance.xcom_pull(task_ids='download_manifest') }}"
task_run_schedule >> task_wait_for_schedule >> task_download_manifest
run_schedule_with_custom_commands()
Related topics
External TriggersTrigger Bolt externally