stamatios
← Voltar ao feed
Mensagem de chat virando gráfico de barras dentro de arquivo de código, dbt Charts cria dashboards em YAML no chat
Dev & Engenharia

dbt Charts cria dashboards em YAML que rodam direto no chat

resumo de ~3 min

O problema: dashboards gerados por agentes viram código bagunçado

dbt Labs anunciou o open source do dbt Charts, uma linguagem declarativa para dashboards, para que até os dashboards criados conversando com um agente de IA possam ser governados. A justificativa é que a análise self-serve por IA finalmente está acontecendo, mas com fricções: por padrão, um agente transforma um relatório simples em uma pilha de arquivos de HTML, CSS e JavaScript, bibliotecas de gráficos e um app em React ou Streamlit. Rastrear um resultado até a origem exige percorrer várias linguagens, o que é lento para auditar e custa tempo e tokens ao agente a cada mudança. As ferramentas de BI, por sua vez, foram no caminho oposto ao acoplar copilots a aplicações de UI, o que mantém o agente trilhos controlados, mas estreitos: ele só faz o que a UI permite. Hoje, segundo o texto, a escolha é entre a liberdade bagunçada do código e o controle restrito de um BI.

A tese: os gráficos saem do BI e vão para o código

Citando o texto de Tristan Handy sobre o "segundo desbundling" do BI - quando, entre cerca de 2015 e 2022, ingestão, transformação e computo foram retirados do pacote do BI para infraestruturas dedicadas -, o post argumenta que os gráficos são a maior peça que ficou na interface. Clicar era mais rápido que escrever YAML enquanto os gráficos eram feitos por pessoas, mas cada vez mais não serão: agentes são fluentes em código, SQL e Git e desajeitados na UI alheia. Por isso os gráficos devem migrar para onde os agentes trabalham: o código.

Como funciona a linguagem

O dbt Charts declara um dashboard interativo inteiro em um único arquivo YAML auditável. O SQL continua declarando QUÊ dados ver, e o YAML envolve esse SQL declarando COMO exibi-los. Markdown leva a prosa e Jinja, como no dbt, as variáveis e macros. A linguagem se resume a poucos elementos extensíveis: variáveis, queries e charts. A CLI renderiza qualquer arquivo para SVG, HTML, PNG, PDF e até terminal, localmente ou em CI, e serve uma pasta como site. São mais de 1.100 opções de configuração, dezesseis tipos de gráfico e composições entre eles. Os estilos cascatam - gráfico herda do board, que herda do tema - e um board pode usar extends: de outro, escrevendo o padrão visual uma vez e herdando em todo lugar.

Integração com dbt e loop de feedback para agentes

Num projeto dbt, a pasta charts/ vive ao lado de models/ no mesmo repositório Git: mudança em modelo e gráficos vai em uma branch, um CI, e quebra antes de chegar à produção. Queries usam ref() resolvido pelo manifest, de modo que modelo renomeado ou coluna faltante reprova o pull request antes do dbt run reconstruir o warehouse. Há suporte planejado ao Semantic Layer. Para agentes, o sistema oferece validação estrita de YAML e SQL e verificações visuais (como avisos de barras estreitas demais ou colunas estourando a largura) que apontam problemas antes que alguém veja o board.

Design e a plataforma dbtCharts.com

O designer RJ Andrews, autor e historiador de gráficos, foi contratado para desenhar os charts; o texto afirma que o sistema dispensa os cartões e caixas que simulam alinhamento com ruído visual, resultando em um sistema coeso. Junto da linguagem open source (licença Apache 2.0, pre-1.0, com migração automática dos boards quando a gramática muda), a dbt Labs lançou em beta público o dbtCharts.com: uma plataforma hospedada para o restante do BI - hospedagem, controle de acesso e UI - que a empresa considera partes que talvez não possam, ou não devam, ser desbundled. A plataforma adiciona análise conversacional com acesso somente leitura e permissionado ao warehouse, editor visual, histórico de versões e compartilhamento sem login no warehouse. Como tudo é construído sobre a linguagem aberta, qualquer mudança - via chat, editor visual ou código - cai no mesmo YAML no Git, sem lock-in: o mesmo board roda no laptop, em CI e na plataforma.