dbt
Core pluginmarmotdata/dbt
Ingest metadata from dbt (Data Build Tool) projects including models, tests, and lineage
The DBT plugin ingests metadata from dbt (Data Build Tool) projects, including models, sources, seeds, and lineage relationships. It reads dbt's generated artifacts to understand your data transformation layer and how it connects to your warehouse.
Prerequisites
Before Marmot can ingest your dbt project, you need to generate the artifact files in your project's target/ directory.
Generate manifest.json by running:
dbt compile
Generate catalog.json for column types and statistics:
dbt docs generate
File Sources
The target_path field accepts local paths, S3 URIs (s3://bucket/prefix) or Git URIs (git::https://...). For S3 and Git sources, the target directory is downloaded to a temporary location before discovery and cleaned up afterwards.
See File Sources for the full list of supported backends, authentication options and configuration examples.
In the UI
Point-and-click, no config file needed.
- 1 Open
Runs→Create Pipeline - 2 Pick dbt from the plugin list.
- 3 Fill in the wizard, set a schedule, save.
With the CLI
Save a YAML config, then run marmot ingest.
name: my-dbt-pipeline
runs:
- dbt:
target_path: "<target_path>"
project_name: "<project_name>"marmot ingest -c ingest.yaml Not using plugins? Other ways to populate Marmot
Configuration
15 top-level fields.
tags multiselect Tags to apply to discovered assets
external_links object[] External links to show on all assets
name string Display name for the link
icon string Icon identifier for the link
url string URL to the external resource
filter object Filter discovered assets by name (regex)
include multiselect Include patterns for resource names (regex)
exclude multiselect Exclude patterns for resource names (regex)
s3_source object S3 file source configuration
source_type = s3credentials object AWS credentials for S3 access
use_default bool Use AWS credentials from environment or default profile (recommended)
true id string AWS access key ID
secret password AWS secret access key
token password AWS session token
profile string AWS profile to use from shared credentials file
role string AWS IAM role ARN to assume
role_external_id string External ID for cross-account role assumption
region string AWS region for services
endpoint string Custom endpoint URL for AWS services
git_source object Git repository file source configuration
source_type = giturl string Git repository URL
ref string Branch, tag or commit to check out
main path string Subdirectory within the repository
token password Personal access token for HTTPS auth
ssh_key_path string Path to SSH private key for SSH auth
target_path string Path to DBT target directory containing manifest.json, catalog.json, etc. (local path, s3://bucket/prefix or git::url)
project_name string DBT project name
environment string Environment name (e.g., production, staging)
production include_manifest bool Include manifest.json for model definitions
true include_catalog bool Include catalog.json for table/column descriptions
true include_run_results bool Include run_results.json for test results
false include_sources_json bool Include sources.json for source definitions
false discover_models bool Discover DBT models
true discover_sources bool Discover DBT sources
true discover_tests bool Discover DBT tests
false Assets Emitted
Metadata fields this plugin attaches to each discovered asset.
DBT Model
DBTModelFieldsDBTModelFields represents DBT model-specific metadata fields
dbt_unique_id stringDBT's unique identifier for this node
dbt_package stringDBT package name
dbt_path stringPath to the model file
dbt_original_path stringOriginal path in the DBT project
dbt_materialized stringMaterialization type (table, view, incremental, ephemeral)
database stringTarget database name
schema stringTarget schema name
model_name stringDBT model name
table_name stringPhysical table/view name in database
fully_qualified_name stringFully qualified name (database.schema.table)
project_name stringDBT project name
environment stringDeployment environment (dev, prod, etc)
alias stringTable alias if different from model name
adapter_type stringDatabase adapter type (postgres, snowflake, bigquery, etc)
dbt_version stringDBT version used to generate this model
last_run_status stringStatus of the last DBT run (success, error, skipped)
last_run_execution_time floatExecution time of last run in seconds
last_run_message stringMessage from last DBT run
last_run_failures intNumber of failures in last run
raw_sql stringRaw SQL before compilation
owner stringTable/view owner from database catalog
catalog_comment stringComment from database catalog
DBT Source
DBTSourceFieldsDBTSourceFields represents DBT source-specific metadata fields
dbt_unique_id stringDBT's unique identifier for this source
dbt_package stringDBT package name
database stringSource database name
schema stringSource schema name
table_name stringSource table name
fully_qualified_name stringFully qualified name (database.schema.table)
source_name stringDBT source name
identifier stringPhysical table identifier
loaded boolWhether source was loaded at time of DBT execution
project_name stringDBT project name
environment stringDeployment environment
freshness_checked boolWhether freshness checks are configured
DBT Seed
DBTSeedFieldsDBTSeedFields represents DBT seed-specific metadata fields
dbt_unique_id stringDBT's unique identifier for this seed
dbt_package stringDBT package name
database stringTarget database name
schema stringTarget schema name
table_name stringSeed table name
fully_qualified_name stringFully qualified name (database.schema.table)
seed_path stringPath to seed CSV file
project_name stringDBT project name
environment stringDeployment environment
DBT Column
DBTColumnFieldsDBTColumnFields represents DBT column-specific metadata fields
column_name stringColumn name
data_type stringColumn data type
column_description stringColumn description from DBT
column_tags string[]Tags applied to this column
column_comment stringColumn comment from database catalog
DBT Config
DBTConfigFieldsDBTConfigFields represents DBT config-specific metadata fields Fields with config_ prefix contain DBT model configuration
config_enabled boolWhether model is enabled
config_materialized stringMaterialization strategy from config
config_tags stringTags from config
config_persist_docs boolWhether to persist documentation to database
config_full_refresh boolWhether to perform full refresh
config_on_schema_change stringBehavior when schema changes (append_new_columns, fail, ignore)
DBT Stats
DBTStatsFieldsDBTStatsFields represents DBT catalog statistics fields Fields with stat_ prefix contain statistics from database catalog
stat_row_count intNumber of rows
stat_bytes intSize in bytes
stat_last_modified stringLast modification timestamp
stat_num_rows intNumber of rows (alternative)
stat_approximate_count intApproximate row count
stat_size floatTable size