dbt ls (list) Command: Usage & Examples
Introduction
dbt is a transformative tool in the world of analytics, allowing data teams to transform, test, and document their data workflows. One of its powerful commands is dbt ls, which provides a way to list resources in your dbt project. This tutorial will guide you through its usage, key arguments, and practical examples.
dbt list (ls) Basic Usage
The dbt ls command, also known as dbt list, is designed to list resources in your dbt project. Unlike some other commands, it doesn't connect to the database or run any queries. It only reads your your connection profile to resolve target-specific logic.
dbt lsKey Arguments
Resource Type (--resource-type)
This argument allows you to specify the type of resource you want to list, such as models, sources, seeds, or snapshots.
dbt ls --resource-type modelSelection (--select and --models)
Use these arguments to filter the nodes or models you want to list. The shorthand for --select is -s and the shorthand for --models is -m.
For instance, if you have a sales model and want to list only those, you'd use:
dbt ls --select intermediate.*Exclusion (--exclude)
If you want to list all models except for a specific model or group of models, you can use the --exclude argument. The command below will return all models except for the ones that have the v2 tag.
dbt ls --resource-type model --exclude tag:v2Named Selectors (--selector)
For complex projects, you might have predefined selectors in a selectors.yml file. Use this argument to list resources based on those selectors.
dbt ls --selector my_selectorAdvanced Output Options
Output Format (--output)
By default, the output is in a readable format. However, for integration with other tools, you might need a JSON output:
dbt ls --output jsonOutput Keys (--output-keys)
When using JSON output, you can specify which keys you want to include:
dbt ls --output json --output-keys name resource_typePractical dbt ls Examples
Listing Specific Models for a Retail Business
Suppose you have models related to inventory and want to list all of them:
dbt ls --select inventory.*Listing Tests for Financial Reporting
For businesses in the finance sector, ensuring data integrity is crucial. List all tests related to financial data by filtering on the tag financial that we’ve applied on all tests in that category:
dbt ls --select tag:financial --resource-type testListing Incremental Models in E-commerce
In e-commerce, data like user activity might be stored incrementally. To list such models:
dbt ls --select config.materialized:incrementalOutput for Integration with Business Dashboards
If you're integrating with a business dashboard tool and need a JSON output:
$ dbt ls --select sales.* --output jsonCommon Pitfalls and Tips
- Always ensure that the models you're trying to list are not disabled.
- Familiarize yourself with the connection profile and target-specific logic to avoid unexpected results.
Conclusion
The dbt ls command is a versatile tool in the dbt suite, allowing for efficient resource listing and management. By mastering its arguments and understanding its use cases, you can streamline your data workflow and improve your project's organization.
Previous
dbt initNext
dbt run command