dbt Core

Euno's dbt Core integration supports auto-discovery of dbt resources. It automates processing of dbt uploaded artifacts from completed runs. This allows for seamless data synchronization and analysis using the latest available dbt job runs.

How It Works

The integration follows these steps:

  1. Outputs a url for uploading dbt artifacts The following artifacts can then be uploaded to Euno's endpoint:

    • run_results.json

    • manifest.json

    • semantic_manifest.json

    • catalog.json

  2. Process the Artifacts

    • The integration processes the uploaded artifacts to extract relevant information and adds the discovered resources to Euno's data model.

Setting up Euno's dbt Core Integration

Step 1: Access the Sources Page

  1. Navigate to the Sources page in the Euno application.

  2. Click on the Add New Source button.

Step 2: General Configuration

  1. Name: Enter a name for your dbt Core source (e.g., "dbt - Marketing Models").

  2. Configuration Details:

    1. Build target: The default build target to use when observing dbt resources. Consult the table below depending on the warehouse technology your dbt is run against.

Snowflake

The build target should follow the pattern: <account_id>.<region>.<cloud provide>.snowflakecomputing.com

For example:

  • foo-1234.us-east-1.aws.snowflakecomputing.com

  • bar-5678.us-west-2.gcp.snowflakecomputing.com

Trino

The build target should follow the pattern trino.<region>.<gcloud provider>

For example:

  • trino.us-west-2.aws

  • trino.us-east-2.gcp

Databricks

The build target should be the hostname of the databrick workspace

For example:

  • 4200747832468935.5.gcp.databricks.com

  • dbc-50e7cad0-c2f9.cloud.databricks.com

  • adb-5555555555555555.19.azuredatabricks.net

Bigquery

The build target should just say bigquery

Step 3: Resource Cleanup Options

To keep your data relevant and free of outdated resources, Euno provides automatic resource cleanup options. These settings determine when a resource should be removed if it is no longer detected by a source integration. For a detailed explanation see: Resource Sponsorship in Euno.

  • Time-Based Cleanup (default): Remove resources that were last detected X days before the most recent successful source integration run (user-defined X, default is 7 days).

  • Immediate Cleanup: Remove resources not detected in the most recent successful source integration run.

  • No Cleanup: Keep all resources indefinitely, even if they are no longer detected.

Step 4: Advanced Settings (Optional)

Click on the 'Advanced' section to display these additional configurations.

Configuration
Description

Allow Processing Builds with a Partial Catalog

By default, Euno only observes dbt resources (e.g., models, sources, snapshots, and seeds) that have a corresponding entry in the catalog.json file. Checking this box will expand the scope to include all resources listed in the manifest.json file, even if they do not appear in the catalog.json file.

Note: Resources without a matching entry in the catalog.json file will not have schema information available, as this data is exclusively pulled from the catalog. By default, the integration processes only builds with a complete, error-free catalog.json.

Source Repository URL

The URL of the git repository where the dbt project is stored

Source Repository branch

The branch of the git repository where the dbt project is stored

Relative directory of the dbt project

Subdirectory within the git repository where the dbt project is stored

Mapping

Euno will ingest dbt resources to the database and schema stated in the manifest file, unless a database.schema mapping is added. In that case, the resource will be ingested to the database and schema stated in the value of the target. example: source: analytics_v2, target: analytics will map `analytics_v2.analytics` to `analytics.analytics` source: r'/^(hive_metastore\..+)_spark$/, target: analytics will map hive_metastore.some_schema_spark to hive_metastore.some_schema.

Step 5: Save Configuration

Click the Save button, and Euno will generate an integration key. Please copy the integration key and save it somewhere, as the key will disappear after copying.

Uploading artifacts to the integration

To run the integratino, you need to upload dbt artifacts.

Files to upload from your dbt build are:

  • run_results.json

  • manifest.json

  • catalog.json

  • semantic_manifest.json (optional)

The easiest way to upload dbt artifacts to the integration is through Euno's UI. Browser to the integration and click "upload artifacts" and upload a .zip file with the above artifacts.

To programatially upload the dbt artifacts after every successful run, which is recommended for production use-cases, see reference implementations below:

Python Script

Use a standalone Python script to zip and upload your dbt artifacts. → View Python Upload Guide

GitHub Actions

Automate your dbt builds and artifact uploads using GitHub Actions workflows. → View GitHub Actions Guide

Prefect

Integrate with Prefect workflows for advanced orchestration and monitoring. → View Prefect Integration Guide

Generating a new trigger URL: If you need to create a new integration key, go to the Sources page and click on the three-dot menu to the right of the source you want to create a new key for. In the dropdown menu click on Generate trigger URL. The generated URL will include the new integration key.

Last updated