0
0
dbtdata~5 mins

Why packages accelerate dbt development

Choose your learning style9 modes available
Introduction

Packages help you reuse code others wrote, so you don't start from scratch. This saves time and makes your dbt projects faster to build and easier to maintain.

When you want to use tested models or macros created by the community.
When you need to add common transformations without writing all the SQL yourself.
When you want to standardize your data models across teams.
When you want to speed up development by building on top of existing work.
When you want to keep your project organized by separating reusable code.
Syntax
dbt
packages:
  - package: <package_name>
    version: <version_number>

You add packages in the packages.yml file in your dbt project.

Use the package name and version to get the right code from the dbt package hub.

Examples
This example adds the popular dbt_utils package at version 0.8.6.
dbt
packages:
  - package: dbt-labs/dbt_utils
    version: 0.8.6
This example adds the jaffle_shop demo package to your project.
dbt
packages:
  - package: fishtown-analytics/jaffle_shop
    version: 0.1.0
Sample Program

This example shows how to add the dbt_utils package, download it, and use one of its macros to select all columns from a table. This saves you from writing all column names manually.

dbt
# 1. Create a packages.yml file with:
# packages:
#   - package: dbt-labs/dbt_utils
#     version: 0.8.6

# 2. Run 'dbt deps' in your terminal to download the package.

# 3. Use a macro from dbt_utils in your model SQL file:

-- models/my_model.sql
select
  {{ dbt_utils.star(ref('my_source_table')) }}
from {{ ref('my_source_table') }}

# 4. Run 'dbt run' to build your model using the package macro.
OutputSuccess
Important Notes

Always check package versions to avoid compatibility issues.

Packages can include macros, models, tests, and more.

Using packages encourages collaboration and code sharing.

Summary

Packages let you reuse tested dbt code easily.

They speed up development and reduce errors.

Add packages in packages.yml and run dbt deps.