Fusion Diaries: Local Preview Edition! (2024-08-21) #585
Replies: 1 comment
-
|
@dataders That you for you update and your enthuseasum. I would ask for one point of clarity in the comunicacion about dbt Fusion capabilities: clearly label and identify enterprise features and non enterprise features. From the licensing FAQs:
As a team that is currently on dbt Core and do not know when or if we would be a paying dbt customer it is imperative that we are able to clearly know what features we would have access to with Fusion so that we can make a determination of value. As we have a team greater than 15 I would put the VSC Extension and its features into the category of enterprise features and while Fusion enables awesome features like incremental compilation, it appears that it is the extension that provides them. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
New versioning scheme: who dis?
Announcement from yesterday: Fusion and the dbt VS Code extension are now in Preview for local development
Read the blog if you haven't already! Not only are there feature announcements, and there's context on how we're tracking Fusion readiness for teams using Core today, as well as guidance on which projects are a great fit for Fusion today. There are also guidelines detailing who the project works best for.
If you haven't tried Fusion yet, I highly encourage you to try
dbt init's new--fusion-upgradeThere are many killer features landing this week that I'll go into more detail on. First some highlights and an abbreviated changelog.
depsand logs experience(Abridged) Release notes
FYI, any links that are just numbers are links to our internal private repo, not the public-facing dbt-fusion repo
2.0.0-preview.3 - Schema compatibility and hydration refinements
2.0.0-preview.2 - Strict mode by default and bug fixes
2.0.0-preview.1 - incremental compilation, `dbt init --fusion-upgrade`, better logs, relation caching
🎯 Major Features:
dbt onboardcommand with step-by-step guidance #5104📊 Relation Cache & Performance:
🛠️ Developer Experience:
dbt initcommand #5143🔧 SQL Engine Enhancements:
🐛 Critical Fixes:
2.0.0-beta.66 - Multi-resource selection and compilation improvements
dbt initwith --fusion-upgrade flag #51512.0.0-beta.65 - VS Code themes, better spans, bug fixes
🎯 Core Features:
dbt initprofile handling #5018⚡ Performance & Architecture:
🔧 Adapter & SQL Improvements:
Big rocks
Strict mode
If you've tried Fusion, you've likely seen warnings that start with:
warning: (will error post beta).With today’s preview announcement we’re officially post-beta, so these warnings will now become errors.
For more context on why you’re seeing errors, check out the "What is the dbt language?" section of the May 2025 dbt Core roadmap post and dbt-fusion#401, a more detailed guide for package maintainers.
dbt-autofix can remediate virtually all of these errors and the changes made should be backwards compatible with dbt Core and the latest version on the dbt platform.
In the event that you cannot resolve an error—as might be the case for parsing errors encountered in packages—you can set the below environment variable to revert the errors back to non-blocking warnings. However, this is not a recommended long-term approach.
Please reach out in the event that you are unable to resolve the parsing errors!
Package compatibility
Given the above-described strict mode, a large concern was that users would be blocked by conformance errors stemming from packages. Not a great scenario when users cannot unblock themselves!
dbt-autofix deprecations --include-packagesis a great stopgap, but isn't durable, as the changes are overwritten every time deps are installed.Fortunately, we've made a lot of headway towards getting the most popular packages conformant with the new authoring layer.
The real heroes here are the Fivetran Quickstart Data Models Team. A huge shoutout to @fivetran-joemarkiewicz @fivetran-jamie and the rest of the team to ensure users of their dozens of packages have a smooth experience on Fusion. We couldn't have done it without y'all.
Polish on
dbt depsRelated to the above-mentioned new package versions.
depswill now tell you if there's a newer version of a package available.If you see newer versions, you should upgrade ASAP to ensure your project works with Fusion local preview!
Incremental compilation!
This is my personal favorite new feature.
To see what causes me to make the below face, check out this unboxing video of sorts where I explain the purpose of incremental compilation and try it for the first time. It works exactly as expected! What a time to be alive!
Hugely improved logs (with more polish to come!)
We've entered a new world where Fusion logs have both:
If you have anything more you'd like to add, please check out this discussion and add your feedback if it hasn't yet been mentioned there.
dbt-fusion#584: UX Feedback on Logging and stdout
a new onboarding flow with
dbt init --fusion-upgradeWe have a very slick new onboarding wizard that goes beyond dbt Core's
initin that it also:profiles.ymlfor you if adbt_cloud.ymlis detected for youVS Code Extension: Go To Source, a new sidebar, and dbt color themes!
Reporting exact locations (i.e. spans) in YAML files is one of the big reasons as to why we needed to evolve dbt's authoring layer.
The payoff? You can now "Go to Definition" on
source()macros in models just as you can withref(). Check out the below recording!go_to_source.mov
Windows officially supported!
All summer Windows users have been patiently awaiting the announcement that it should be ready for them!
Good news, Tyler S (and all other Windows users) -- give it a go and shout if something is amiss!
Last, there's 3 custom dbt color themes that now ship with the extension. Check them out! I'm personally a big fan of the "Fusion theme"
🐉 Here be dragons
Dragon vanquished: spammed Oauth browser tabs in Snowflake!
Our adapters and driver team has done a huge amount of work zeroing out issues with External Browser authentication in Snowflake.
Community member Danielle had a long-standing issue that she reports that today is finally resolved thanks in large part to @VersusFacit and @felipecrv's dogged efforts to stabilize the upstream Snowflake Go SDK.
Dragon: spans spans spans
We've been using the word "span" to mean the location in your project where errors occur.
In the below error, the span says that the error happens on line 5, on the 5th character from the start of the line.
We've put a lot of work in the past few weeks to improving spans in addition to stack traces of errors as well.
It's still not perfect, so please shout when you see something amiss.
A great example is dbt-fusion#555 reported by @pempey where his error message was decidedly unhelpful!
He was getting the below error message which was hard to figure out! We've got a PR up to improve this so it tells users exactly the place where dbt Fusion fails to parse.
Dragon: Sensemaking added complexity
Fusion now has a compile cache, a relation cache, and fancy logging by default. These are all features that simplify your life when they work as expected, but they can be hard to debug when things go awry. We plan to focus our efforts on improving this experience over the coming weeks. Reach out in Slack if you see something strange.
🤔 Looking for feedback
Have you been thrown by the lack of explicit support in Fusion for snapshot's
target_databaseandtarget_schemaconfigs? Please respond to Elias's thread in Slack! We want to make this right, but there's some nuance.Also, I want to reiterate that we're looking for feedback on logging UX!
dbt-fusion#584: UX Feedback on Logging and stdout
👓 Stuff you should
readwatchCheck out this great talk from another, more educated Anders on how modern compilers work. Not only is incremental compilation now a requirement, but it also must integrate seamlessly into a developer's tooling. With the dbt VSCE & LSP, this means features like "Preview CTE" and Go to Definition.
My own brain told me that this video would go way beyond my education/intelligence, but I found it very informative and was able to make many connections to Fusion's ability to "compile" and understand SQL.
Anders Hejlsberg on Modern compiler construction
🏁 Made it to the meme
It’s one thing to dream about a world where analytics engineers have SQL understanding at their fingertips. It’s another to spend
daysmonths squashing hard bugs to make this dream a reality.But you know what makes it all worth it? That's right: it's you, dear reader! Improving the DX of data practitioners is why I get out of bed every morning. It's a tremendous privilege, and all of here at dbt Labs are so grateful for the opportunity.
Until next week!
Beta Was this translation helpful? Give feedback.
All reactions