Bird
Raised Fist0
dbtdata~5 mins

Creating your own dbt package - Quick Revision & Summary

Choose your learning style10 modes available
Recall & Review
beginner
What is a dbt package?
A dbt package is a reusable set of dbt models, tests, and macros that you can share and use across different projects.
Click to reveal answer
beginner
Which file is essential to define a dbt package?
The packages.yml file lists the packages your project depends on, and the dbt_project.yml defines your own package's settings.
Click to reveal answer
intermediate
How do you share your dbt package with others?
You can share your dbt package by publishing it to a Git repository, like GitHub, so others can add it as a dependency in their packages.yml.
Click to reveal answer
beginner
What command installs packages listed in packages.yml?
Running dbt deps downloads and installs all packages listed in packages.yml into your project.
Click to reveal answer
intermediate
Why create your own dbt package instead of copying models?
Creating a package lets you reuse code easily, keep it updated in one place, and share best practices across projects without duplication.
Click to reveal answer
What file do you edit to add a new dbt package dependency?
Adbt_project.yml
Bpackages.yml
Cmodels.sql
Dprofiles.yml
Which command downloads dbt packages listed in your project?
Adbt test
Bdbt run
Cdbt deps
Ddbt compile
Where should you publish your dbt package for others to use it?
AGit repository like GitHub
BLocal folder only
CCloud storage like Dropbox
DInside dbt Cloud only
What is a main benefit of creating your own dbt package?
AAvoid writing any SQL
BMake your project run faster
CAutomatically generate dashboards
DReuse code easily across projects
Which file defines your own dbt package's settings?
Adbt_project.yml
Bprofiles.yml
Cschema.yml
Dpackages.yml
Explain the steps to create and share your own dbt package.
Think about how you organize, publish, and use the package in other projects.
You got /5 concepts.
    Why is using dbt packages better than copying models between projects?
    Consider the benefits of sharing code in one place.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of creating your own dbt package?
      easy
      A. To reuse and share data models easily across projects
      B. To write SQL queries faster
      C. To create dashboards automatically
      D. To store raw data files

      Solution

      1. Step 1: Understand the role of dbt packages

        dbt packages are designed to bundle data models and logic for reuse.
      2. Step 2: Identify the main benefit

        Sharing and reusing models saves time and keeps projects consistent.
      3. Final Answer:

        To reuse and share data models easily across projects -> Option A
      4. Quick Check:

        dbt package purpose = reuse/share models [OK]
      Hint: Think: Why share code? To reuse it easily [OK]
      Common Mistakes:
      • Confusing packages with dashboards
      • Thinking packages store raw data
      • Believing packages speed up SQL writing only
      2. Which file do you edit to add a new dbt package to your main project?
      easy
      A. models.sql
      B. dbt_project.yml
      C. profiles.yml
      D. packages.yml

      Solution

      1. Step 1: Recall where packages are declared

        dbt uses packages.yml to list external or local packages.
      2. Step 2: Differentiate from other config files

        dbt_project.yml configures the project itself, not packages.
      3. Final Answer:

        packages.yml -> Option D
      4. Quick Check:

        Package list file = packages.yml [OK]
      Hint: Add packages in packages.yml, not dbt_project.yml [OK]
      Common Mistakes:
      • Adding packages in dbt_project.yml
      • Confusing profiles.yml with packages.yml
      • Trying to add packages in SQL files
      3. Given this packages.yml snippet:
      packages:
        - local: ../my_dbt_package

      What command installs this package into your project?
      easy
      A. dbt install
      B. dbt build
      C. dbt deps
      D. dbt run

      Solution

      1. Step 1: Identify the command for package installation

        dbt uses dbt deps to download and install packages listed in packages.yml.
      2. Step 2: Differentiate from other commands

        dbt run runs models, dbt install is not a valid command.
      3. Final Answer:

        dbt deps -> Option C
      4. Quick Check:

        Install packages with dbt deps [OK]
      Hint: Use dbt deps to install packages listed in packages.yml [OK]
      Common Mistakes:
      • Using dbt install (not a valid command)
      • Confusing dbt run with package install
      • Trying dbt build instead of dbt deps
      4. You created a package but when running dbt deps, you get an error: "Could not find package at path '../my_package'". What is the likely cause?
      medium
      A. The relative path in packages.yml is incorrect or folder missing
      B. You forgot to run dbt run first
      C. The package name is missing in dbt_project.yml
      D. You need to delete the profiles.yml file

      Solution

      1. Step 1: Understand the error message

        "Could not find package at path" means dbt cannot locate the folder specified.
      2. Step 2: Check the path in packages.yml

        Relative paths must be correct and folder must exist for local packages.
      3. Final Answer:

        The relative path in packages.yml is incorrect or folder missing -> Option A
      4. Quick Check:

        Path error = wrong folder path [OK]
      Hint: Check folder path in packages.yml matches actual location [OK]
      Common Mistakes:
      • Running dbt run before dbt deps
      • Editing dbt_project.yml instead of packages.yml
      • Deleting unrelated config files
      5. You want to use a model named customer_summary from your custom package my_package. Which is the correct way to reference it in your SQL model?
      hard
      A. select * from {{ ref('my_package', 'customer_summary') }}
      B. select * from {{ ref('my_package.customer_summary') }}
      C. select * from {{ ref('customer_summary') }}
      D. select * from {{ ref('my_package__customer_summary') }}

      Solution

      1. Step 1: Recall how to reference models from packages

        Use ref('package_name.model_name') to refer to models in packages.
      2. Step 2: Check each option's syntax

        select * from {{ ref('my_package.customer_summary') }} uses the correct single-argument ref syntax with dot notation for packages.
      3. Final Answer:

        select * from {{ ref('my_package.customer_summary') }} -> Option B
      4. Quick Check:

        Package model ref = ref('package.model') [OK]
      Hint: Use ref('package.model') to access package models [OK]
      Common Mistakes:
      • Using ref('package', 'model') syntax (that's for sources)
      • Forgetting the package name in ref
      • Using double underscore instead of dot
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard