Notebooks
Un notebook por clase, para abrir en Google Colab. No se instala nada, no se configura nada: corres la primera celda y quedan las 6.000 líneas de Austral Distribución cargadas y consultables con SQL. Funciona igual en los computadores del laboratorio de Duoc y en tu casa, porque todo el trabajo pesado ocurre en el navegador.
Tres clics y estás dentro
Si nunca usaste Colab: es un cuaderno de código que corre en Google, gratis, con tu cuenta de siempre. Nada se instala en el computador y nada se pierde si te cambias de máquina.
La primera celda es siempre la misma y ya viene escrita: import gaa1104 as g · bd = g.arrancar(). Deja ocho tablas listas — ventas, maestro_clientes, condiciones_pago, plan_cuentas, eeff, eeff_bruto, catalogo y tc — y avisa en pantalla si alguna no trae las filas que debía.
Tres marcas, y con eso te ubicas
Cada notebook distingue lo que lees de lo que te toca hacer. No hace falta leerlo entero para saber dónde entras tú.
| Marca | Qué significa | Qué haces |
|---|---|---|
| 👀 Se mira | La consulta viene resuelta | La corres, lees el número y sigues. Acá no hay nada que escribir |
| 🔨 Actividad | Te toca a ti | La celda viene vacía y el comentario dice qué va adentro. Arriba está lo que entregas y en cuánto tiempo |
| 🎫 Ticket | Lo que te llevas | Al final del todo. Es lo que se entrega |
Lo que no lleva marca viene resuelto. Y si una 🔨 te sale mal, no borres la celda: deja el intento y anota al lado qué esperabas. Un intento fallido con la explicación al lado vale más que una celda en blanco, y eso también es criterio de corrección.
Uno por clase
Traen el guion de la clase, las consultas que escribimos en sala y los ejercicios. Baja el de la clase que te toca; no hace falta bajarlos todos.
| Clase | Título | Archivo |
|---|---|---|
| 00 | Colab, en 40 minutos y sin instalar nada | clase-00.ipynb |
| 01 | El problema de la forma de los datos | clase-01.ipynb |
| 02 | El giro, y tu primer SQL | clase-02.ipynb |
| 03 | Agregar y unir | clase-03.ipynb |
| 04 | De dónde sale el dato y dónde se rompe | clase-04.ipynb |
| 05 | Calidad completa: qué está roto y qué está vivo | clase-05.ipynb |
| 06 | El informe y la herramienta | clase-06.ipynb |
| 07 | Simulacro Parcial 1 (Evaluación Formativa 1) | clase-07.ipynb |
| 08 | Parcial 1 oficial, y la retro | clase-08.ipynb |
| 09 | Insignia: el doble conteo | clase-09.ipynb |
| 10 | Las reglas del modelador y los dos granos | clase-10.ipynb |
| 11 | 3FN y el modelo completo | clase-11.ipynb |
| 12 | Las tres vistas, y el notebook como entregable | clase-12.ipynb |
| 13 | La demanda: nivel, cola y estación | clase-13.ipynb |
| 14 | Simulacro Parcial 2 (Evaluación Formativa 2) | clase-14.ipynb |
| 15 | Repaso del simulacro, y Power BI: primera carga | clase-15.ipynb |
| 16 | Parcial 2 · etapa 1 | clase-16.ipynb |
| 17 | Parcial 2 · etapas 2 y 3 | clase-17.ipynb |
| 18 | El reporte que decide, y por qué se entiende | clase-18.ipynb |
| 19 | Reporte 1: el panel de EEFF en Power BI | clase-19.ipynb |
| 20 | La página del CFO que viaja sola | clase-20.ipynb |
| 21 | Formativa 3, ensayo del ET y lanzamiento del caso | clase-21.ipynb |
| 22 | Kickoff del Examen Transversal · checkpoint 1 | clase-22.ipynb |
| 23 | Taller ET · checkpoints 2 y 3 | clase-23.ipynb |
| 24 | Entrega, defensa y cierre | clase-24.ipynb |
| A | Pipeline en pandas — trabajo autónomo, se entrega como notebook espejo | a19.ipynb |
| G | Gráficos para gerencia — bloque de 25 minutos: qué forma para qué pregunta, y cómo se arma la lámina que va a gerencia | graficos-gerencia.ipynb |
Los notebooks de las clases de evaluación y de Power BI son cortos a propósito: esas noches no se escribe SQL.
Qué se puede escribir
Después de la primera celda existe bd, y con eso alcanza para todo el semestre. Ocho líneas: no hay una novena escondida.
| bd.sql("SELECT ... FROM ventas") | La consulta de siempre. Devuelve una tabla que Colab dibuja sola. |
| bd.tablas() | Qué hay cargado y con cuántas filas. Es lo primero que se mira cuando algo no calza. |
| bd.columnas("ventas") | Qué columnas tiene, para cuando no te acuerdas del nombre exacto. |
| bd.ejemplo("eeff") | Las primeras filas, para mirarle la cara al dato antes de consultarlo. |
| bd.guardar("SELECT ...", "mi_vista") | Escribe el resultado en salidas/ — nunca encima del archivo original. |
| bd.oficial("ventas_alimentaria.csv") | Carga un dataset oficial de Duoc que subiste a mano al notebook. |
| bd.correr_sql("modelo-alimentaria.sql") | Corre un archivo .sql entero: lo que hace .read en la consola. |
| bd.comprobar(margen, 24.59, "margen real") | ¿Te dio el número que tenía que dar? Y si no, te dice dónde suele romperse. |
bd.comprobar() es la que más se usa sin esperarlo: cuando el número no calza no dice sólo «mal», dice que un número que no calza es información — y que casi siempre es un JOIN que duplicó filas. Esa es la lección insignia del curso, la de la clase 9.
El plan B, que siempre existe
| No hay internet | El curso corre igual en tu máquina con herramientas/consola-sql.py, la consola del repo: es el mismo DuckDB y el mismo SQL, sin red. Los datasets se bajan una vez desde /descargas. |
| Colab bloqueado en la sede | Si la red de Duoc bloquea el dominio, mismo camino: consola local con los CSV bajados de antes. Baja los datasets en tu casa y llégalos traídos; pesan poco. |
| «Table with name X does not exist» | Casi siempre es que no corriste la primera celda, o que la tabla que buscas es un dataset oficial que hay que subir. bd.tablas() te dice qué hay cargado de verdad. |
| Se cayó la sesión de Colab | Colab apaga la máquina si la dejas quieta un rato: se pierden las variables, no tu código. Vuelves a correr la primera celda y sigues. Guarda una copia en tu Drive con Archivo → Guardar una copia en Drive. |
Los datasets oficiales de Duoc no están acá
ventas_alimentaria.csv y ventas_por_factura.csv son material de la institución y no se publican en este sitio. Los recibes por el aula virtual y los subes a mano al notebook (en Colab: el icono de carpeta a la izquierda → Subir). Después se cargan con bd.oficial("ventas_alimentaria.csv"), que los busca solo y, si no los encuentra, te explica en pantalla cómo subirlos. Todo lo demás —el caso Austral, los catálogos, los gemelos— es sintético, es nuestro y está en /descargas.