2023 dbt Cloud release notes
Archived release notes for dbt Cloud from 2023
December 2023
-
Semantic Layer updates
The dbt Labs team continues to work on adding new features, fixing bugs, and increasing reliability for the dbt Semantic Layer. The following list explains the updates and fixes for December 2023 in more detail.
Bug fixes
- Tableau integration — The dbt Semantic Layer integration with Tableau now supports queries that resolve to a "NOT IN" clause. This applies to using "exclude" in the filtering user interface. Previously it wasn’t supported.
BIGINT
support — The dbt Semantic Layer can now supportBIGINT
values with precision greater than 18. Previously it would return an error.- Memory leak — Fixed a memory leak in the JDBC API that would previously lead to intermittent errors when querying it.
- Data conversion support — Added support for converting various Redshift and Postgres-specific data types. Previously, the driver would throw an error when encountering columns with those types.
Improvements
- Deprecation — We deprecated dbt Metrics and the legacy dbt Semantic Layer, both supported on dbt version 1.5 or lower. This change came into effect on December 15th, 2023.
- Improved dbt converter tool — The dbt converter tool can now help automate some of the work in converting from LookML (Looker's modeling language) for those who are migrating. Previously this wasn’t available.
-
External attributes
The extended attributes feature in dbt Cloud is now GA! It allows for an environment level override on any YAML attribute that a dbt adapter accepts in its
profiles.yml
. You can provide a YAML snippet to add or replace any profile value.To learn more, refer to Extended attributes.
The Extended Attributes text box is available from your environment's settings page:
-
Legacy semantic layer
dbt Labs has deprecated dbt Metrics and the legacy dbt Semantic Layer, both supported on dbt version 1.5 or lower. This change starts on December 15th, 2023.
This deprecation means dbt Metrics and the legacy Semantic Layer are no longer supported. We also removed the feature from the dbt Cloud user interface and documentation site.
Why this change?
The re-released dbt Semantic Layer, powered by MetricFlow, offers enhanced flexibility, performance, and user experience, marking a significant advancement for the dbt community.
Key changes and impact
- Deprecation date — The legacy Semantic Layer and dbt Metrics will be officially deprecated on December 15th, 2023.
- Replacement — MetricFlow replaces dbt Metrics for defining semantic logic. The
dbt_metrics
package will no longer be supported post-deprecation. - New feature — Exports replaces the materializing data with
metrics.calculate
functionality and will be available in dbt Cloud in December or January.
Breaking changes and recommendations
-
For users on dbt version 1.5 and lower with dbt Metrics and Snowflake proxy:
-
Impact: Post-deprecation, queries using the proxy will not run.
-
Action required: Immediate migration is necessary. Refer to the dbt Semantic Layer migration guide
-
For users on dbt version 1.5 and lower using dbt Metrics without Snowflake proxy:
-
Impact: No immediate disruption, but the package will not receive updates or support after deprecation
-
Recommendation: Plan migration to the re-released Semantic Layer for compatibility with dbt version 1.6 and higher.
Engage and support
- Feedback and community support — Engage and share feedback with the dbt Labs team and dbt Community slack using channels like #dbt-cloud-semantic-layer and #dbt-metricflow. Or reach out to your dbt Cloud account representative.
- Resources for upgrading — Refer to some additional info and resources to help you upgrade your dbt version:
- Upgrade version in dbt Cloud
- Version migration guides
November 2023
-
New features and UI changes to dbt Explorer
There are new quality-of-life improvements in dbt Cloud for email and Slack notifications about your jobs:
- You can add external email addresses and send job notifications to them. External emails can be:
- Addresses that are outside of your dbt Cloud account
- Third-party integration addresses for configuring notifications to services like Microsoft Teams or PagerDuty
- You can configure notifications for multiple Slack channels. Previously, you could only configure one Slack channel.
- Any account admin can now edit slack notifications, not just the person who created them.
To learn more, check out Job notifications.
- You can add external email addresses and send job notifications to them. External emails can be:
-
Job notifications
There are new quality-of-life improvements in dbt Cloud for email and Slack notifications about your jobs:
- You can add external email addresses and send job notifications to them. External emails can be:
- Addresses that are outside of your dbt Cloud account
- Third-party integration addresses for configuring notifications to services like Microsoft Teams or PagerDuty
- You can configure notifications for multiple Slack channels. Previously, you could only configure one Slack channel.
- Any account admin can now edit slack notifications, not just the person who created them.
To learn more, check out Job notifications.
- You can add external email addresses and send job notifications to them. External emails can be:
-
Repo caching
Now available for dbt Cloud Enterprise plans is a new option to enable Git repository caching for your job runs. When enabled, dbt Cloud caches your dbt project's Git repository and uses the cached copy instead if there's an outage with the Git provider. This feature improves the reliability and stability of your job runs.
To learn more, refer to Repo caching.
October 2023
-
dbt Cloud APIs
Beginning December 1, 2023, the Administrative API v2 and v3 will expect you to limit all "list" or
GET
API methods to 100 results per API request. This limit enhances the efficiency and stability of our services. If you need to handle more than 100 results, then use thelimit
andoffset
query parameters to paginate those results; otherwise, you will receive an error.This maximum limit applies to multi-tenant instances only, and does not apply to single tenant instances.
Refer to the API v3 Pagination or API v2 Pagination sections for more information on how to paginate your API responses.
-
dbt Cloud CLI
We are excited to announce the dbt Cloud CLI, unified command line for dbt, is available in public preview. It’s a local development experience, powered by dbt Cloud. It’s easy to get started:
pip3 install dbt
orbrew install dbt
and you’re ready to go.We will continue to invest in the dbt Cloud IDE as the easiest and most accessible way to get started using dbt, especially for data analysts who have never developed software using the command line before. We will keep improving the speed, stability, and feature richness of the IDE, as we have been all year long.
We also know that many people developing in dbt have a preference for local development, where they can use their favorite terminal, text editor, keybindings, color scheme, and so on. This includes people with data engineering backgrounds, as well as those analytics engineers who started writing code in the dbt Cloud IDE and have expanded their skills.
The new dbt Cloud CLI offers the best of both worlds, including:
- The power of developing against the dbt Cloud platform
- The flexibility of your own local setup
Run whichever community-developed plugins, pre-commit hooks, or other arbitrary scripts you like.
Some of the unique capabilities of this dbt Cloud CLI include:
- Automatic deferral of build artifacts to your Cloud project's production environment
- Secure credential storage in the dbt Cloud platform
- Support for dbt Mesh (cross-project
ref
) - Development workflow for dbt Semantic Layer
- Speedier, lower cost builds
Refer to dbt Cloud CLI to learn more.
-
Custom branch fix
If you don't set a custom branch for your dbt Cloud environment, it now defaults to the default branch of your Git repository (for example,
main
). Previously, CI jobs would run for pull requests (PRs) that were opened against any branch or updated with new commits if the Custom Branch option wasn't set.Azure DevOps
Your Git pull requests (PRs) might not trigger against your default branch if you're using Azure DevOps and the default branch isn't
main
ormaster
. To resolve this, set up a custom branch with the branch you want to target. -
dbt deps auto install
The dbt Cloud IDE and dbt Cloud CLI now automatically installs
dbt deps
when your environment starts or when necessary. Previously, it would prompt you to rundbt deps
during initialization.This improved workflow is available to all multi-tenant dbt Cloud users (Single-tenant support coming next week) and applies to dbt versions.
However, you should still run the
dbt deps
command in these situations:- When you make changes to the
packages.yml
ordependencies.yml
file during a session - When you update the package version in the
packages.yml
ordependencies.yml
file. - If you edit the
dependencies.yml
file and the number of packages remains the same, rundbt deps
. (Note that this is a known bug dbt Labs will fix in the future.)
- When you make changes to the
-
Native retry support
Previously in dbt Cloud, you could only rerun an errored job from start but now you can also rerun it from its point of failure.
You can view which job failed to complete successfully, which command failed in the run step, and choose how to rerun it. To learn more, refer to Retry jobs.
-
Product docs updates
Hello from the dbt Docs team: @mirnawong1, @matthewshaver, @nghi-ly, and @runleonarun! First, we’d like to thank the 15 new community contributors to docs.getdbt.com. We merged 107 PRs in September.
Here's what's new to docs.getdbt.com:
- Migrated docs.getdbt.com from Netlify to Vercel.
☁ Cloud projects
- Continuous integration jobs are now generally available and no longer in beta!
- Added Postgres PrivateLink set up page
- Published beta docs for dbt Explorer.
- Added a new Semantic Layer GraphQL API doc and updated the integration docs to include Hex. Responded to dbt community feedback and clarified Metricflow use cases for dbt Core and dbt Cloud.
- Added an FAQ describing how to migrate from one git provider to another in dbt Cloud.
- Clarified an example and added a troubleshooting section to Snowflake connection docs to address common errors and provide solutions.
🎯 Core projects
- Deprecated dbt Core v1.0 and v1.1 from the docs.
- Added configuration instructions for the AWS Glue community plugin.
- Revised the dbt Core quickstart, making it easier to follow. Divided this guide into steps that align with the other guides.
New 📚 Guides, ✏️ blog posts, and FAQs
Added a style guide template that you can copy & paste to make sure you adhere to best practices when styling dbt projects!
Upcoming changes
Stay tuned for a flurry of releases in October and a filterable guides section that will make guides easier to find!
-
Semantic layer GA
If you're using the legacy Semantic Layer, we highly recommend you upgrade your dbt version to dbt v1.6 or higher and migrate to the latest Semantic Layer.
dbt Labs is thrilled to announce that the dbt Semantic Layer is now generally available. It offers consistent data organization, improved governance, reduced costs, enhanced efficiency, and accessible data for better decision-making and collaboration across organizations.
It aims to bring the best of modeling and semantics to downstream applications by introducing:
- Brand new integrations such as Tableau, Google Sheets, Hex, Mode, and Lightdash.
- New Semantic Layer APIs using GraphQL and JDBC to query metrics and build integrations.
- dbt Cloud multi-tenant regional support for North America, EMEA, and APAC. Single-tenant support coming soon.
- Coming soon — Schedule exports (a way to build tables in your data platform) as part of your dbt Cloud job. Use the APIs to call an export, then access them in your preferred BI tool.
The dbt Semantic Layer is available to dbt Cloud Team or Enterprise multi-tenant plans on dbt v1.6 or higher.
- Team and Enterprise customers can use 1,000 Queried Metrics per month for no additional cost on a limited trial basis, subject to reasonable use limitations. Refer to Billing for more information.
- dbt Cloud Developer plans and dbt Core users can define metrics but won't be able to query them with integrated tools.
September 2023
-
CI updates
dbt Cloud now has two distinct job types: deploy jobs for building production data assets, and continuous integration (CI) jobs for checking code changes. These jobs perform fundamentally different tasks so dbt Labs improved the setup experience with better defaults for each.
With two types of jobs, instead of one generic type, we can better guide you through the setup flow. Best practices are built into the default settings so you can go from curious to being set up in seconds.
And, we now have more efficient state comparisons on CI checks: never waste a build or test on code that hasn’t been changed. We now diff between the Git pull request (PR) code and what’s running in production more efficiently with the introduction of deferral to an environment versus a job. To learn more, refer to Continuous integration in dbt Cloud.
Below is a comparison table that describes how deploy jobs and CI jobs behave differently:
Deploy Jobs CI Jobs Purpose Builds production data assets. Builds and tests new code before merging changes into production. Trigger types Triggered by a schedule or by API. Triggered by a commit to a PR or by API. Destination Builds into a production database and schema. Builds into a staging database and ephemeral schema, lived for the lifetime of the PR. Execution mode Runs execute sequentially, so as to not have collisions on the underlying DAG. Runs execute in parallel to promote team velocity. Efficiency run savings Detects over-scheduled jobs and cancels unnecessary runs to avoid queue clog. Cancels existing runs when a newer commit is pushed to avoid redundant work. State comparison Only sometimes needs to detect state. Almost always needs to compare state against the production environment to build on modified code and its dependents. What you need to update
-
If you want to set up a CI environment for your jobs, dbt Labs recommends that you create your CI job in a dedicated deployment environment that's connected to a staging database. To learn more about these environment best practices, refer to the guide Get started with continuous integration tests.
-
If you had set up a CI job before October 2, 2023, the job might've been misclassified as a deploy job with this update. Below describes how to fix the job type:
If you used the Create Job API endpoint but didn't set
"triggers":triggers.git_provider_webhook
, the job was misclassified as a deploy job and you must re-create it as described in Trigger a CI job with the API.If you used the dbt Cloud UI but didn't enable the Run on Pull Requests option that was in the Continuous Integration (CI) tab, the job was misclassified as a deploy job and you must re-create it as described in Set up CI jobs.
To check for the job type, review your CI jobs in dbt Cloud's Run History and check for the CI Job tag below the job name. If it doesn't have this tag, it was misclassified and you need to re-create the job.
CI update phase 3 — Update: Improved automatic deletion of temporary schemas
Temporary schemas are now being automatically deleted (dropped) for all adapters (like Databricks), PrivateLink connections, and environment variables in connection strings.
dbt Labs has rearchitected how schema deletion works for continuous integration (CI) runs. We created a new service to delete any schema with a prefix of
dbt_cloud_pr_
that's been generated by a PR run.However, temporary schemas will not be automatically deleted if:
- Your project overrides the generate_schema_name macro but it doesn't contain the required prefix
dbt_cloud_pr_
. For details, refer to Troubleshooting. - You're using a non-native Git integration. This is because automatic deletion relies on incoming webhooks from Git providers, which is only available through the native integrations.
-
-
Product docs updates
Hello from dbt's Product Documentation team (the stewards of the docs.getdbt.com site): @mirnawong1, @matthewshaver, @nghi-ly, and @runleonarun. What a busy summer! We merged 256 PRs between July 1st and August 31.
We'd like to recognize all of the docs and support from our partner team, Developer Experience: @jasnonaz @gwenwindflower @dbeatty10 @dataders @joellabes @Jstein77 @dave-connors-3!
We'd also like to give a special thanks to the 22 community members who contributed to the dbt Product docs for the first time. 🙏 Based on feedback from the dbt community, we made these changes:
- Added a permissions table for Enterprise accounts
- Added a browser session page that clarifies dbt Cloud’s browser session time and when it logs users off.
You can provide feedback by opening a pull request or issue in our repo or reaching out in the dbt community Slack channel #dbt-product-docs).
⚡ General docs projects
- Added the ability to collapse sections you’re not currently looking at. There were quite a few people who wanted this, and it bugged us too, so we were happy to get this shipped!
- Introduced the idea of “Trusted” adapters.
☁ Cloud projects
- The What’s new? product update widget is back in the dbt Cloud UI! The Docs team will begin updating the content to keep you informed about new features.
- Launched the re-released Semantic Layer beta docs, which introduces users to the new API, new guide to set up MetricFlow and the new Semantic Layer, as well as revamp the ‘Use the dbt Semantic Layer’ section for users.
- Updated Admin API v2 and v3 to help you understand the differences between them and which version includes the endpoints you use.
- To improve discoverability, the docs team made changes to the deploy dbt sidebar. We added cards and aligned better with the dbt Cloud UI and the way it’s used.
- Deprecated legacy job schemas in the Discovery API.
- Added a page to describe experimental and beta features in dbt Cloud and what you need to know about them.
- Added a section to introduce a new beta feature Extended Attributes, which allows users to set a flexible
profiles.yml
snippet in their dbt Cloud Environment settings.
🎯 Core projects
- We released dbt 1.6! We added docs for the new commands
dbt retry
anddbt clone
New 📚 Guides, ✏️ blog posts, and FAQs
- Check out how these community members use the dbt community in the Community spotlight.
- Blog posts published this summer include Optimizing Materialized Views with dbt, Data Vault 2.0 with dbt Cloud, and Create dbt Documentation and Tests 10x faster with ChatGPT
- We now have two new best practice guides: How we build our metrics and Set up Continuous Integration.
-
Removing prerelease versions
Previously, when dbt Labs released a new version in dbt Cloud, the older patch prerelease version and the latest version remained as options in the dropdown menu available in the Environment settings. Now, when the latest version is released, the prerelease version will be removed and all customers remaining on it will be migrated seamlessly. There will be no interruptions to service when this migration occurs.
To see which version you are currently using and to upgrade, select Deploy in the top navigation bar and select Environments. Choose the preferred environment and click Settings. Click Edit to make a change to the current dbt version. dbt Labs recommends always using the latest version whenever possible to take advantage of new features and functionality.
August 2023
-
Deprecation of endpoints in the Discovery API
dbt Labs has deprecated and will be deprecating certain query patterns and replacing them with new conventions to enhance the performance of the dbt Cloud Discovery API.
All these changes will be in effect on September 7, 2023.
We understand that these changes might require adjustments to your existing integration with the Discovery API. Please contact us with any questions. We're here to help you during this transition period.
Job-based queries
Job-based queries that use the data type
Int
for IDs will be deprecated. They will be marked as deprecated in the GraphQL explorer. The new convention will be for you to use the data typeBigInt
instead.This change will be in effect starting September 7, 2023.
Example of query before deprecation:
query ($jobId: Int!) {
models(jobId: $jobId){
uniqueId
}
}Example of query after deprecation:
query ($jobId: BigInt!) {
job(id: $jobId) {
models {
uniqueId
}
}
}modelByEnvironment queries
The
modelByEnvironment
object has been renamed and moved into theenvironment
object. This change is in effect and has been since August 15, 2023.Example of query before deprecation:
query ($environmentId: Int!, $uniqueId: String) {
modelByEnvironment(environmentId: $environmentId, uniqueId: $uniqueId) {
uniqueId
executionTime
executeCompletedAt
}
}Example of query after deprecation:
query ($environmentId: BigInt!, $uniqueId: String) {
environment(id: $environmentId) {
applied {
modelHistoricalRuns(uniqueId: $uniqueId) {
uniqueId
executionTime
executeCompletedAt
}
}
}
}Environment and account queries
Environment and account queries that use
Int
as a data type for ID have been deprecated. IDs must now be inBigInt
. This change is in effect and has been since August 15, 2023.Example of query before deprecation:
query ($environmentId: Int!, $first: Int!) {
environment(id: $environmentId) {
applied {
models(first: $first) {
edges {
node {
uniqueId
executionInfo {
lastRunId
}
}
}
}
}
}
}Example of query after deprecation:
query ($environmentId: BigInt!, $first: Int!) {
environment(id: $environmentId) {
applied {
models(first: $first) {
edges {
node {
uniqueId
executionInfo {
lastRunId
}
}
}
}
}
}
} -
dbt Cloud IDE v1.2
We're excited to announce that we replaced the backend service that powers the Cloud IDE with a more reliable server -- dbt-server. Because this release contains foundational changes, IDE v1.2 requires dbt v1.6 or higher. This significant update follows the rebuild of the IDE frontend last year. We're committed to improving the IDE to provide you with a better experience.
Previously, the Cloud IDE used dbt-rpc, an outdated service that was unable to stay up-to-date with changes from dbt-core. The dbt-rpc integration used legacy dbt-core entry points and logging systems, causing it to be sluggish, brittle, and poorly tested. The Core team had been working around this outdated technology to avoid breaking it, which prevented them from developing with velocity and confidence.
New features
- Better dbt-core parity: The Cloud IDE has better command parity with dbt-core, including support for commands like
dbt list
and improved treatment of flags like--vars
,--fail-fast
, etc. - Improved maintainability: With the new dbt-server, it's easier to fix bugs and improve the overall quality of the product. With dbt-rpc, fixing bugs was a time-consuming and challenging process that required extensive testing. With the new service, we can identify and fix bugs more quickly, resulting in a more stable and reliable IDE.
- A more reliable service: Simplified architecture that's less prone to failure.
Product refinements
- Improved
Preview
capabilities with Core v1.6 + IDE v1.2. This Loom provides more information.
Bug fixes
- Global page can become "inert" and stop handling clicks
- Switching back and forth between files in the git diff view can cause overwrite
- Browser gets stuck during markdown preview for doc with large table
- Editor right click menu is offset
- Unable to Cancel on the Save New File component when Closing All Files in the IDE
- Mouse flicker in the modal's file tree makes it difficult to select a folder where you want to save a new file
- Snapshots not showing in Lineage when inside a subfolder and is mixed cased named
- Tooltips do not work for Format and Save
- When a dbt invocation is in progress or if parsing is ongoing, attempting to switch branches will cause the
Git Branch
dropdown to close automatically
Known issues
{{this}}
function does not display properly in preview/compile with dbt-server
- Better dbt-core parity: The Cloud IDE has better command parity with dbt-core, including support for commands like
July 2023
-
Faster runs and unlimited job concurrency for Enterprise account
We’ve introduced significant improvements to the dbt Cloud Scheduler, offering improved performance, durability, and scalability.
Read more on how you can experience faster run start execution and how enterprise users can now run as many jobs concurrently as they want to.
Faster run starts
The Scheduler takes care of preparing each dbt Cloud job to run in your cloud data platform. This prep involves readying a Kubernetes pod with the right version of dbt installed, setting environment variables, loading data platform credentials, and git provider authorization, amongst other environment-setting tasks. Only after the environment is set up, can dbt execution begin. We display this time to the user in dbt Cloud as “prep time”.
For all its strengths, Kubernetes has challenges, especially with pod management impacting run execution time. We’ve rebuilt our scheduler by ensuring faster job execution with a ready pool of pods to execute customers’ jobs. This means you won't experience long prep times at the top of the hour, and we’re determined to keep runs starting near instantaneously. Don’t just take our word, review the data yourself.
Job prep time data has seen a 75% speed improvement from Jan 2023 to July 2023. Prep time took 106 secs in Jan and now takes 27 secs as of July.Jobs scheduled at the top of the hour used to take over 106 seconds to prepare because of the volume of runs the scheduler has to process. Now, even with increased runs, we have reduced prep time to 27 secs (at a maximum) — a 75% speed improvement for runs at peak traffic times!
Unlimited job concurrency for Enterprise accounts
Our enhanced scheduler offers more durability and empowers users to run jobs effortlessly.
This means Enterprise, multi-tenant accounts can now enjoy the advantages of unlimited job concurrency. Previously limited to a fixed number of run slots, Enterprise accounts now have the freedom to operate without constraints. Single-tenant support will be coming soon.
Something to note, each running job occupies a run slot for its duration, and if all slots are occupied, jobs will queue accordingly.
For more feature details, refer to the dbt Cloud pricing page.
Note, Team accounts created after July 2023 benefit from unlimited job concurrency:
- Legacy Team accounts have a fixed number of run slots.
- Both Team and Developer plans are limited to one project each. For larger-scale needs, our Enterprise plan offers features such as audit logging, unlimited job concurrency and projects, and more.