Welcome to our guide to passing the dbt Analytics Engineering Certification! dbt released its inaugural certification in July 2022 to recognize individuals who demonstrate proficiency with dbt. Our team of subject matter experts were recently awarded a Silver Certification Award at dbt Coalesce, so we decided to put this post together to help you pass too!

While dbt has released a comprehensive study guide for taking the certification, this blog post aims to equip you with additional context to set you up for success when taking the exam.  

dbt Learn – Online Courses

We believe dbt Learn Courses are the single most comprehensive resource available for exam preparation. This is not to say that you should limit your studies to just these courses, but this will be the best place to start for each topic, and they are entirely free.

Each course contains a series of short, on-demand videos that typically ask you to code along with a guide. The videos are divided into sections, followed by a quiz to test your knowledge. The quizzes can be retaken as many times as needed to pass. 

The first of these courses is the dbt Fundamentals course, which teaches the building blocks of dbt, from setup to deployment. It also contains a guided tutorial allowing you to build a project from end to end. We have found that attempting the tutorial with dbt’s Getting Started Guide on your own first, before doing the guided one, may help reinforce your learning better.

Finally, when you have completed the Fundamentals course, you will be rewarded with a badge for your LinkedIn profile! The exam requires knowledge from all the courses, not just Fundamentals. We recommend completing the following:

SQL

dbt recommends that test-takers have “at least SQL proficiency” before taking the exam. You won’t be writing SQL statements from scratch in the exam; however, your ability to recognize and understand SQL syntax will be tested. 

It’s key to remember that dbt works with a range of data warehouse providers (Snowflake, Redshift, Databricks, etc.), each of which may contain different SQL functions to another. Therefore, you will only be tested on the standard SQL syntax of all data warehouse providers.

The SQL syntax required for the dbt certification broadly falls into one of two categories: Data Manipulation Language (DML) or Data Definition Language (DDL). The following are the types of statements we would recommend being familiar with:

As you work through the training material, it’s important to understand what compiled SQL statements are executed in the data warehouse when a dbt model is running. You can view the compiled SQL for your dbt runs in the “Compiled SQL” window in dbt Cloud or in the dbt/Targets folder in your dbt project.

Along with understanding what these statements do, it’s important to put them into practice and understand what happens when they fail. Several questions on the exam focus on debugging errors in dbt models that can ultimately be reduced to database errors. For example, recognizing the types of errors associated with missing commas between field names in a SELECT statement and trying to query an unpermitted schema or table will be helpful when debugging dbt error logs. 

Jinja

Without prior Python knowledge or experience with another templating language, Jinja can be difficult to grasp. In layman’s terms, a templating language enables writing more efficient and dynamic code by having placeholders populated when the code is compiled and run. A commonly used example of this is emails. If you have ever received an email containing two curly brackets {{ }}, the sender likely used a templating language that failed to populate as expected. 

 

While writing the code for this email, you could include the Jinja variable {{ first_name }} rather than constructing an individual email for each recipient. Later, when the email is sent out, it would be populated with the actual first names from a list of values.

dbt has a course called Jinja, Macros, Packages, as mentioned above, that will provide an in-depth walkthrough of important Jinja concepts for the exam. Outside the course, we recommend writing as many custom dbt macros as possible. The more you can try to fail, the better it will all come together for you.

Here are some example macros that you can try building:

  • Lowercase all field names and remove any punctuation except for underscores
  • Return a list of all field names starting with a specified prefix
  • Convert an Amount field from dollars to euros

For simple definitions of functions and syntax, reference Jinja’s official documentation site. Use this Live Parser to test your code and ensure you understand how to use it. Lastly, search “Jinja” on dbt Docs to find hundreds of articles and help pages for more specific clarifications.

Git and Version Control

It is recommended by dbt Labs to be familiar with “branching strategies, basic git commands, and pull requests” for the exam. Git is the system dbt uses to version control code. One branch serves as the “source of truth” or production version of the code, usually named “main.” 

Branches are copies of the entire code repository that are created to make changes on. The idea is that the main branch is never directly changed, but as development branches are updated with new code, they can be tested, peer-reviewed, and merged back into the main branch. 

Once a branch is ready to be reviewed, a Pull Request is opened so that the reviewers can determine whether the code changes are fit to be “pulled” into the main branch. The act of bringing modifications from a branch into the main branch is called “merging.” These basic commands fall under the umbrella of Git Syncing

Documentation

dbt Docs contains a wealth of information on anything and everything dbt. But don’t worry – you will not have to memorize every single article. On the study guide’s Learning Path, there are specific articles linked under each Checkpoint. These are the Docs that will be crucial to read through. 

Each Doc will provide essential context around each concept: the “what,” the “why,” and the “how.” It will often explain what dbt is doing behind the scenes and show both basic and advanced code examples. 

The Docs get much more specific than the course videos, so if you skip over them, you may miss an important detail that gets asked on the exam. These are also incredibly useful beyond the exam. As you develop in dbt, you can reference, for example, how to configure a valid YAML file or a specific test. 

Additional Resources

The dbt Slack is home to a large community of dbt developers and analytics engineers, many of whom have already had the same questions or run into the same issues. A quick search in the Slack channel for your error message or query will likely steer you in the right direction. The Slack channel is far more active for dbt than other sites you might usually use to ask questions about a technical platform or programming language, like StackOverflow. Therefore, the Slack channel should be your first call for all things dbt.

The dbt Developer Blog is a key resource for further reading and deep dives into specific dbt topics. Posts are typically written by dbt Labs’ own Analytics Engineers and Technical Writers who are experts on the topics.

This cheat sheet by Bruno S. de Lima is handy to have at your fingertips when studying dbt or developing with it.

The dbt Roundup is a newsletter that will deliver the latest developments in dbt world straight to your inbox. There’s also an accompanying podcast.

Exam Structure

Over-familiarize yourself with the exam structure before diving into the exam. To re-iterate some general points:

  • You have 2 hours to complete the exam.
  • There are 65 questions to answer.
  • The passing grade is 65%
  • An undisclosed number of questions are unmarked for research purposes.
    • You can do your own guesswork for this, but supposing that 5 questions are unmarked, the number of questions you need to get right for a passing grade is 39.

It’s also worth knowing about the question formats. These are disclosed in the Study Guide, but the table below provides some additional context:

Know Before the Exam

Before you take the exam, it’s important to be aware of how the exam is administered:

  • You must book your exam 48+ hours in advance of the exam slot. If you plan to take your exam at 09:00 on a Friday, you must make the booking before 09:00 on the previous Wednesday.
  • It is a closed-book exam, meaning you are not permitted to use external materials or have them on your desk. Ensure your workspace is clean and the room is quiet and well-lit.
  • The exam is proctored by monitoredu, meaning a third party will be on the call before and during your exam to check that you and your environment meet the standards required. Be sure to read the FAQ to understand the technical and environmental requirements. Some critical but uncommon elements of the setup are listed below:
    • You will need a charged mobile phone with the Google Meets app installed. It is recommended to keep your phone on charge during the exam if it is prone to draining quickly. 
    • The phone’s camera will need to be pointed at your workspace, with your hands and keyboard visible. If you are not prepared, this can be tricky to set up, so have something on hand to balance your phone in the appropriate position.

Good Luck!

We hope you find this helpful guide as you prepare for the dbt Analytics Engineering Certification. At Aimpoint Digital, we have an expert team of consultants using dbt with our clients daily, so don’t hesitate to reach out through the form below to discuss your Analytics Engineering needs.