Bird
Raised Fist0
dbtdata~5 mins

dbt-expectations for data quality - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is dbt-expectations in the context of data quality?
dbt-expectations is a package for dbt that helps you write tests to check your data quality by defining expectations or rules your data should meet.
Click to reveal answer
intermediate
How does dbt-expectations improve data quality checks compared to basic dbt tests?
dbt-expectations provides a rich set of reusable, parameterized tests that cover common data quality scenarios, making it easier and faster to write thorough tests.
Click to reveal answer
beginner
What is an example of a dbt-expectations test you can use to check for null values in a column?
You can use expect_column_values_to_not_be_null to ensure a column has no null values, which helps catch missing data issues.
Click to reveal answer
beginner
Why is it important to use dbt-expectations tests in your data pipeline?
Using dbt-expectations tests helps catch data problems early, ensures data reliability, and builds trust in your data for decision-making.
Click to reveal answer
beginner
How do you add dbt-expectations to your dbt project?
You add dbt-expectations by installing it as a package in your packages.yml file and then running dbt deps to download it.
Click to reveal answer
What does the dbt-expectations test expect_column_values_to_be_unique check?
AThat values in a column are within a range
BThat a column has no null values
CThat values in a column match a regex pattern
DThat all values in a column are unique
Which file do you modify to add dbt-expectations as a dependency?
Adbt_project.yml
Bpackages.yml
Cprofiles.yml
Dschema.yml
What is the main benefit of using dbt-expectations tests over writing custom SQL tests?
AThey are reusable and easier to maintain
BThey require no configuration
CThey run faster
DThey automatically fix data issues
Which dbt-expectations test would you use to check if values in a column fall within a specific set?
Aexpect_column_values_to_not_be_null
Bexpect_column_values_to_be_unique
Cexpect_column_values_to_be_in_set
Dexpect_column_values_to_match_regex
After adding dbt-expectations to packages.yml, what command do you run to install it?
Adbt deps
Bdbt test
Cdbt compile
Ddbt run
Explain how dbt-expectations helps maintain data quality in a data project.
Think about how automated checks help in real life to avoid mistakes.
You got /4 concepts.
    Describe the steps to add and use dbt-expectations in your dbt workflow.
    Focus on setup and usage in your project.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of dbt-expectations in data projects?
      easy
      A. To create visual dashboards for data
      B. To load data into the database
      C. To write tests that check data quality in your models
      D. To write SQL queries faster

      Solution

      1. Step 1: Understand dbt-expectations role

        dbt-expectations is a package that helps add tests to check data quality.
      2. Step 2: Identify main function

        Its main function is to write simple tests like checking for nulls or uniqueness in data models.
      3. Final Answer:

        To write tests that check data quality in your models -> Option C
      4. Quick Check:

        dbt-expectations = data quality tests [OK]
      Hint: Remember: dbt-expectations is for testing data quality [OK]
      Common Mistakes:
      • Confusing dbt-expectations with visualization tools
      • Thinking it loads or transforms data
      • Assuming it speeds up SQL writing
      2. Which of the following is the correct way to add a null check test using dbt-expectations in a schema.yml file?
      easy
      A. tests: - expect_column_values_to_be_null
      B. tests: - dbt_expectations.expect_column_values_to_not_be_null
      C. tests: - dbt-expectations.expect_column_values_to_not_be_null
      D. tests: - expect_column_values_to_not_be_null

      Solution

      1. Step 1: Recall dbt-expectations test syntax

        In schema.yml, tests are listed by their function name without the package prefix.
      2. Step 2: Identify correct test name

        The correct test for checking no nulls is expect_column_values_to_not_be_null.
      3. Final Answer:

        tests: - expect_column_values_to_not_be_null -> Option D
      4. Quick Check:

        Test names exclude package prefix [OK]
      Hint: Use test function names without package prefix in schema.yml [OK]
      Common Mistakes:
      • Including package name in test list
      • Using wrong test name like 'expect_column_values_to_be_null'
      • Using hyphens instead of underscores
      3. Given this snippet in a schema.yml file:
      tests:
      - expect_column_values_to_be_between:
      min_value: 10
      max_value: 100

      What does this test check for the column?
      medium
      A. Values are between 10 and 100 inclusive
      B. Values are unique
      C. Values are not null
      D. All values are exactly 10 or 100

      Solution

      1. Step 1: Understand the test name

        The test expect_column_values_to_be_between checks if values fall within a range.
      2. Step 2: Interpret parameters

        Parameters min_value: 10 and max_value: 100 mean values must be between 10 and 100, including these limits.
      3. Final Answer:

        Values are between 10 and 100 inclusive -> Option A
      4. Quick Check:

        Between test checks range limits [OK]
      Hint: Between test checks inclusive range by default [OK]
      Common Mistakes:
      • Thinking values must be exactly min or max
      • Confusing with null or uniqueness tests
      • Assuming exclusive range instead of inclusive
      4. You wrote this test in your schema.yml:
      tests:
      - expect_column_values_to_be_unique_or_nulls

      But dbt throws an error when running tests. What is the likely cause?
      medium
      A. The test name is incorrect; it should be expect_column_values_to_be_unique_or_nulls
      B. The test name is incorrect; it should be expect_column_values_to_be_unique_or_null
      C. The test requires parameters min_value and max_value
      D. The test cannot be used in schema.yml files

      Solution

      1. Step 1: Check test name spelling

        The correct test name is expect_column_values_to_be_unique_or_null without the trailing 's'.
      2. Step 2: Understand test usage

        This test does not require parameters and is valid in schema.yml files.
      3. Final Answer:

        The test name is incorrect; it should be expect_column_values_to_be_unique_or_null -> Option B
      4. Quick Check:

        Exact test names matter for dbt-expectations [OK]
      Hint: Check exact test function names for typos [OK]
      Common Mistakes:
      • Adding extra characters to test names
      • Assuming parameters are needed for all tests
      • Thinking some tests can't be in schema.yml
      5. You want to ensure a column email in your users model has no nulls and all values match a simple email pattern using dbt-expectations. Which test setup in schema.yml is correct?
      hard
      A. tests: - expect_column_values_to_not_be_null - expect_column_values_to_match_regex: regex: '^[\w.-]+@[\w.-]+\.\w+$'
      B. tests: - expect_column_values_to_be_null - expect_column_values_to_match_regex: regex: '^[\w.-]+@[\w.-]+\.\w+$'
      C. tests: - expect_column_values_to_not_be_null - expect_column_values_to_be_unique
      D. tests: - expect_column_values_to_not_be_null - expect_column_values_to_match_regex: regex: 'email@domain.com'

      Solution

      1. Step 1: Identify null check test

        Use expect_column_values_to_not_be_null to ensure no null emails.
      2. Step 2: Identify regex pattern test

        Use expect_column_values_to_match_regex with a regex matching email format.
      3. Step 3: Evaluate options

        tests: - expect_column_values_to_not_be_null - expect_column_values_to_match_regex: regex: '^[\w.-]+@[\w.-]+\.\w+$' correctly combines both tests with a valid regex pattern.
      4. Final Answer:

        tests: - expect_column_values_to_not_be_null - expect_column_values_to_match_regex: regex: '^[\w.-]+@[\w.-]+\.\w+$' -> Option A
      5. Quick Check:

        Null check + regex pattern = correct test setup [OK]
      Hint: Combine null check and regex for pattern validation [OK]
      Common Mistakes:
      • Using expect_column_values_to_be_null instead of not null
      • Using a fixed string instead of regex pattern
      • Omitting the regex test for pattern check
      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