01 Entorno de origen
Guía del facilitador para provisionar Snowflake: tiempos, productor que debe seguir activo y solución de problemas.
Complemento para la lección 01 Entorno de origen.
Tiempo
Unos 45 minutos en total. El Paso 2 (./setup.sh) es el único tramo desatendido: dura
aproximadamente entre 5 y 10 minutos, dedicados en su mayor parte a sembrar los datos
sintéticos con TABLE(GENERATOR). Conviene aprovecharlo para explicar el guion que
aparece a continuación, en lugar de contemplar el proceso en silencio. El resto del
tiempo —los Pasos 1 y 3–5— requiere que el participante esté ante el teclado para
configurar las credenciales, comprobar que el productor y Superset se han iniciado,
poner en marcha el bucle de actualización de dbt y revisar las siete consultas.
Guion
- Este módulo crea un origen que realmente merezca la pena migrar: una columna
VARIANT, un stream de CDC, dos tareas programadas y una capa de BI que lee por encima de todo ello; no una tabla de juguete. Cada uno de esos elementos se convertirá en una decisión de migración concreta en el módulo 02. - Recorre una vez la arquitectura Medallion del diagrama: RAW -> STAGING -> ANALYTICS
dentro de
NYC_TAXI_DB, y señala los dos objetos que la mantienen en movimiento con independencia de dbt:TRIPS_CDC_STREAMy las dos tareas programadas. - Señala la biblioteca de consultas del Paso 5 aunque los participantes no vayan a traducirlas hasta el módulo 02. Cada una ya incluye un comentario que esboza el equivalente en ClickHouse, de modo que pueden empezar a reconocer patrones desde ahora.
- Déjalo claro y repítelo al final del módulo: el productor y el bucle de actualización de dbt deben seguir ejecutándose. La transición del módulo 05 mide exactamente el desfase que crea el productor entre Snowflake y ClickHouse durante la migración. Si un participante lo detiene aquí por afán de orden, arruina silenciosamente esa demostración tres módulos más tarde.
Fallos habituales
terraform initfalla con un error del proveedor. Confirma que se usa Terraform= 1.6 y que la máquina tiene acceso a Internet para comunicarse con el registro de Terraform.
snowsqlrechaza la conexión. VerificaSNOWFLAKE_ORGySNOWFLAKE_ACCOUNT; pruebasnowsql -a ${SNOWFLAKE_ORG}-${SNOWFLAKE_ACCOUNT} -u ${SNOWFLAKE_USER}.dbt runfalla conrelation not found. Ejecuta primero./setup.sh --skip-seed: este comando crea la estructura de la base de datos. Después, confirma queprofiles.ymlapunta aNYC_TAXI_DB.- Superset muestra
connection refused. Superset necesita unos 60 segundos para inicializarse después dedocker-compose up; revisadocker logs nyc_taxi_supersetsi sigue sin responder una vez transcurrido ese tiempo. - La semilla tarda más de lo esperado.
TABLE(GENERATOR)crea 50 M de filas en unos 10–12 minutos. ElUPDATEposterior que rellena la columna JSONTRIP_METADATAen las 50 millones de filas puede añadir entre 15 y 20 minutos más en un warehouse SMALL. Es un comportamiento normal de Snowflake al actualizar una columnaVARIANTde gran tamaño, no un bloqueo; explícalo antes de que alguien intente solucionar un script que está funcionando correctamente. - Alguien detiene el productor al creer terminado el módulo. Los módulos 02–05 dependen de que siga activo y el módulo 05 mide expresamente el desfase que genera. Es el error bienintencionado más dañino de todo el taller; adviértelo de forma explícita y más de una vez.
Pasos de restablecimiento
- Para volver a aprovisionar sin repetir la carga de datos de unos 10 minutos, ejecuta
./setup.sh --skip-seed; la infraestructura ya existe yTRIPS_RAWya contiene datos. - Para iterar únicamente sobre un cambio de Terraform o SQL, basta con
./setup.sh --skip-seed. - Itera solo modelos dbt sin Superset:
./setup.sh --skip-seed --skip-superset. - Para probar cambios de Terraform sin volver a ejecutar dbt, añade
--skip-dbt. - Después de cambiar el esquema de un modelo dbt, fuerza una reconstrucción incremental
completa con
--full-refresh; combínalo con--skip-seedpara no repetir también la carga de datos. - Solo si es irrecuperable:
source .env && ./teardown.shdesdeworkshop_public/snowflake_migration_lab/01-setup-snowflake/, y luego./setup.sh. Es destructivo y obliga a repetir toda la siembra de unos 10–12 minutos; no recurras a ello como primera respuesta cuando un participante se atasque.