HeadlinesBriefing favicon HeadlinesBriefing.com

dbt Charts : tableaux de bord déclaratifs open source

Hacker News •
×

Nous ouvrons le code source de dbt Charts, un langage déclaratif pour les tableaux de bord, afin que même les tableaux de bord que vous créez en discutant avec un agent puissent être gouvernés. L'IA pour les données est là, et l'analytique en libre-service promise depuis longtemps se concrétise enfin. Toute personne disposant d'une connexion de données peut faire naître un rapport en discutant en un après-midi, et les premiers résultats sont impressionnants.

Les frictions apparaissent vite, cependant. Par défaut, un agent transforme un simple rapport en une pile de fichiers : HTML, CSS et Java Script, quelques bibliothèques de graphiques, et une application React ou Streamlit dès qu'il faut qu'elle soit en ligne. Retracer un résultat jusqu'à sa source signifie le suivre à travers plusieurs langages et fichiers, ce qui est lent à auditer pour les humains et coûte à l'agent du temps et des tokens à chaque modification.

Les outils de BI ont pris l'autre voie et ont greffé des copilotes sur leurs applications centrées sur l'interface. Cela maintient l'IA sur des rails gouvernés, mais des rails étroits : l'agent ne peut faire que ce que l'interface expose. Aujourd'hui, vous choisissez donc entre la liberté désordonnée du code et le contrôle étroit d'un outil de BI.

Nous avons construit une troisième option : passez directement à la suite, ou lisez la suite pour comprendre comment la BI en est arrivée là. Débundle de la BI Comme l'a écrit récemment le fondateur de dbt Labs, Tristan Handy, dans « Le deuxième débundle de la BI » : Quand j'ai commencé dans la data, les outils de BI étaient full-stack. Tout se passait dans un seul produit : ingestion des données, transformation, calcul, mise en cache, sémantique, visualisation, identité.

L'outil de BI était la stack data. Micro Strategy, Cognos, etc. : ce ne sont pas seulement des outils de visualisation, ce sont des plateformes de données intégrées. Puis la stack data moderne est arrivée.

D'environ 2015 à 2022, les couches d'infrastructure de ce bundle BI ont été extraites et transformées en infrastructure dédiée. Le calcul est allé aux Big 5. L'ingestion est allée à Fivetran.

La transformation est allée à dbt. L'outil de BI s'est retrouvé avec : la visualisation, les interfaces analytiques interactives, les définitions sémantiques (parfois !), la gestion des identités et des accès, et l'hébergement web. Entreposage Big 5 ELT Extract Load Transform BI tout le reste Ce que ce débundle a laissé derrière lui, c'est l'outil de BI que nous connaissons aujourd'hui, et les graphiques en sont la plus grande pièce.

Ils sont restés dans l'interface pour une bonne raison : pour la plupart des gens, cliquer est plus rapide qu'écrire du YAML. Mais de plus en plus de graphiques ne seront pas faits par des humains. À mesure que le front end et l'utilisateur de tout devient de plus en plus un agent de chat, cette préférence s'inverse. Les agents sont à l'aise avec le code, le SQL et Git, et maladroits dans l'interface de quelqu'un d'autre.

Les graphiques doivent donc se déplacer là où travaillent les agents : dans le code. Aujourd'hui, nous franchissons la prochaine étape du débundle de la BI : nous ouvrons le code source de dbt Charts, qui sort les graphiques de l'outil de BI et les met dans le code, précisément un nouveau langage YAML structuré qui peut déclarer un tableau de bord interactif complet dans un seul fichier YAML auditable. Discutez librement avec un agent, et ce qu'il produit a la liberté du code tout en restant facile à lire.

Entreposage Big 5 ELT Extract Load Transform Nouveau C Graphique BI quelques éléments Dans dbt Charts, SQL reste le langage pour déclarer QUELLES données vous voulez voir, et nous l'enveloppons dans du YAML pour déclarer COMMENT vous voulez les voir. Nous avons passé beaucoup de temps à distiller le langage en quelques éléments essentiels et extensibles : profonds dans ce qu'ils peuvent exprimer, faciles à organiser et à lire. Le YAML enveloppe plus que le SQL.

Markdown porte la prose, et Jinja, comme dans dbt, porte les variables et les macros. Voici un petit exemple : une variable (un filtre d'interface), une requête et un graphique. 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 Ce fichier est tout le tableau. La CLI rend n'importe quel fichier de tableau en SVG statique, ou en HTML, PNG, PDF, et même dans le terminal, sur votre ordinateur portable ou en CI, et sert un dossier de ceux-ci comme un site : dct render charts/documents.yml --format svg # ou html, png, pdf, terminal dct serve Ces quelques éléments vont loin : plus de 1 100 options de configuration aujourd'hui...