Synchronising Power BI to Metric Views with Tabular Editor's Semantic Bridge
By Advancing Analytics
Summary
## Key takeaways - **Metric Views Incompatible with Power BI**: PowerBI can't read from a Unity Catalog metric view. Those two will like not talk to each other, forcing a choice to migrate or maintain two copies of KPIs that get out of sync. [00:28], [00:36] - **Semantic Bridge Translates Models**: Tabular Editor's Semantic Bridge is a framework for translations between semantic models like Databricks metric views and Power BI tabular models via an abstract layer. It ports structure, facts, dimensions, measures, and common SQL-to-DAX patterns. [05:29], [05:31] - **Demo: YAML to Tabular Model**: A C# script in Tabular Editor reads a metric view YAML file, parses joins, dimensions, measures, creates tables, relationships, fields, and translates SQL expressions to DAX like sum of price. It populates an empty model instantly. [10:27], [11:44] - **Handles 80% Automatically**: It gets the 80% of models done—structure, tables, relationships, basic measures—flagging gnarly SQL/DAX for manual or AI rewrite. Even non-experts can sync with one button. [12:34], [13:45] - **January Release, Multi-Platform Future**: Semantic Bridge debuts in Tabular Editor's January release as MVP for metric views to tabular, with plans for bidirectional and multi-platform support via abstract hub. No more vendor lock or combinatorial translations. [17:26], [19:17] - **Solves Multi-Tool Chaos**: No company has one data platform—always multiple tools like PowerBI, Excel, Databricks, Snowflake. Semantic Bridge makes business metrics portable across them during endless migrations. [06:46], [07:08]
Topics Covered
- Semantic Bridge Enables Multi-Tool Portability
- Sync UC Metrics with PowerBI Effortlessly
- Self-Service Innovation Without Silos
- Abstract Layer Scales to Any Platform
Full Transcript
Hello, Spark fans. Welcome back to Advancing Spark, brought to you by Advancing Analytics, your favorite data and AI people. I am so excited to be
making this video. Finally, this has been months in the making. So, a little while ago, early this year, uh, Unity catalog metric views were announced. So,
we had this whole brand new idea of a semantic model living inside of datab bricks. But when we looked at it and we
bricks. But when we looked at it and we were like, well, okay, so I can I can do that, but then PowerBI can't read from a metric view. Those two will like not
metric view. Those two will like not talk to each other. And then you're presented with a problem of going, well, if I want to bring my semantic definitions into data bricks and use it
in Genie, use it in agent bricks and have all my richness of my data platform able to use my semantic measures. Well,
that means I can't use PowerBI or I got to keep the two in sync and that's going to be really painful. So, I had a wacky master plan. I spoke to my friends at
master plan. I spoke to my friends at Tabular Editor and went, can we build something? Can we get it working so that
something? Can we get it working so that you can suck all the good details from UD catalog and then push that automatically to a PowerBI semantic model and keep the two in sync? That is
my master plan. Now, they've been busy working away in secret and now have this whole idea ready to go. So, they now have it. We have a preview. Uh, I had a
have it. We have a preview. Uh, I had a chat with Greg from Tabular Editor just earlier this morning and yeah, I want to share a bit of that chat, share a bit of a demo about how it actually works. Tell
you what you can look forward to from January. You'll be able to actually link
January. You'll be able to actually link these two things up for the first time ever. And that is so cool. So, yeah. As
ever. And that is so cool. So, yeah. As
always, if you're new around here, don't forget to like and subscribe and then let's go and have a look.
Righty, Greg, welcome to the show.
Thanks for joining us today.
>> Introduce yourself a bit. Could like
tell us a bit about yourself?
>> Sure. I'm Greg Baldini. I'm one of the core developers with Tabular Editor and I've been working on language support as well as several new features. Uh, one of which I'm very excited to talk about with you today.
>> I mean, I've been waiting to make this video for so long. So this is this is very very exciting. Uh let me let me kind of just explain I guess the the problem how this started and then we'll get into the the crazy stuff you've been building.
>> Sure.
>> Okay. Cool. So we've got Unity catalog metric views this whole YAML defined semantic model that is now coming out in data bricks. So if you've been doing
data bricks. So if you've been doing things where you wanted some kind of contextsensitive measure so you can cut and slice all the things that we've been doing in a semantic model in things like PowerBI for a long time you can. Now
they do that in data bricks. So you can use Genie on top of it. You can plug it into agents. You can build agent bricks.
into agents. You can build agent bricks.
It's just all the rich stuff inside data bricks. You can plug into that. But that
bricks. You can plug into that. But that
is a problem because there's barely any company that doesn't already have some kind of a semantic model living somewhere else. If you're sitting there
somewhere else. If you're sitting there in PowerBI and you've got your your semantic model sat there with a rich pile of DAXs and calculations and things and then you go well actually I could
pull this upstream and use it in a wider variety of things but then I need to either migrate it make a choice and get rid of all the stuff I'm using that I love in PowerBI which I don't want to do
or I need to maintain two copies of all my KPIs and definitions and they're gonna get out of sync. I mean the whole reason why we do BI and warehousing is because of the problem of people coming with different definitions of the same
measure and it being organizational chaos >> and we don't want to do that. So how do we keep multiple semantic models in sync specifically how do we go from UC metric
views into a PowerBI model was the problem that I was like I know some guys that can help >> maybe a couple of them.
So I guess from that starting point from going I've got a UT metric view. How do
I how do I sync that up with my PowerBI semantic model kind of that was the problem that over some beers I poised the tabular editor crew and said fix this for me [laughter]
>> and uh yeah I mean that's basically where we started from the the question is you know we've got the the idea of the semantic model and the idea of the semantic model is the same. It's this
one place where we have definitions of business metrics and where we can go to to do our reporting. But the actual implementation of that semantic model is is very different. And so the the
challenge was with metric views, you've got this YAML definition that you're defining in the UC catalog. Uh and then with a PowerBI, you've got the semantic model that you're defining with PowerBI
desktop or using a tool like tabular editor and it's using this BIM or timal format. So the the formats are very very
format. So the the formats are very very different but the ideas are the same of facts, dimensions and then measures which are aggregations of those things.
And so that's where we kind of started off from. And we quickly realized that
off from. And we quickly realized that it wasn't just a onetoone mapping and it wasn't just a simple translation but there were actually a lot of reusable components and ideas in there. And so we
we started with this idea of metric views to tabular.
And as we were talking about it and we talked about workflows that we might want to do or the idea of going back the other direction, you really can't just do these onetoone mappings. And so what we started building and working on is
what we call the semantic bridge. And
this is more of a framework for doing these translations between semantic models. It's the the idea of the
models. It's the the idea of the semantic model and then specific implementation platforms like data bricks, like tabular. Uh and so that's what I've been working on uh since that
conversation over beers is uh this generic platform for migrations. And
what we've built specifically as the the first implementation of it is the uh metric view to tabular like you've just been talking about.
>> It's just uh nuts in terms of the power that that could actually be you So what that that kind of my original wacky idea of going can you just like translate these two things automatically
>> growing and turning into uh I I I coined the cheesy term of a BI babelish. this
kind of thing that can just pull from any semantic model, put it into a generic and then translate it to another one is is so powerful in terms of allowing people to break out of essentially there like vendor lock and
all these different semantic definitions of going you're going to use my language definitions, you're going to use my one and going well actually you should be able to use anything that you want and take it with you and it's the
portability of these rich metrics and knowledge and it's meaning business semantics aren't tied to a tool which is insanely powerful.
Yeah. And I mean I I know you know this, but uh I've spent most of my career in BI consulting and I've never met a customer that has one data platform.
Never.
>> It's always at least two, sometimes a dozen uh reporting tools, data warehouse, data lake layers, and even if you're trying to centralize on one, any sort of migration period, you still have
multiple during the course of a multi-year migration. So it's it's never
multi-year migration. So it's it's never a question of which one, and it's never a one-time migration. And it's always business users that want to deal with this data in the tool of their choice.
That tool might be PowerBI. It might be an Excel pivot table. Let's be honest, it's usually an Excel pivot table. Uh
but it might be anything in the data bricks world, but also Snowflake, uh Google, Amazon. All of these providers
Google, Amazon. All of these providers have visualization and data layers. And
the idea that business metrics can now be portable across them, like you were saying, that's huge.
best and all those historic migration projects like you're essentially playing a BI tool whack-a-ole. It's a while you're doing that migration like because everyone's frustrated there's a big migration they'll just grab another tool
and start using again. It's like it's a neverending journey of because the business shouldn't have to wait on large technical projects. They should just be
technical projects. They should just be able to react and fix the problems they need to which >> yeah it's it's an endless problem.
[laughter] >> All right. Very cool. So semantic bridge itself. So kind of that's the the name
itself. So kind of that's the the name of this uh feature coming into tabular editor that's going to allow people to do this translation starting off with EC metric views and kind of PowerBI models
and allowing them to talk to each other a bit more seamlessly.
>> Yes. And the idea is the structure is one of the most important parts. So
again the idea of facts dimensions measures being able to port that structure is one big part of it. The
other part of it is the business logic itself. uh the idea of these
itself. uh the idea of these calculations and aggregations uh and they're they're both hard problems. The structure is uh I'd say a little bit more approachable, but we're tackling
both.
>> Yeah.
>> I was going to say maybe it'd be useful to kind of talk about it as we look at it.
>> Yeah. Yeah. Yeah. We if we can see it, if it's not just a thing like this doesn't really exist. This sounds too good to exist. I think we need to take a look. [laughter]
look. [laughter] >> Yeah.
>> Let me let me go. forgot I have control of the stage. Let me bring it up.
[laughter] >> Sure. So, uh what we're looking at here
>> Sure. So, uh what we're looking at here is a metric view. Like I said, this is a YAML definition. I know you've seen this
YAML definition. I know you've seen this before. Uh but what it defines is these
before. Uh but what it defines is these structural components of a model. We've
got things like joins here. A join has a name. It has a source table and it has
name. It has a source table and it has uh an on condition saying how these two tables are going to be related to each other. You've got the idea of
other. You've got the idea of dimensions. Each of these is a field
dimensions. Each of these is a field coming from one of the tables. uh and
it's got an expression that can define how you actually determine what the value of that field will be. And you've
got measures. Uh measures are these business aggregations of interest that again things with names and expressions defining exactly what that business logic is. And so like I said, the
logic is. And so like I said, the structure is what these things are and what their names are. But the
translation is being able to say things like here's a SQL snippet of a join or here's a SQL snippet of an aggregation and being able to move these across platforms as well.
So this is the the metric view, but what we want to be able to do like we've talked about is getting from a metric view into a tabular model and then therefore being able to use it with PowerBI. So I'm jumping here to tabular
PowerBI. So I'm jumping here to tabular editor. And I've got this loaded up with
editor. And I've got this loaded up with an empty model. You can see there's nothing actually in this model on the right. It's just an empty skeleton. And
right. It's just an empty skeleton. And
then as we're looking here, we've got a little snippet of C# that I've written.
And we're actually going to be building this into a file menu. So you don't even need to deal with this uh snippet of C#.
But what this is doing is it's calling into our semantic bridge. And the
specific implementation that we want to use is a metric view. And we want to import to the tabular model from a file.
And so what I need to do is I need to say I want to use this file path to that YAML that we were just looking at to import it into this model that I've currently got open. And then what we
need is a little bit of detail about the data bricks source. So uh what your URL and what the path to the database is on the data brick side and then we also emit diagnostics. Uh but because this is
emit diagnostics. Uh but because this is a demo we won't see any negative diagnostics in this. Uh but all this is is a little bit of metadata about where the file lives and where the database lives and how we're importing. And what
we can do is just click run script right here. And that will read that YAML file.
here. And that will read that YAML file.
It parses all of those objects out of it. And you'll see that in just a moment
it. And you'll see that in just a moment it will create tables and relationships based on that. So we saw a join and we see the relationship. We saw that there was a customer dimension and a fact
table and within each of these we see the fields created. We define properties like that. This is a key field. You can
like that. This is a key field. You can
see that because it's bolded and it's part of the relationship. We define the measures and if I double click on one of these measures, we'll see the expression. We actually are translating
expression. We actually are translating from that SQL snippet to a DAX snippet.
And I I want to be upfront here. We
can't translate all SQL to all DAXs or the other way around. But we can identify common patterns and give you the ability to automatically do that because this is not what it looked like in SQL. If we look in SQL, it doesn't
in SQL. If we look in SQL, it doesn't have these single quotes. It doesn't
have these square brackets. But over
here, it's just this count of the key or this sum of the price. And we are able to translate that into the correct DAX syntax.
>> Cool. So there loads and likes of uh basically loads of simple models. This
will just be straightforward. Hit a
button, go through. If there's something real gnarly complexity, people have got their giant page of nested calculated scripts and decks. That's probably not what they're going to be these nice easy
easy migrate candidates.
>> But we just want to go like what's the >> like get the 80% out the way. The models
where people have done the hard bit upstream. They've done it in their data
upstream. They've done it in their data modeling. Most of the complexity is
modeling. Most of the complexity is taken care of by the actual fact dimensional structure.
>> Yeah. then happy days, easy path. Just
hit a button and sync one to the other.
>> And this is also u something that we've talked about is the idea of the structure versus the the snippets of code in there. And
>> really simply like the structure regardless of what gnarly SQL you've written in there or whatn gnarly DAX the fact that the measure exists or that the table exists that's something that we can translate and uh you know right now
this is in MVP so we don't have uh full facilities for that sort of after the migration assistance but the idea is that we could bring all the structure over and we could flag something as here's some gnarly SQL we couldn't
translate and then that's an opportunity for you as the operator as the user to look at this and say I know how to rewrite this and you could just rewrite it in yourself or maybe you could hook
in an LLM or an AI that can take a stab at translating gnarly SQL to gnarly uh to gnarly DAX but the structure is all there and you know that the easy pieces the tables the relationships uh the
basic measures which like you said is probably 80% of the model that's all done no problem and you can focus just on that that uh important business logic without having to do all the drudgery of making every single column making sure
that you rename things with a friendly name in the same way all that's handled for you.
>> Just giving you the the structure and the process and rather than someone having to just assume that two different developers who speak different language is going to build things in the same way, it's a giving you this way of maintaining it, >> you know. So,
>> yes, >> there's lots of like logistics of how you need to plug this in, you know, how if someone makes a change to the metric view, how how do you make sure that they know to open table and do that sync?
There's obviously going to be organizational things to try and actually keep these in sync, but it's just so much more structured and measured and controlled than just assume it's going to happen.
>> Yeah. And it's also, you know, if this is just one line of script or like I said, we're going to put a menu button in there. It's also something that's a
in there. It's also something that's a translatable process much more easily.
If you're working on this, I know Simon, you could sit down with a metric view and with a tabular model and you could make some changes to one and make sure they're reflected in the other. You
could do that, but you couldn't do that for a whole organization every day because eventually you're going to need to take a break or there just going to be too many models. And so the idea that you can have a developer who knows metric views and doesn't need to care as
much about the tabular end, but they just click a button or run one line of script and then they get the the tabular model out the other end. It makes that repeatable and it makes it trainable. I
don't need to teach someone both of these modeling layers. I need to teach someone one and a button. And that's
it's going to happen more and more honestly. Uh so all of the metric views
honestly. Uh so all of the metric views as it stands currently you go into catalog you you have a bunch of tables and you go click a new metric view and
it pre-calculates it suggests a load of metrics. It it's kind of half vibe coded
metrics. It it's kind of half vibe coded itself in terms of how it puts out. So
>> so even the people building the metric views might not know how to build metric views but they're just getting something out that they know how it works and they could check it and go yeah this does what I needed to do. And then being able
to make sure that just isn't then a siloed part that's not part of the rest of the enterprise semantic uh stack.
>> Yeah.
>> Yeah. And how often do you come across that where someone has just made something work and they don't really know all of the ins and outs of what the appropriate platform is or what the enterprise standard is, but they made
something work and it's good. It's
providing business value. Then someone
else sees it and they say, "Oh, I want that, but I want it over here.
And that's the the challenge you see with self-service all the time. And so
especially for for that sort of model that's been developed to meet a specific need, but then all of a sudden you need it in multiple places. Uh that's the sort of workflow and the sort of challenge we're trying to address with this is making sure that you can build
where you're comfortable, but you can still consume from any tool that you need.
like my my data hippie philosophy, right, is kind of if you try and restrict people from doing this stuff, they're just going to do it where you can't see it, you know, whereas actually allowing people to build something
scrappily, get it working, get it to a point where they're like, "This solves the problem that I have." And then giving them an easy route to getting that into a more operationalized state that that allows people to innovate, it
keeps people curious, allows people to do more. But you've built a way to then
do more. But you've built a way to then control it. You can't have it completely
control it. You can't have it completely all controlled, but if you say no, you're not allowed to do it, then they just won't tell you when you they actually do do it.
>> So, yeah, completely believe it.
[laughter] >> Okay. So, if people people are looking
>> Okay. So, if people people are looking at this going, "That is fantastic. I
want this." Like, when can people actually see it and start using it and get their hands on it?
>> Yeah. So, it's going to be in our January release for tabular editor. I
don't have a specific day in January that's going to be coming out, but we're going to be finalizing all of our features and doing our code freeze at the end of the month here and then doing testing and release in January. So,
they'll certainly be able to see it in the new year.
>> Very cool. So, people should be spending the entirety of their December time off building a an elaborate maze of metric views without worry knowing that they can synchronize everything up come January. And then we'll have a nice
January. And then we'll have a nice happy time.
>> [laughter] >> Yeah, it'll be a great new year and I really look forward to seeing what sort of gnarly things people build and turning that into feature requests and new features. You know, like I said,
new features. You know, like I said, this is our MVP. We've tackled uh the basic workflow, but we're looking at how do we extend it? And I can come up with lot of ideas, but I I think we'll
probably hear a lot more useful ones from the community, from users.
>> Very cool. So, you've got kind of got two two future directions. You've got
kind of extending the features, kind of getting more plugged in. we're allowing
it to do more and more, but then also looking at other semantic models and bringing other things into it and just creating it. So, it's not just like
creating it. So, it's not just like two-way between two particular systems, but actually five, six, 20 ways as we go. Anywhere you've got a semantic
go. Anywhere you've got a semantic model, you should be able to plug it into your middle piece and then translate it to anything that you've built around it. Right.
>> Yeah. So I mean if you want to bring me back for I don't know five hours I can go into all the detail you want of the the detailed architecture but what you've described is at a high level exactly correct the the semantic bridge
what we've built is this abstract layer so that we can go from the metric view like we saw and before it goes to tabular it's actually going through this middle layer of an abstract semantic model and so we define all of our
translations as one-way translations either to or from the that abstract layer and what that allows us to do is do multiple targets like you said. So
I've built the code. What we saw uh was going from metric view to the abstract model and then from the abstract model to tabular. If tomorrow we wanted to
to tabular. If tomorrow we wanted to tackle something else, all we need to do is get that one thing to the abstract model and it can go to tabular. And once
we build those translations from the abstract layer to a specific concrete platform, that's where we get the power because once we can go from abstract model to tabular, we only need to get to
the abstract model from any other platform. And when we go from the
platform. And when we go from the abstract model to metric view for example as soon as we add that additional platform once we get it to the single target of the abstract model then we'll be able to target both of
tabular and metric view so that instead of having to do all these combinatorial onetoone translations we get this centralized hub and we can onboard new platforms very rapidly. I'm really
excited about that part of it as well which >> is why I'm calling you guys the new BI babelish. are [laughter]
babelish. are [laughter] >> translating one to everything and that is incredibly powerful.
>> All right, >> just helping the data hitchhikers along their way.
>> But thanks for joining me and super excited for this actually going out and people getting their hands on it and then giving you a giant pile of future features and additional things you want
to do. So yeah, it's very exciting.
to do. So yeah, it's very exciting.
>> Very much so. Thanks for having me on.
>> So there you have it. So, tabular editor has a semantic bridge that allows you to universally translate between firstly
Unity catalog metric views through to panel semantic models, but in the future literally any semantic model, turn it into this generic definition of a
semantic model and then push it out there and break free from any kind of boundaries of whatever language of the BI tool that you're using.
So so cool. Definitely my original idea of like, can you just build me a translator has turned into this mad genius idea of building a BI Babel fish
that can talk to literally anything. Uh
so yeah, interesting stuff. So from
January, I'm expecting we're going to be helping clients build those migrations, build a take my PowerBI model, lift and shift that into a UC metrics view, but
keep the two in sync so you don't have to get rid of your met your semantic model. So many things we can do there
model. So many things we can do there come January. And yeah, we'll we'll be
come January. And yeah, we'll we'll be putting some more content around. We're
going to share some of that information.
We'll share some of the more bits of how it works. You do need tabular editor for
it works. You do need tabular editor for this whole magic to actually fit together. But tabular editor is a great
together. But tabular editor is a great tool for actually building and managing uh semantic models. So that's fine. It's
a great tool that we have anyway. So
yeah, interesting stuff. That is all I want to take you through today. As
always, don't forget to like and subscribe and I'll catch you next time.
Loading video analysis...