dbt Cloud is a service that helps data analysts and engineers put their dbt deployments into production. As data-driven organizations continue to grow, the need for efficient and effective data management becomes increasingly important. dbt Cloud provides a solution to automate the data analysis process, making it easier for teams to manage their data and extract valuable insights.
In this article, we'll take a closer look at the features and benefits of dbt Cloud, as well as the potential drawbacks. We will explore how dbt Cloud helps data teams collaborate and streamline their work, whilst also providing customizability and control for organizations that require it. Whether you're a small business looking to improve your data analysis process, or a large organization looking for ways to optimize your data management, dbt Cloud could be the solution you've been looking for. So let's take a closer look at this powerful tool.
What is dbt?
To delve into the world of dbt Cloud, it is important to first understand what dbt actually is. A Data Build Tool (dbt) is a platform that enables data teams to work with data in a structured, repeatable and organized manner. dbt is a component of the Extract, Transform, Load (ETL) process, specifically focused on the Transform stage. It uses the “transform after load” architecture.
dbt enables users to model and transform data within their data warehouse using concepts such as version control, continuous integration,deployment and unit testing. By embracing software engineering best practices, dbt enhances the transformation process, improving the reliability and dependability of data while empowering data teams to act as analytics engineers. It provides features such as model referencing, lineage, documentation and testing to increase efficiency and collaboration in deploying analytics code. dbt is an open-source tool designed to optimize time and effort for data teams, reduce distractions and enhance productivity.
dbt is a solution that has gained popularity in the data management field. One of the main reasons is its self-serve & low-code approach. dbt allows data analysts to work independently, which allows for faster data analysis and decision making as data teams can build their own data pipelines without being highly dependent on data engineers. This is mainly thanks to the fact that dbt workflows are all about data transformations in SQL, supported with easy to understand yaml configs and macros. It also comes with native support for data testing, data documentation and data lineage. When we add that it can be easily deployed on basically any cloud or on-premise data environment - what more can you want?
What is dbt Cloud?
dbt Labs, the company behind dbt, also offers a related product called dbt Cloud. dbt Cloud, which is a subscription-based cloud version provides an additional interface layer and handles hosting, as well as offering a managed Git repository and the ability to schedule dbt transformation jobs for various environments.
Key Features of dbt Cloud
dbt Cloud (apart from functionalities available in dbt Core) includes features such as job scheduling, continuous integration and continuous deployment, documentation, monitoring and alerting. The key functionalities provided by dbt Cloud include:
- Job scheduling: The ability to run one or multiple dbt commands on a schedule using a basic cron syntax.
- Alerting: Configurable alerts for jobs when errors or warnings occur, which can be sent via email or slack.
- Browser-based development: The ability to develop dbt models within the browser, eliminating the need for additional tools.
dbt Cloud allows you to easily switch between different environments and schedule the execution of your own dbt commands for tasks such as running, testing and generating document outputs using DAGs.
dbt Cloud introduces Environments as a way to organize and configure jobs within a dbt project. An environment encapsulates a collection of settings for how you want to run your dbt project, including the dbt version, git branch and data location (target schema).
The development environment applies the same settings for all developers using dbt Cloud. This allows each user to have their own environment, complete with configuration and credentials, which simplifies and secures the deployment of dbt to all members of a data team. Deployment environments can be configured to support various deployment strategies and architectures.
Jobs are a collection of dbt commands that are executed within an environment, which can include commands such as dbt build with any desired selection syntax/flags. Jobs can be initiated using various methods like schedule, webhook or API trigger.
Runs are the execution of a configured job that was triggered. You can view the status of a job in real-time while it is running. Once the job is completed, you can access the run results and examine artifacts from that specific run. The Run History feature in dbt Cloud provides an interface that makes it easy to filter and view jobs based on their name, status and environment. This allows users to easily locate and investigate failed jobs from previous months. With this feature, dbt Cloud users can analyze historical runs to evaluate changes in project build times, troubleshoot build errors and evaluate data quality issues.
dbt Cloud introduces an API for managing dbt deployments, which enables the creation and triggering of jobs to orchestrate complex data workflows. API can be integrated with Airflow to trigger dbt jobs, allowing for integration of dbt into existing data pipelines while still providing a user-friendly web interface for data analysts and engineers to build dbt-based transformation pipelines.
An important aspect of the dbt Cloud is the browser-based Integrated Development Environment (IDE) that simplifies the process of development and testing of SQL queries and data transformations by providing real-time query results, reducing frustration for the data analyst team. It enables fast coding, simultaneous view of multiple query results in one browser, validation of queries upon saving, compiling of queries and previewing previous versions of queries.
Limitations and drawbacks
dbt Cloud faces scalability problems that can hinder its performance. The platform has limited concurrency, with only one concurrent job allowed for Team accounts and five for Enterprise accounts. This limitation is likely due to the use of shared resources across all customers. This can result in added latency and limited concurrency, which can be a disadvantage for users.
dbt Cloud can present challenges when it comes to managing separate warehouse connections. One major issue is that it's not possible to set a different connection at the environment level. This can cause issues when trying to maintain separate databases for different environments, as users may need to resort to additional hacks, such as using separate projects for different warehouses and linking them to different hostnames while still connecting to the same repository. While this may work as a temporary solution, it can quickly become unwieldy as the number of environments and projects grows. Therefore, it's important to consider the scalability of the chosen solution before committing to a tool like dbt Cloud.
Another drawback of dbt Cloud is its relatively limited Integrated Development Environment (IDE) compared to more advanced code editors. This can be a challenge for more experienced data engineers who are used to working with more feature-rich IDEs.
Another limitation of dbt Cloud is its support for basic Git functionality. This means that more complex Git workflows, such as merging, is not possible within the dbt Cloud environment. This can be a problem for teams that rely on Git for version control and collaboration.
There are also some security concerns associated with dbt Cloud. When using the browser-based IDE to write interactive queries, the query is executed in the data warehouse and the results are passed through the dbt Cloud infrastructure before being displayed in your browser. This process creates a potential risk of data breaches or unauthorized access to sensitive information.
dbt Cloud has recently become relatively expensive due to recent price hikes, making it less accessible for smaller organizations or individual data analysts. This has become a significant drawback for those who previously used dbt Cloud as a cost-effective solution for data modeling and transformation. The cost of dbt Cloud may also be a challenge for larger organizations that have to manage multiple licenses and user accounts.
dbt Cloud comes with three different subscription options: Developer, Team and Enterprise. Each subscription level offers different features and pricing.
The Developer subscription is the entry-level option, providing services for data teams of one. It is free forever for one developer seat and includes features such as browser-based IDE, job scheduling, unlimited daily runs, one project limit, logging & alerting, data documentation, source freshness reporting and continuous integration. It also has native support for GitHub and GitLab and is hosted in the US.
The Team subscription is designed for teams who want to collaborate on the workflow. It includes all features in the Developer subscription, as well as the ability to add up to 8 seats, one project limit, 5 read-only seats, up to 2 concurrently running jobs, API access and a semantic layer.
The Enterprise subscription is for companies that want to customize their deployment and apply fine-grained controls. The pricing for this subscription is custom and offers features such as all features in the Team subscription, unlimited projects, single sign-ons, multiple deployment regions, service level agreements, professional services, role-based access control lists, fine-grained Git permissions, audit logging and native support for GitHub, GitLab and Azure DevOps.
Developer and Team accounts come with 24x5 support, while Enterprise customers receive priority access to support and have the option for custom coverage.
Overall, dbt Cloud offers a range of options for companies of different sizes and needs, with increasing levels of control and security as you move up the subscription levels.
Alternatives to dbt Cloud
For those looking for a more powerful alternative to dbt Cloud, the combination of Airflow and dbt Core with CI/CD can provide an amazing stack that delivers similar capabilities but avoids many limitations. By utilizing these open-source tools, teams can automate their data pipelines and maintain complete control over their infrastructure.
With Airflow, you can define, schedule and execute complex data workflows with ease. The platform provides a web-based interface that makes it easy to monitor and manage your data pipelines, and it integrates well with other tools such as dbt.
At GetInData, we used a combination of Airflow and dbt Core with CI/CD to create a modern data platform that has revolutionized our data processing capabilities. If you're interested in learning more about our solution, we invite you to read the blogpost "GetInData Modern Data Platform - features & tools". It is also worth mentioning that at GetInData, we work on various projects that use both dbt Cloud and dbt Core to build powerful data pipelines. Depending on the project requirements, we choose the solution that best suits our needs.
Is dbt Cloud the Right Fit for Your Team?
In conclusion, dbt Cloud is a powerful tool for data management and transformation that has gained popularity among data-driven companies. It offers various features such as efficient automation, live query results, alerting and browser-based IDE, making it an ideal solution for companies looking for a quick and easy way to get started. dbt Cloud may not be the best option for larger teams that have the resources to implement these features internally, but it is a valuable solution for small teams seeking ways to maximize their time and resources.
Would you like to know more about dbt Cloud and Modern Data Platform? Schedule a free consultation with our experts.