Resumen del curso/Haz que perdure1 de 3
Guarda una consulta como activo
Guarda una consulta como activo
Convierte una consulta auditada en un activo de Bruin con encabezado, dependencias y descripción.
De algo puntual a algo persistente
Una consulta que ejecutaste una vez vive solo en el historial de tu terminal. Un activo es una consulta guardada como archivo, de modo que puede volver a ejecutarse, tener dependencias y revisarse. Bruin guarda cada activo en pipeline/assets/ con un encabezado breve que indica a Bruin qué es y qué necesita.
El encabezado de un activo está al principio del archivo .sql, entre /* @bruin y @bruin */. Nombra el activo, establece su tipo, enumera de qué depends y contiene una description. La lista depends indica a Bruin qué tablas debe construir primero, de modo que el orden sea correcto sin que tengas que controlarlo. El nombre del activo no lleva un esquema delante, igual que todas las demás tablas de este proyecto.
Tabla o vista
materialization decide cómo se almacena el resultado. type: table guarda las filas, así que las lecturas son rápidas y los números quedan fijos hasta la siguiente ejecución. type: view guarda la consulta y la recalcula en cada lectura, por lo que siempre está actualizada pero no hace trabajo hasta que se consulta. Este curso usa una tabla con strategy: create+replace, que reconstruye la tabla local pequeña en cada ejecución.
Un encabezado terminado se ve así, con el cuerpo de tu consulta debajo:
/* @bruin
name: category_growth
type: duckdb.sql
description: >-
Una fila por categoría de producto, comparando los ingresos de línea de 2023 y 2024
(quantity * net_price). Los ingresos usan net_price, no unit_price.
depends:
- orders
- order_items
- products
materialization:
type: table
strategy: create+replace
@bruin */
-- aquí va tu consulta auditada
Tu tarea
Guarda la consulta central corregida de las lecciones de interrogación - vive en queries/agent_v1.sql - como un activo nuevo en pipeline/assets/category_growth.sql, con un encabezado como el anterior y el cuerpo de la consulta debajo. Dale una materialización de tabla, la lista depends correcta y una descripción que indique qué representa una fila y qué definición de ingresos utiliza.
Después valídalo, constrúyelo e inspecciónalo:
bruin validate pipeline/pipeline.yml
bruin run pipeline/assets/category_growth.sql
bruin query --connection duckdb-default \
--description "row count of the new category growth asset" \
--query "SELECT COUNT(*) AS categories FROM category_growth;"
bruin validate pasa, bruin run crea la tabla y el resultado tiene una fila por categoría. Hay ocho categorías en los datos, así que espera ocho filas - o nueve si tu consulta conserva las líneas cuyo producto falta en un grupo «Unknown». Confirma que el grano coincide con la descripción que escribiste.
Comprueba tu comprensión
- ¿Cuál es la diferencia entre una materialización
tabley unaview? - ¿Qué hace
depends? - ¿Cuántas filas debe tener
category_growthy qué representa una fila?
Hazlo con tu agente
Di next lesson y tu agente te enseñará esto, te hará estas preguntas y después asignará la tarea anterior. Hazla a mano y luego di review my work - comparará tu trabajo con una rúbrica y te dirá qué corregir o marcará la lección como terminada.