How to get the most out of dbt Slack

#1

Welcome to the dbt Slack! We’re glad to have you with us! The dbt Slack is full of incredibly intelligent data analysts and engineers, so we’ve created a list of tips to help you get the most out of it!

Tip 1: Try to solve your problem first before asking for help

Check out the existing documentation

We invest heavily in our documentation, so this should be the first place you turn!
The dbt documentation is split into two parts:

  • The guides section is full of problem- and learning-oriented content, which is super useful when trying to understand how to do something in dbt.
  • The reference section contains information-oriented content, with technical descriptions of the parts of dbt.

Further, Discourse contains articles written by community members (ourselves included!) about the best ways to use dbt.

Try Googling the problem that you’re seeing

Many problems related to installing dbt, the SQL in your models, or getting yaml right, aren’t errors that dbt generates. If that’s the case, you can often find an answer on Stack Overflow! After all, most of writing code is being able to Google effectively :wink:

Try to debug the issue yourself

Learning to debug an issue will mean that you won’t be blocked if you hit another issue in the future! To debug an issue try looking at:

  • logs/dbt.log: This file contains verbose logs of everything that dbt did when running, including introspective queries, and hooks.You can often Cmd + F for your error message, and then find the code that was running that caused the error.
  • target/compiled/: This directory contains the SQL that dbt compiled (without the DDL statements). If I am getting a SQL error, I often open up my compiled SQL, copy it into a SQL runner, and try to run it to see what’s going wrong. Once I’ve found my issue, I then edit my model (making sure not to edit the compiled SQL) and try running again!
  • target/run/: This directory contains the SQL that dbt ran for each model, including the appropriate DDL (i.e. create) statements. Note that it doesn’t include SQL in hooks – for these check out the logs file (above).

Experiment!

If the question you have is "What happens when I do X", try doing X and see what happens! Assuming you have a solid dev environment set up, making mistakes in development won’t affect your end users.

Tip 2: Ask your question in the best channel

We have a few different channels on dbt Slack, and it helps us help you if your question is in the right channel!

  • #beginners: A great channel if you’re getting started with dbt and want to understand how it works.

  • #support: If you’re hitting an error in dbt that you don’t understand, let us know here.

  • #modeling: This channel is most useful when wanting to ask questions about data model design, SQL patterns, and testing.

  • #suggestions: Got an idea for dbt? This is the place!

  • #general: We try to reserve this for announcements that are relevant to the whole community.

During business hours (Eastern Time), we will do our best to reply to dbt-related questions in #beginners and #support within two hours.

If you have any feedback on the structure of our channels, please let us know (in #suggestions of course!).

Tip 3: Ask your question in a way that helps us understand your problem quickly

Include relevant details in your question

Let us know exactly what’s going wrong! When asking your question, you should:

  • Paste the error message or relevant code inside three backticks (```) in your question, instead of sharing a screenshot
  • Include the version of dbt you’re on (which you can check with dbt --version)
  • Let us know which warehouse you’re using

Avoid generalizing your code

While we understand that you may wish to generalize your problem, or that you may have sensitive information you wish to anonymize, often replacing references in SQL can result in invalid code that creates an error different to the one you’re hitting. This makes it harder for us to understand your problem. Wherever possible, share the exact code that you’re trying to run.

Let us know what you’ve already tried

In general, people are much more willing to help when they know you’ve already given something your best shot!

Share the context of the problem you’re trying to solve

Sometimes you might hit a boundary of dbt because you’re trying to use it in a way that doesn’t align with the opinions we’ve built into dbt. By sharing the context of the problem you’re trying to solve, we might be able to share insight into whether there’s an alternative way to think about it.

Tip 4: Use good Slack etiquette

Be mindful of others’ notifications

At present we have over 1600 users in our Slack Community, many of whom are full time analysts and engineers, unaffiliated with dbt. To reduce the number of notifications they receive, please:

  • Use threads as much as possible. They also make it easier to follow and manage the variety of conversations happening in here!
  • Type your question out as one message rather than separate messages. I often find it useful to draft my message in a message to myself first!
  • There’s no need to tag individuals when asking for help—we try our best to get to messages in a timely manner and share this responsibility between a few people.
  • Do not directly message members of our community without their consent.