Replies: 38 comments 5 replies
-
Is there any reason that |
Beta Was this translation helpful? Give feedback.
-
Also - would be nice to have a field for URLs linking to the exposure itself. |
Beta Was this translation helpful? Give feedback.
-
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). |
Beta Was this translation helpful? Give feedback.
-
It would be nice if there was a I suppose this can already be done by something like |
Beta Was this translation helpful? Give feedback.
-
@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
|
Beta Was this translation helpful? Give feedback.
-
We build views in Looker on top of dbt models, and we would like to use extensions to indicate this. We could use |
Beta Was this translation helpful? Give feedback.
-
Couple questions:
|
Beta Was this translation helpful? Give feedback.
-
@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 |
Beta Was this translation helpful? Give feedback.
-
@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? |
Beta Was this translation helpful? Give feedback.
-
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. |
Beta Was this translation helpful? Give feedback.
-
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? |
Beta Was this translation helpful? Give feedback.
-
@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 |
Beta Was this translation helpful? Give feedback.
-
At the moment exposures are purely a documentation feature. |
Beta Was this translation helpful? Give feedback.
-
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? |
Beta Was this translation helpful? Give feedback.
-
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. |
Beta Was this translation helpful? Give feedback.
-
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 |
Beta Was this translation helpful? Give feedback.
-
Is there any update on when more options for 'type' will be available? I'm particular looking for |
Beta Was this translation helpful? Give feedback.
-
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? |
Beta Was this translation helpful? Give feedback.
-
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!
|
Beta Was this translation helpful? Give feedback.
-
@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 :-) |
Beta Was this translation helpful? Give feedback.
-
@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?). |
Beta Was this translation helpful? Give feedback.
-
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. |
Beta Was this translation helpful? Give feedback.
-
+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 🙏 |
Beta Was this translation helpful? Give feedback.
-
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, |
Beta Was this translation helpful? Give feedback.
-
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 |
Beta Was this translation helpful? Give feedback.
-
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 :) |
Beta Was this translation helpful? Give feedback.
-
It would be awesome to allow exposures to be enabled/disabled per dbt target. We have a multi-region deployment, where some models are enabled for certain targets, but not all. When we tried to implement exposures, we ran into issues where the exposures would raise The only workaround we could see is enabling all models across all targets, but that's less than ideal. |
Beta Was this translation helpful? Give feedback.
-
+1 to being able to ref exposures! Several dbt customers have asked about this during onboarding sessions. |
Beta Was this translation helpful? Give feedback.
-
Being able to reference exposures would be great for a BI-tool use case I have. Superset has 3 entities:
If it was possible to reference exposures, I'd build a lineage that would look like: Not being able to reference exposures leaves the only option — to link dataset, chart, and dashboard exposure to a table. This produces lineage visualization that is less intuitive to use. |
Beta Was this translation helpful? Give feedback.
-
I'm going to jump in and add my vote to being able to specify custom exposure types. I do think having a controlled vocabulary for exposures is a good idea, so maybe there could be a config specified in dbt_project.yml that lists additional allowed exposure types? And then those lists of allowed exposure types could also be shared/inherited across projects/packages. That way each project could specify custom exposure types (organized & surfaced on the dbt generated docs) that are relevant to that particular project/organization. |
Beta Was this translation helpful? Give feedback.
-
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.1Beta Was this translation helpful? Give feedback.
All reactions