# dbt Cloud

These instructions will help you set up the integration to sync metadata **from** dbt Cloud **to** Rasgo. If you're just wondering what will be sync'd from dbt Cloud, [scroll down](#5.-rasgo-automatically-ingests-your-dbt-metadata-every-night) to the bottom of this page.

## 1. Setup a dbt Cloud job

Setup a new job in dbt Cloud to compile the SQL and docs for all dbt models in your project.

{% hint style="info" %}
The dbt cloud job does not need to run the models, just compile the SQL.
{% endhint %}

When setting up the new job:

* Choose your `Production` environment
* Check the box for `Generate Docs`
* In **Commands**, add this command: `dbt compile --full-refresh`
* In **Triggers -> Schedule**, Choose to run on schedule, and have it run every day at exactly hour 8 (which is midnight PST; 3 AM EST)
* Click **Save**
* All done! You've made a new job

## 2. Run your new job

This job needs to run and generate metadata before Rasgo can import it. To run the job, click the green `Run Now` button, and wait until it completes and shows a green `Success` status for the run.

## 3. Copy your Service Token, account ID, and job ID

To set up the integration in Rasgo, you'll need 3 things:

1. **Read-Only** service token for dbt Cloud
2. dbt Cloud account ID
3. dbt Cloud job ID

To generate the service token, go to your 'Account Settings' page in dbt Cloud and click 'Service Tokens' in the left side nav. Click 'New Token' and for the Permission Set, choose 'Read-Only'.

<figure><img src="https://1589116401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJDKltt3A57jhixTfmu%2Fuploads%2FThkUVJ1RlQOjhOYQ3xOj%2FScreen%20Shot%202022-12-12%20at%201.49.46%20PM.png?alt=media&#x26;token=ab1cf14b-24c3-41ba-ab55-d0aebb07e148" alt=""><figcaption><p>Create a new Read-Only Service Token in dbt Cloud</p></figcaption></figure>

Click 'Save' and then make sure to copy the Service Token to your clipboard, because you won't be able to see it again.

Next, to get the IDs, you can pull them directly out of the URL. The URL will be structured like this:

```
https://cloud.getdbt.com/next/deploy/{{account_id}}/projects/{{project_id}}/jobs/{{job_id}}
```

Just save those two numbers, the `account_id` and `job_id`, for later and you're ready to go.

## 4. Add the integration in Rasgo

* Log into Rasgo and navigate to the account management screen: <https://app.rasgoml.com/profile>
* Find the dbt Connect section at the bottom
* Paste in the Service Token, account ID, and job ID

![](https://1589116401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJDKltt3A57jhixTfmu%2Fuploads%2FpOU0QWSjPShGmpWoU3fF%2FScreen%20Shot%202022-12-07%20at%2012.39.58%20PM.png?alt=media\&token=6c50c3b6-da98-46ea-9faa-628d2743b184)

* Click "Connect"

## 5. Import your data into Rasgo

The integration is set up and good to go! Now, you can import your dbt models into Rasgo by clicking the "Import Now" button.

<div align="left"><figure><img src="https://1589116401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJDKltt3A57jhixTfmu%2Fuploads%2FitGYHDa6wqOHRoBrV9ZG%2FScreenshot%202023-06-06%20at%208.28.46%20AM.png?alt=media&#x26;token=b5d61989-e5d3-4fc3-a226-5bd43bb8e4d4" alt="" width="375"><figcaption></figcaption></figure></div>

Click this button each time you wish to import or sync your models with Rasgo. By default, Rasgo will detect if a new dbt run has occurred since the last time you synced, and only run an import if it has.

{% hint style="info" %}
If you need your dbt import to run on a recurring schedule, contact Rasgo support to discuss configuration options
{% endhint %}

**Rasgo only imports metadata from dbt manifest files, it does not move actual data out of your cloud DataWarehouse or edit your dbt project.**

Here is the metadata that Rasgo will ingest from dbt Cloud:

* dbt models -> Rasgo datasets
  * Description
  * Lineage
  * Columns
    * Column descriptions
  * SQL
* dbt metrics -> Rasgo metrics
  * Metric definition
