Présentation du cours/Configurer l’espace de travail4 sur 4
À la découverte de l’entrepôt
Rencontrez l'entrepôt
Découvrez ce que sont les tables, les lignes, le grain et une connexion, puis examinez les données.
Tableaux, lignes, grains et connexions
Un entrepôt est un ensemble de tables. Une table comporte des colonnes qui nomment ce qui est stocké et des lignes qui sont les enregistrements individuels. Ce projet comporte six tables : dates, stores, products, customers, orders et order_items.
Avant d'interroger une table, décidez ce que représente une ligne de celle-ci. Les équipes data appellent cela le grain de la table. Deux grains portent tout ce parcours et il est facile de les confondre. orders correspond à une ligne par commande. order_items représente une ligne par ligne sur une commande, et les commandes comportent en moyenne exactement 2,40 lignes chacune. Ce nombre revient dans la leçon de jointure et à nouveau dans la synthèse, alors gardez-le à l'esprit.
Vos requêtes atteignent les données via une connexion, qui est un pointeur nommé vers une base de données. La connexion de ce projet s'appelle duckdb-default et elle est définie dans le fichier .bruin.yml à la racine du dépôt. Ce fichier est volontairement répertorié dans .gitignore, car dans un projet réel, il contiendrait des mots de passe et un mot de passe n'appartient pas au contrôle de version. Ce projet particulier n'a besoin d'aucune information d'identification - la connexion est simplement un chemin vers un fichier local, déjà configuré.
Une convention maison s'applique à chaque leçon : chaque bruin query porte un --description, qui indique ce que la requête est censée prouver.
Les données couvrent trois années, de 2023 à 2025, avec 360 commandes en 2023, 480 en 2024 et 360 en 2025. Le volume augmente de 2023 à 2024, puis diminue de 2024 à 2025. Cette baisse est délibérée. Si vous explorez 2025 et constatez que les catégories diminuent, cela signifie que les données se comportent comme prévu, et non une erreur de votre part.
Une remarque sur la sortie de lecture. Le terminal imprime clairement les nombres : 604065, et non 604,065.00, et un très grand nombre peut apparaître en notation scientifique, comme 1.44977182e+06, qui signifie "1,44977182 fois 10 puissance 6" - déplacez la virgule décimale de six places vers la droite pour obtenir 1 449 771,82. Les leçons écrivent les nombres avec des séparateurs pour plus de lisibilité ; votre terminal ne le fera pas. Mêmes valeurs, vêtements différents.
Votre tâche
Exécutez trois requêtes « regarder autour », puis lisez docs/schema.md. L'objectif est de confirmer la forme de l'entrepôt avant de l'interroger sérieusement : six tables et le nombre de lignes des deux tables de commandes.
bruin query --connection duckdb-default --description "list every table in the project" --query "SHOW TABLES;"
bruin query --connection duckdb-default --description "preview the first five orders" --query "SELECT * FROM orders LIMIT 5;"
bruin query --connection duckdb-default --description "count rows in the two order tables" --query "SELECT (SELECT COUNT(*) FROM orders) AS orders, (SELECT COUNT(*) FROM order_items) AS order_items;"
SHOW TABLES renvoie les six car les tables ont des noms simples comme orders, et non retail.orders. Attendez-vous à 6 tables dès la première requête. La troisième requête est le chèque : elle doit renvoyer 1 200 commandes et 2 880 lignes de commande.
Vérifiez votre compréhension
- Que représente une ligne de
orders? - Que représente une ligne de
order_items? - Lequel des deux a le plus de lignes, et pourquoi ?
Faites-le avec votre agent
Dites next lesson et votre agent vous apprend cela, vous pose ces questions, puis définit la tâche ci-dessus. Faites-le à la main, puis dites review my work - il exécute votre travail, le vérifie par rapport à une rubrique et vous indique ce qu'il faut corriger ou marque la leçon comme terminée.