HeadlinesBriefing favicon HeadlinesBriefing.com

dbt Charts: Open-Source-deklarative Dashboards

Hacker News •
×

Wir stellen dbt Charts als Open Source bereit, eine deklarative Sprache für Dashboards, damit selbst die Dashboards, die du im Chat mit einem Agenten erstellst, governbar sind. KI für Daten ist da, und die lange versprochene Self-Service-Analytik findet endlich statt. Jeder mit einer Datenverbindung kann an einem Nachmittag einen Bericht per Chat entstehen lassen, und die ersten Ergebnisse sind beeindruckend.

Die Reibungen zeigen sich jedoch schnell. Standardmäßig verwandelt ein Agent einen einfachen Bericht in einen Haufen Dateien: HTML, CSS und Java Script, ein paar Chart-Bibliotheken und eine React- oder Streamlit-App, sobald sie live sein muss. Ein Ergebnis bis zu seiner Quelle zurückzuverfolgen bedeutet, es durch mehrere Sprachen und Dateien zu verfolgen, was für Menschen langsam zu prüfen ist und den Agenten bei jeder Änderung Zeit und Tokens kostet.

BI-Tools gingen den anderen Weg und schraubten Copiloten an ihre UI-First-Apps. Das hält die KI auf governbaren Schienen, aber auf engen: Der Agent kann nur tun, was die UI offenlegt. Also wählst du heute zwischen der unordentlichen Freiheit von Code und der engen Kontrolle eines BI-Tools.

Wir haben eine dritte Option gebaut: spring vor, oder lies weiter, wie BI hierher kam. BI entbündeln Wie der dbt Labs-Gründer Tristan Handy kürzlich in „BI's Second Unbundling“ schrieb: Als ich in Daten anfing, waren BI-Tools Full-Stack. Alles geschah in einem Produkt: Datenerfassung, Transformation, Compute, Caching, Semantik, Visualisierung, Identität.

Das BI-Tool war der Datenstack. Micro Strategy, Cognos usw.: Sie sind nicht nur Visualisierungstools, sie sind integrierte Datenplattformen. Dann kam der moderne Datenstack.

Von etwa 2015 bis 2022 wurden die Infrastrukturschichten dieses BI-Bündels herausgezogen und in zweckgebundene Infrastruktur verwandelt. Compute ging an die Big 5. Ingestion ging an Fivetran.

Transformation ging an dbt. Das BI-Tool behielt: Visualisierung, interaktive analytische Oberflächen, semantische Definitionen (manchmal!), Identitäts- und Zugriffsverwaltung und Webhosting. Warehousing Big 5 ELT Extract Load Transform BI alles andere Was dieses Entbündeln zurückließ, ist das BI-Tool, das wir heute kennen, und Charts sind sein größter Teil.

Sie blieben aus gutem Grund in der UI: Für die meisten Menschen ist Klicken schneller als YAML schreiben. Aber immer mehr Charts werden nicht von Menschen erstellt. Da das Frontend und der Nutzer von allem zunehmend ein Chat-Agent wird, kehrt sich diese Präferenz um.

Agenten sind fließend in Code, SQL und Git und unbeholfen in der UI von jemand anderem. Also müssen Charts dorthin wandern, wo Agenten arbeiten: in den Code. Heute machen wir den nächsten Schritt beim Entbündeln von BI: Wir stellen dbt Charts als Open Source bereit, was Charts aus dem BI-Tool herausnimmt und in Code legt, genauer gesagt in eine neue strukturierte YAML-Sprache, die ein vollständiges interaktives Dashboard in einer einzigen prüfbaren YAML-Datei deklarieren kann.

Chatte frei mit einem Agenten, und was er erstellt, hat die Freiheit von Code und bleibt zugleich leicht lesbar. Warehousing Big 5 ELT Extract Load Transform Neu C Chart BI ein paar Teile In dbt Charts bleibt SQL die Sprache, um zu deklarieren, WELCHE Daten du sehen willst, und wir hüllen das in YAML, um zu deklarieren, WIE du sie sehen willst. Wir haben lange daran gearbeitet, die Sprache auf wenige Kern-, erweiterbare Elemente zu destillieren: tief in dem, was sie ausdrücken können, leicht zu organisieren und zu lesen.

Das YAML umhüllt mehr als SQL. Markdown trägt die Prosa, und Jinja, wie in dbt, trägt Variablen und Makros. Hier ist ein kleines Beispiel: eine Variable (ein UI-Filter), eine Abfrage und ein Chart. variables: status: column: main.documents.status queries: doc_growth: | SELECT DATE_TRUNC('month', created_at) AS month, SUM(COUNT(*)) OVER (ORDER BY month) AS num_docs FROM main.documents WHERE {{ filter('status', status) }} GROUP BY 1 charts: growth: title: Documents created, all time type: area query: doc_growth x: month y: num_docs rows: - growth Diese Datei ist das ganze Board.

Die CLI rendert jede Board-Datei in statisches SVG oder in HTML, PNG, PDF und sogar das Terminal, auf deinem Laptop oder in CI, und serviert einen Ordner davon als Website: dct render charts/documents.yml --format svg # oder html, png, pdf, terminal dct serve Diese wenigen Elemente gehen tief: über 1.100 Konfigurationsoptionen heute ...