Skip to main content

An extension for the dbt CLI that allows deploying and running jobs remotely

Project description

dbtr

Run and schedule dbt jobs on a self hosted dbt remote server.

Dbtr is an for the dbt CLI that adds the remote subcommand. It lets you deploy a cloud server where you can schedule and execute dbt jobs.

This is a low-cost and practical alternative to dbt Cloud.

Features

  • Deploy a dbt server in one command locally, on GCP, or Azure. (AWS coming soon)
  • Run dbt commands on a remote server rather than your machine
  • Schedule dbt jobs
  • Explore run logs, scheduled jobs, dbt docs, and Elementary reports in a web UI

Installation

Install dbtr with the right extras depending on where your server is (or will be):

pip install 'dbtr[local]'

Available extras:

  • local
  • google
  • azure

Usage

The dbtr CLI is a drop-in replacement for dbt so you can just use it exactly as you would have otherwise (dbt docs):

dbtr debug

[...]

All checks passed!

Use the remote subcommand to deploy a dbt server locally:

dbtr remote deploy --cloud-provider local

[...]

Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)

You can now submit jobs to the server rather than executing them locally:

dbtr remote debug --cloud-provider local --server-url http://localhost:8080

To see the full list of available commands that you can run remotely:

dbtr remote --help

Moving to the cloud

For GCP, this will deploy the server on a Cloud Run instance:

dbtr remote deploy google

Other available options for deployment are local, azure, and soon, aws.

You can now run jobs on this instance:

dbtr remote debug --cloud-provider google --server-url https://my-dbt-server-abcdefghij-ew.a.run.app

Scheduling jobs

If you want to schedule a dbt build every morning at 8 UTC:

dbtr remote build --cloud-provider google --server-url https://my-dbt-server-abcdefghij-ew.a.run.app --schedule-cron '0 8 * * *'

You can also schedule from a configuration file (schedules.yaml):

job-1:
   command: dbtr remote build --server-url https://my-dbt-server-abcdefghij-ew.a.run.app --cloud-provider google
   schedule_cron: "0 8 * * 1"
   description: "Build all the models every Monday at 8 UTC"

job-2:
   command: dbtr remote build --select +customers+ --server-url https://my-dbt-server-abcdefghij-ew.a.run.app --cloud-provider google
   schedule_cron: "0 6 * * *"
   description: "Build all the customer models at 6 UTC"

Then deploy the schedules:

dbtr remote schedule set --schedule-file schedules.yaml --server-url https://my-dbt-server-abcdefghij-ew.a.run.app --cloud-provider google

Frontend

Dbtr comes with a UI where you can take a look at logs, schedules, docs, etc...

dbtr remote frontend --server-url https://my-dbt-server-abcdefghij-ew.a.run.app  --cloud-provider google

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dbtr_lt-0.3.5.tar.gz (37.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dbtr_lt-0.3.5-py3-none-any.whl (51.2 kB view details)

Uploaded Python 3

File details

Details for the file dbtr_lt-0.3.5.tar.gz.

File metadata

  • Download URL: dbtr_lt-0.3.5.tar.gz
  • Upload date:
  • Size: 37.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.13.5 Darwin/24.5.0

File hashes

Hashes for dbtr_lt-0.3.5.tar.gz
Algorithm Hash digest
SHA256 da99ee0732d13ea241c19525cabe4872f1e474d29ab4ed3614a68dd28ca91767
MD5 c232ddebbacf2f162ceb99394d80f59b
BLAKE2b-256 118575e57c23d70d46717d9ae91cb276135417f68b8268f14f97798840eee21a

See more details on using hashes here.

File details

Details for the file dbtr_lt-0.3.5-py3-none-any.whl.

File metadata

  • Download URL: dbtr_lt-0.3.5-py3-none-any.whl
  • Upload date:
  • Size: 51.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.13.5 Darwin/24.5.0

File hashes

Hashes for dbtr_lt-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 0164300bbf0833944913f0a0c89ed37bcb5cd5159e748c5d18a68dafa0bc3ca5
MD5 0f91c4c64f5a17a684e1ee7f3ae406e8
BLAKE2b-256 5f719bcc08418ba68742ab349ff78c7017191135532ebbd27789f8765b852b8c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page