Top
Best
New

Posted by thingsilearned 12 hours ago

Charts built for Chat(dbtcharts.com)
217 points | 66 commentspage 2
chupchap 2 hours ago|
Okay nice chart, but can I click in and filter into the data? Visualisations are not what a BI tool does; it's just the tip of the iceberg.
RobGoretsky 5 hours ago||
Congrats on the launch! As someone who as led BI teams for many years, this looks great.. but - and you know this too, I’m sure - visualizations are only a small piece of the BI tool value prop. There’s governance, access controls, interactivity, and connectivity to semantic layers. The examples here show raw SQL but in reality we’d want something more abstract - names of dimensions and measures would probably be part of it.

So, are those other pieces going to be part of dbtTran Cloud?

data_ders 4 hours ago||
hey -- Anders here, I've been helping the dbt Charts team. I loved this list you've enumerated here

> There’s governance, access controls, interactivity, and connectivity to semantic layers

I'd add to that list as well: KPIs, dropdowns, text boxes, theming, shared data sources.

If you're familiar with Vega-Lite [1], I like to explain dbt Charts as the Vega-Lite but for BI, in that it is a language that specifies all of the components of BI.

> are those other pieces going to be part of dbtTran Cloud?

Certainly there are some features that are more conducive to being offered as a managed service. However, we've built this enterprise BI tool backwards in that we've started less with commercialization in mind, but rather laying the groundwork in the language and OSS project, so that we need not reinvent the wheel over and over again.

I'm hand-waving here about a future that doens't yet exist. But in theory dbt Charts could be extended in the front end to allow for not just SQL or SL metric support, but any query language. Same for the backend, we dbt Charts can render to png and html today, but other formats are also possible!

[1]: https://vega.github.io/vega-lite/

thingsilearned 5 hours ago||
Yup! Big plans for deep semantic layer interaction
engrav3er40 9 hours ago||
This looks really slick! I was building something similar, so visuals are re-useable artifacts that external services know how to render, where we ask agents in whatever the interface is, slack, team's other agentic harnesses etc. and the agents receive the spec from the service, in this case dbt charts. if there was a unified spec that was agreed upon these third-party harnesses and apps would all speak the same charting language which would be super cool. I haven't read through it in detail but how does this differ from something like https://github.com/vega/vega-lite
mollifier14 9 hours ago|
We actually use vega-lite under the hood. vega-lite is vast tool set to build charts with static data. dbt Charts adds a whole layer on top of that, which is dashboards with repeatable SQL queries. Also dbt Charts comes with a lot of opinionated chart style ideas. So vega-lite is a toolbox for chart assembly, and we use that toolbox to build dashboards.

On the standardized charting language, that would be the dream. All agents giving the same spec when they want to build a chart or dashboard, and then having different renderers of that. That is a steep goal. Such a language would need to be simple but still extremely versatile. I'm not sure that combination exists yet. Our language is simple and fairly versatile, but not as versatile as vega-lite itself, or JavaScript code even. Maybe we can evolve in that direction though

crabmusket 6 hours ago|||
What do you think about GGSQL, or is that not entirely aligned with what you want? They also produce vega-lite JSON as output.

https://ggsql.org/

data_ders 4 hours ago||
I love ggsql, the team behind it, ggplot and the tidyverse in general!

I've been mulling extending dbt Charts to support ggplot, and will likely reach out to the team about this in the next few weeks.

The difference is that Vega-Lite, ggsql, ggplot2 are designed to create a single chart. Yes, you can use facet_wrap() to great a series of charts based on a particular variable, but arguably that's still one chart!

What's missing that is table stakes for a BI dashboard: KPIs, text boxes, dropdowns, data sources, governance, and how the charts are arranged on the page and in relation to one another.

In the next few months we hope to ship a JSON schema that represents a dashboard in the same way that a VegaLite does for a single chart.

Does that make sense?

engrav3er40 8 hours ago|||
https://openai.com/index/put-data-to-work/ was a compelling demo for me, being able to interact with a artifact and contextually EDA on a series or outliers is lowering the barrier to entry for BI exploration. I think meeting engineers where they work and being flexible and open sourcing these capabilities is really great to see
jp_monteiro 3 hours ago||
dbt/Fivetran announces that they will unbundle BI by bundling it with their ELT solution. Ironic to say the least.
marojejian 11 hours ago||
Nice to see something built for AI that's supporting both openness and interpretablilty.
xnx 10 hours ago||
Is this associated with dbtlabs?
georgewfraser 10 hours ago|
Yes this is a dbt product - will be in the dbt cli soon, we shipped it initially as a separate tool while it’s in preview.
carterschonwald 8 hours ago||
repeat after me: yaml is not a programming language. (boo, hn strips emojis, i should know that)

very disappointed that their domain specific language is just yaml. conditionals and variable binding become insane war crimes when yaml comes to town. you have a friggin llm, do better

and when we computer folks see the word language its implied that its a computing on computers language not a friggin data format.

edit: the yaml to avoid complexity that should live in the sql side can back fire, some folks I was working with last fall were evaluating if a yaml based OLAP tool would work for them, and there were some pretty gnarly gotchas from a yaml based approach. Secondarily, theres a real case to be made that having the data linkages not visible in the charting layer means that groups of related plots with different axes wont have the right data linkage without forcing a lot more ETL for what should be a quick plot if the data already fits in memory.

Evidlo 7 hours ago||
what would you have chosen for your DSL? Ideally something not from scratch
carterschonwald 6 hours ago||
i'm not sure if that caveat is sensible :)

theres actually a very important reason you want it to be an actual embedded dsl or tiny programming language!

The reason why llms can code at all is the hugeeeee amount of RL based on the loop of 1 "write code", 2 get compile time or runtime errors,3 fix it and iterate. Data file formats dont have that feedback loop so models will fall off the rails faster. Writing code that fits a latent adhoc schema just wont work as well, or will require burning a lot more context.

from that perspective, it could just be an EDSL little library in the host language, or it could be a friggin little custom language with an interpreter and good error messages.

thingsilearned 4 hours ago||
Oh to be clear

> dct validate <file.yml>

Or any of the other commands that read the file will quickly fail with any syntax or SQL issues. It’s not just an open schema.

thingsilearned 7 hours ago||
Fair hit on "language". I keep forgetting YAML stands for "YAML Ain't Markup Language". What we built is a declarative spec written in YAML, and that's deliberate. Think of it as HTML for boards rather than a programming language. The tradeoff is readability and structure versus flexibility.

That lack of flexibility is actually a feature for one of the bigger problems we're solving: lineage, or knowing where a number came from. If the chart layer can't transform data, the logic stays in SQL, where you can version, test and audit it.

It's also a choice about who this is for. The data community already works in SQL, Jinja and YAML every day, so there's no new language to learn.

helloitsmet00 8 hours ago||
How is this distinct from something like Mosaic (https://idl.uw.edu/mosaic/spec/)?
verdverm 3 hours ago|
Man, I didn't think anyone would out yaml helm, but here we are not just templating invisibly scoped files (yaml), but also SQL within them?

Looking forward to the yaml confusion when helm/dbt both see their default "charts/" directory in the same repo, or the dbt chart is set as a config map so it can be updated without rolling a new version of the full app... helm_argo is already a nightmare

rant aside, this does look super useful, and I do have CUE to help with the yamhell, but I may still prefer js/ts options so I can dynamically change the chart (like user clicking a dropdown for a different set of data). Sounds cool until the "dynamic" part of the chart shows it's limitations in crafting your ideal UX

I'll definitely be taking this for a spin, gets at that unbundling and "I need a quick chart" situations

More comments...