HeadlinesBriefing favicon HeadlinesBriefing.com

dbt Charts: paneles declarativos de código abierto

Hacker News •
×

Estamos publicando como código abierto dbt Charts, un lenguaje declarativo para paneles, para que incluso los paneles que creas conversando con un agente puedan estar gobernados. La IA para datos ya está aquí, y el autoservicio analítico prometido durante tanto tiempo por fin está ocurriendo. Cualquier persona con una conexión de datos puede crear un informe conversando en una tarde, y los primeros resultados son impresionantes.

Sin embargo, las fricciones aparecen rápido. De forma predeterminada, un agente convierte un informe sencillo en un montón de archivos: HTML, CSS y Java Script, un par de bibliotecas de gráficos y una aplicación React o Streamlit cuando tiene que estar en vivo. Rastrear un resultado hasta su origen significa seguirlo a través de varios lenguajes y archivos, lo cual es lento de auditar para las personas y le cuesta al agente tiempo y tokens en cada cambio.

Las herramientas de BI fueron por el otro camino y añadieron copilotos a sus aplicaciones centradas primero en la interfaz. Eso mantiene a la IA en rieles gobernados, pero estrechos: el agente solo puede hacer lo que expone la interfaz. Así que hoy eliges entre la libertad desordenada del código y el control estrecho de una herramienta de BI.

Construimos una tercera opción: salta adelante, o sigue leyendo para saber cómo llegó aquí el BI. Desagregando el BI Como escribió recientemente el fundador de dbt Labs, Tristan Handy, en La segunda desagregación del BI: Cuando empecé en datos, las herramientas de BI eran de pila completa. Todo ocurría dentro de un solo producto: ingesta de datos, transformación, cómputo, almacenamiento en caché, semántica, visualización, identidad.

La herramienta de BI era la pila de datos. Micro Strategy, Cognos, etc.: no son solo herramientas de visualización, son plataformas de datos integradas. Luego llegó la pila de datos moderna.

Desde aproximadamente 2015 hasta 2022, las capas de infraestructura de ese paquete de BI se extrajeron y se convirtieron en infraestructura hecha a propósito. El cómputo se fue a los Big 5. La ingesta se fue a Fivetran.

La transformación se fue a dbt. La herramienta de BI se quedó con: visualización, interfaces analíticas interactivas, definiciones semánticas (¡a veces!), gestión de identidad y acceso, y alojamiento web. Almacenamiento de datos Big 5 ELT Extraer Cargar Transformar BI todo lo demás Lo que esa desagregación dejó atrás es la herramienta de BI que conocemos hoy, y los gráficos son su pieza más grande.

Se quedaron en la interfaz por una buena razón: para la mayoría de las personas, hacer clic es más rápido que escribir YAML. Pero cada vez más gráficos no serán hechos por personas. A medida que el front end y el usuario de todo se convierte cada vez más en un agente de chat, esta preferencia se invierte.

Los agentes son fluidos en código, SQL y Git, y torpes en la interfaz de otro. Así que los gráficos necesitan moverse a donde trabajan los agentes: al código. Hoy damos el siguiente paso en la desagregación del BI: estamos publicando como código abierto dbt Charts, que saca los gráficos de la herramienta de BI y los pone en código, específicamente un nuevo lenguaje YAML estructurado que puede declarar un panel interactivo completo en un solo archivo YAML auditable.

Chatea libremente con un agente, y lo que crea tiene la libertad del código a la vez que sigue siendo fácil de leer. Almacenamiento de datos Big 5 ELT Extraer Cargar Transformar Nuevo C Gráfico BI unos pocos elementos En dbt Charts, SQL sigue siendo el lenguaje para declarar QUÉ datos quieres ver, y lo envolvemos en YAML para declarar CÓMO quieres verlos. Hemos pasado mucho tiempo destilando el lenguaje a unos pocos elementos centrales y extensibles: profundos en lo que pueden expresar, fáciles de organizar y leer.

El YAML envuelve más que SQL. Markdown lleva la prosa y Jinja, como en dbt, lleva variables y macros. Aquí hay un pequeño ejemplo: una variable (un filtro de interfaz), una consulta y un gráfico. 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 Ese archivo es todo el tablero.

La CLI renderiza cualquier archivo de tablero a SVG estático, o a HTML, PNG, PDF e incluso la terminal, en tu portátil o en CI, y sirve una carpeta de ellos como un sitio: dct render charts/documents.yml --format svg # o html, png, pdf, terminal dct serve Esos pocos elementos llegan lejos: más de 1.100 opciones de configuración hoy en día...