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:
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
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: Configure New dbt Core Source in Euno
Step 1: Access the Sources Page
Navigate to the Sources page in the Euno application.
Click on the Add New Source button.
Step 2: General Configuration
Name: Enter a name for your dbt Core source (e.g., "dbt - Marketing Models").
Configuration Details:
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.
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.
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 4: 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.
Step 5: Add the Integration Key
Take the copied integration key and add it to the configuration of the application or webhook that will send the dbt artifacts to Euno. This ensures that the application or webhook can authenticate and securely transmit the artifacts to Euno.
Step 6: Get the upload endpoint
Click "run", and euno will provide an endpoint to upload the artifacts into, where you will use the integration key from Step 5, as a header. See example script for uploading dbt build artifacts.
Step 7: Uploading artifacts
Files to upload from your dbt build are:
run_results.json
manifest.json
semantic_manifest.json
catalog.json
The following script assumes files are under the current working directory. You can change that in the code if you choose to use a different directory.
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