Présentation du cours/Ancrer les acquis1 sur 3

Enregistrer une requête comme actif

PrécédentSuivant

Enregistrer une requête en tant qu'actif

Transformez une requête auditée en un actif Bruin avec un en-tête, des dépendances et une description.

Du ponctuel au persistant

Une requête que vous avez exécutée une fois ne vit que dans l’historique de votre terminal. Un actif est une requête enregistrée sous forme de fichier, elle peut donc être réexécutée, utilisée et révisée. Bruin stocke chaque actif dans pipeline/assets/ avec un petit en-tête qui indique à Bruin de quoi il s'agit et ce dont il a besoin.

Un en-tête d'actif se trouve en haut du fichier .sql, entre /* @bruin et @bruin */. Il nomme l'actif, définit son type, répertorie les éléments sur lesquels il depends et porte un description. La liste depends indique à Bruin quelles tables construire en premier, donc l'ordre de construction est correct sans que vous le suiviez. Le nom de l'actif n'a aucun schéma devant lui, correspondant à toutes les autres tables de ce projet.

Tableau ou vue

materialization décide comment le résultat est stocké. type: table stocke les lignes, les lectures sont donc rapides et les nombres sont fixes jusqu'à la prochaine exécution. type: view stocke la requête et la recalcule à chaque lecture, elle est donc toujours à jour mais ne fonctionne pas tant qu'elle n'est pas interrogée. Ce cours utilise une table avec strategy: create+replace, qui reconstruit la petite table locale à chaque exécution.

Un en-tête terminé ressemble à ceci, avec le corps de votre requête en dessous :

/* @bruin
name: category_growth
type: duckdb.sql
description: >-
  One row per product category, comparing 2023 and 2024 line revenue
  (quantity * net_price). Revenue uses net_price, not unit_price.
depends:
  - orders
  - order_items
  - products
materialization:
  type: table
  strategy: create+replace
@bruin */

-- your audited query goes here

Votre tâche

Enregistrez la requête de colonne vertébrale corrigée des leçons d'interrogatoire - elle se trouve dans queries/agent_v1.sql - en tant que nouvel actif dans pipeline/assets/category_growth.sql, avec un en-tête comme celui ci-dessus et le corps de la requête en dessous. Donnez-lui une matérialisation de table, la liste depends correcte et une description indiquant ce que représente une ligne et quelle définition de revenus elle utilise.

Ensuite, validez-le, construisez-le et inspectez-le :

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 réussit, bruin run crée le tableau et le résultat est une ligne par catégorie. Il y a huit catégories dans les données, alors attendez-vous à huit lignes - ou neuf si votre requête conserve les lignes de commande dont le produit est manquant dans un compartiment « Inconnu ». Confirmez que le grain correspond à la description que vous avez écrite.

Vérifiez votre compréhension

  • Quelle est la différence entre une matérialisation table et une matérialisation view ?
  • Que fait depends ?
  • Combien de lignes category_growth doit-il avoir et que représente une ligne ?

Faites-le avec votre agent

Dites next lesson et votre agent vous enseigne cela, vous pose ces questions, puis définit la tâche ci-dessus. Faites-le à la main, puis dites review my work - il vérifie votre travail par rapport à une rubrique et vous indique ce qu'il faut corriger ou marque la leçon terminée.

Sign up to our newsletter

Practical updates on open-source data pipelines, AI analysts, governance, and what we are shipping at Bruin.

The signup form is hosted by Brevo. Allow marketing cookies to load it.