-
Notifications
You must be signed in to change notification settings - Fork 1.7k
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Future art for exposures #2835
Comments
Is there any reason that |
Also - would be nice to have a field for URLs linking to the exposure itself. |
Yes, we're hard at work on some product features that tie into
There totally is, and I missed it when documenting! This is on me, I'll update that now (dbt-labs/docs.getdbt.com#419). |
It would be nice if there was a I suppose this can already be done by something like |
@jtcohen6 An idea:
Elaborated on below. Thoughts? Problem (re)statementA DAG needs to tell us:
But take this current dbt DAG, and let
In this example, the DAG is unhelpful because it doesn't tell us what we need to know (lineage, and execution order). The ideaInstead Ideally the DAG look something like: And in sources.yml:
And more probably Hmm
|
We build views in Looker on top of dbt models, and we would like to use extensions to indicate this. We could use |
Couple questions:
|
@arniwesth - re:
I feel the same for the "cube" or "xmla dataset" layer of the Power BI stack. I like the idea of keeping type as enumerated (perhaps with an I like your idea of |
@jpau - Re your inquiry:
I'm not sure that this pattern can deterministically assure us that it is actually a DAG, or more specifically that the graph is acyclical. It looks like this approach would either have to allow circular loops (no longer a DAG) or else the initial run is not deterministic without directly synchronizing with the exposure. Is it necessary for the consumption of the output from the exposure to be in the same logical DBT project? Or could you have a DBT @jtcohen6 - Re your initial topic inquiry:
Per my comments above, I'd personally prefer DBT prioritize the static analysis and definitely-a-DAG properties which are critical to system stability. That said, I would love for project to be able to reference another project's exposures, and perhaps that could even be performed as adding a reference pointer on a Thoughts? |
Thanks @aaronsteers
I'm curious about this. This isn't obvious to me. Do you mind providing an example of where this style of dependency differs to others, in such a way that it creates a cycle?
Interesting idea! In the given example, absolutely. But I don't think this is practical if you have several
Splitting the project once is okay. I'd be concerned about it splitting it twice. I think anything beyond that would be opaque. |
Sorry - I realize I wasn't very clear. So there are basically two scenarios I can think of where an exposure feeds back into project models of the same project. Both certainly make sense, and I think I've seen both in real-world (non-dbt) projects. Taking the example of an
Notes:
Possibility to define exposures as operations: Another option which resolves the issues with the "pausing and polling" needed by @jpau - What do you think about this? |
@aaronsteers I agree with your separation into the two scenarios, and the fact that we'd be more interested in building out supportive tooling for the first scenario. I just want to bring into conversation another recent issue (#2894) on the subject of "3rd-party operations" about which dbt could or should know. A potential workaround for the time being is to have a placeholder model that stands in for the external process, allowing the dbt DAG to reflect your actual one. Separating out the workflows and orchestrating through a third-party tool would be the most robust, but if you have access to things like Snowflake external functions and |
At the moment exposures are purely a documentation feature. |
Hey @arniwesth ! I'm thinking about doing the same (hence why I was crawling exposure-related threads). Would you be open to sharing your experience with this approach and perhaps collaborating on a dbt package together? |
Hey @tnightengale. Unfortunately, I did not formulate this very well. What I actually meant, was that we just user Lookers "Create View From Table" to create models from dbt generated views/tables. It would be awesome if it could actually be automized, but it's not something we have looked into. Sorry for the confusion - I updated my comment to better reflect what we actually do. |
I really need |
I just wrote this in Slack:
And then I realised that there was no way to work out which stakeholder depends on that report. Might be a useful counterpart to the existing |
Would love to see a |
@juangesino - Thanks for your thoughts here - great to have a Tableau perspective. I like both of those ( |
from a slack conversation: @jtcohen6 came up with an idea to enable tracking of removed columns or changing data types in models that feed into exposures:
|
Hello ! It could be nice to have an 'exposure report' who would display for all exposure the status (if the source db are passing), the freshness and some tests. |
@juangesino I believe that #3404 can also help you define the Tableau relevant attributes under |
I don't like that the owner email is required. In my case, most of our consumers are internal to our team, and I only want to document the owner when it is external. I'd like some granularity in the type/name. For an application, I might want (structured) the name of the application and the name of the use within the application. I have an exposure where I unstructured these metadata into a name |
Is there any update on when more options for 'type' will be available? I'm particular looking for |
What was the idea behind having a fixed enumeration of possible strings here? AFAIK there is nothing in dbt that relies on these string values. But other tools using dbt exposure data would benefit from being able to specify their own types of exposures. Would it be acceptable to open a PR and make this a plain EDIT: just saw your previous comment:
Is this still relevant today? |
Thanks for the great thoughts in this thread, everyone! It's been ten months since launch—the first experimental stake in the ground, the first metadata-forward dbt feature—and together we're making exposures happen. In one of my comments above, I was making oblique reference to the very early stages of exposure status tiles, a dbt Cloud feature that my colleagues on the Metadata team just pushed into GA.
Some threads from above that I want to briefly pull on: Check for changesUsing SelectionSelecting exposures on the basis of type/tags/meta (@kgeis): I've been thinking about this too! As of v0.20, and the addition of
Relax required/limited properties
Today, we mainly use this value for grouping/categorizing exposures, in places like the dbt-docs site. As I mentioned above, I could also see it powering a selection method. So there is some desire to keep these standardized and validated— A couple of ideas:
Curious to hear your thoughts here!
|
@jtcohen6 Re-opening up this (well, still open) issue :-) What is your point/suggestion on the external actions/hooks being defined for exposures and triggered by dbt? I think this was already mentioned couple of times in this thread, e.g. in the context of testing reports/dashboards. Specifically in GoodData we would like to surface customers' reports as dbt exposures and perform semantic tests when underlying models change, ideally only for the reports which are affected by the changes. For this aspect we would like to utilize similar functionality as current "state" method. Is there any progress in thinking about this functionality (dbt running external commands, i.e. python scripts)? Other way how exposures could be made more useful in BI tools lineage use case is tracking of broken metrics/reports upon destructive operations in the database (table/column removals). Curently one can specify models in the Related to that (and also mentioned above) is the dependencies between exposures. The typical BI tool use cases would be quite simple, e.g. metrics -> reports -> dashboards. Is this something you still consider as desirable? Apologies if my questions/suggestions are too naive as I'm still familiarizing with dbt concepts :-) |
@jtcohen6 Looking forward to see the feature of defining exposure types. This will be a cool feature. Users get to define their own set of valid exposure types somewhere (in dbt_project.yml?). |
Has there been any update in making exposures ref-able or is there a plan in a future update? This is a feature I think would be very helpful in my team so we can visualize how all of our reports are made. |
+1 !!!! Looker specific usage: there is a functionality where you can extend explores with other explores. Ex:
So, the example is basic but hopefully explains the usage. Say, I don't want the tracking links info being present to all the users and only to, say, PMs so I have 2 explores where one extends/enhances already existing one(s) and the extension can go indefinitely same as dbt lineage. In simple terms, Since we have the ability to bring down the Documentation to dbt layer, it would be extremely helpful if we could reference exposures. Because, in this example, one exposure corresponds to one explore:
I hope it's clear enough and, PLEEEEEASE, give us this functionality🥸 Let us know if you move this fuctionality up in priority and the approximate deadline 🙏 |
Additional use case at Ludia/JamCity: We would like to define those downstream tables as exposure or external tables to reflect it in our DAG. But also have the possibility to put exposures (tableau dashboards) depending on other exposures (the downstream tables) so we can rebuild the DAG for the most important reports. Thanks a lot, |
I was looking into presenting some The use case is one in which we are trying to present & document queries that drill across transactional fact tables to pull in together different data and aggregate/whatever. This qualifies the notion of an analysis, but we want it to be better managed, described and potentially rendered into dbt docs (we like the freedom of |
I'd still be excited to make some of the changes mentioned here! In particular:
I'm going to convert this to a GitHub discussion, since that's what it's rightly been all along :) |
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
Describe the feature
What other properties should
exposures
get?tags
meta
meta
fields (e.g.owner
) to be required or top-leveltags
ordescription
type
options:maturity
optionsShould exposures be ref-able?
ref('my_exposure')
return?Describe alternatives you've considered
We're likely to keep these bare-bones for a little while. I'm still curious to hear what community members want!
Who will this benefit?
Users of the
exposures
resource type, which is new in v0.18.1The text was updated successfully, but these errors were encountered: