
dbt Platform
Effortless SQL-to-BigQuery Models That Just Work
FinOps billing data has become verifiable and actionable for accurate cloud cost ownership
What is our primary use case?
We have a FinOps use case, which means we are processing billing data from cloud providers. We use dbt to create data models around billing and convert them into insights where we can find cost optimization, and also a reporting function, ensuring that the cost in the cloud infrastructure is attributable to the team, the organization, or whoever is responsible for that resource.
What is most valuable?
When we started adopting agentic engineering, we were looking at a tool that could help us do some verification. dbt came up as the leading tool that could support the workflow that we have envisioned with the team because we would not want to use AI without a capability to do verification and to do proper testing on data models.
What needs improvement?
The capability for doing proper testing in dbt is quite recent. One thing that dbt still lacks is native support for knowing the coverage. In traditional software engineering, once you have a tool packaged as a testing tool, you immediately have a number beside that tool. If you do testing, it can tell you how much of the source code is covered by tests. A good coverage could be that 90% of all tests or 90% of the code is covered by tests, and you can see that bad code potentially has 20% uncovered tests. In the case of dbt, this number is not something that they support out of the box, and you have to be creative to extract this number.
For how long have I used the solution?
I have been using dbt for about a year.
What do I think about the stability of the solution?
So far, I have not experienced any stability issues, but I can attribute this to our workflow being more automated. Our commands, when we issue dbt, are predictable. We rarely have to run a dbt command ourselves, and if we have to do that, we have playbooks, which means everything is documented whenever we need to do something with dbt. When you are issuing dbt commands, you have a tendency to alter active data, which depends on if you alter the datasets, the reports which upstream users are looking at, whether management or those using our FinOps tooling, will be affected. We have streamlined the process of running dbt to avoid executing things that could accidentally be an issue in production.
What do I think about the scalability of the solution?
For our small team of three engineers, dbt is super stable at the moment. When thinking about scalability, every engineer has to have their own workspace. If everyone is playing around with dbt commands, there is a high tendency that there will be congestion. If I update a model, another engineer updates a model, and then another engineer updates the same model, then it is going to be an issue. Every head needs to have its own separate workspace, which means every workspace will have to have test data and the same baseline schema. This is the current setup I see for dbt, so as long as you understand that this is the condition for using dbt, every engineer that needs to work on the codebase needs to have their own individual workspace. This is quite different from traditional software engineering product teams, where people can share a test environment. For dbt, this is not the case, so everyone contributing to the code needs to have an individual workspace, which makes it less scalable than other tools, but this is really because dbt is a data-related tool, not the fault of the system.
How are customer service and support?
There is an active community, but to be honest, I just have not had time to engage or ask around. I think when the problem is medium to high for us, there will be a bit of pressure, but for now, this is more of a wishlist rather than something that is restricting us.
How was the initial setup?
Being already familiar with the DevOps stack, so CI/CD, it is not a high bar for learning for me. I can imagine that some people could feel a bit intimidated by it because I know some colleagues who have been working in data engineering and they have difficulty adopting or understanding how you set up a tool such as dbt. I would say it depends on the background and the skills inside the software engineering team.
What's my experience with pricing, setup cost, and licensing?
We are unfortunately, or fortunately, depending on the perspective, not using dbt Cloud, which is the paid option. We are using the open-source version, which is dbt Core. For our use case, this is sufficient at the moment, but we will see eventually if there is really something interesting that we would like to leverage in their paid offering. For now, using the open-source version is sufficient for us.
Which other solutions did I evaluate?
I did read about a few other tools such as Bruin, or maybe some teams are actually using just Python testing, but those solutions are not as close to what you would be using if you are developing the data engineering part of FinOps, which is closely tied to SQL as a language. The other tools are more geared toward other programming languages, and dbt is quite unique in that it is the only one supporting testing with SQL as a first-class language.
What other advice do I have?
I have been working in my current field for more than 15 years.
We take care of maintenance in terms of checking compatibility of upgrades. For example, dbt released a newer version in Rust that is a bit faster in terms of performance, but it is not yet compatible with our AWS data analytics stack, so we cannot switch to Rust even though we would prefer to. We have to wait for the connector to AWS if someone builds that. This is the problem with open source: if someone does not build it, potentially we are stuck with Python. But it is still working for now, so in terms of maintenance, if you want to maybe go for the state of the art, that could be a use case to be on a paid subscription to dbt, and then you tell them you would prefer this to be supported in AWS so we can merge to the latest version in Rust and adopt a faster workflow.
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Simple SQL-Driven Materializations with Powerful Lineage
Great UI Makes Data Lineage and Flow Easy to Understand
Simplifying Data Transformations
Data pipelines have grown in complexity and now support automated tests and rich documentation
What is our primary use case?
My main use case for dbt is data pipelines. I build data transformations and usually construct analytics pipelines.
What is most valuable?
I use dbt to handle transformations because it is really good at generating automatic documentation. dbt orchestrates and automates workflows, and it provides visualization of the data. dbt generates documentation from the code automatically. I also use tests where I can define automatic tests that will run.
dbt has positively impacted my organization by allowing us to expand the ceiling of complexity because once we have written the SQL, we can manage significantly more complexity since we are not spending all of our time doing it ourselves.
What needs improvement?
dbt can be improved by introducing Python. Ideally, I would want to be able to orchestrate across the DAG and have both Python and SQL combined. The last time I used it, it was not able to visualize that on the DAG.
The main issue I have had with dbt is that when I start a project inside dbt, the structure I have to use is somewhat strict. In terms of reusability and abstraction, it is really good inside a project, but as soon as I try to create a package, something that others could use or make my work reusable, it was not very good. dbt was not very good at package management.
For how long have I used the solution?
I have been using dbt for four years.
What do I think about the stability of the solution?
dbt is stable.
What do I think about the scalability of the solution?
dbt's scalability is probably where it shines the most; it is really scalable compared to using just SQL.
How are customer service and support?
I have not had to use customer support for dbt. dbt has a very strong community. I would rate the customer support as really good since I have never had to use it; I can go on the forums and get most of my questions answered.
Which solution did I use previously and why did I switch?
I did not previously use a different solution before dbt; every time I have used dbt, it was always embedded.
What was our ROI?
I have seen a return on investment from using dbt. I would say that you needed fewer people. You take your time, but I do not have concrete metrics.
What's my experience with pricing, setup cost, and licensing?
My experience with pricing, setup cost, and licensing for dbt is that dbt is open source for its core modules, so the pricing, setup, and everything was really good.
Which other solutions did I evaluate?
I did not evaluate other options before choosing dbt.
What other advice do I have?
My advice for others looking into using dbt is to read the documentation; it is not that difficult to use. I would rate this review an 8 out of 10.