04 Reconstrucción de la canalización dbt
Guía del facilitador para reconstruir dbt en ClickHouse y explicar por qué la tabla agregada vacía no es un error.
Complemento para el facilitador de la lección del participante 04 Reconstrucción de la canalización dbt.
Tiempo
Unos 30 minutos. El único tramo con verdadero tiempo muerto es el segundo dbt run del
Paso 1, que tarda aproximadamente entre 8 y 12 minutos en procesar 50 millones de filas
a través de los modelos incrementales. Suele ser demasiado breve para justificar una
pausa propia, pero lo bastante largo como para narrarlo en vez de contemplarlo en
silencio. El Paso 2, dedicado al diccionario de zonas, y las consultas de verificación
son rápidos e interactivos.
Guion
- Presenta el módulo como prueba de la canalización, no de los datos: el Módulo 03 probó que ClickHouse puede contener 50 millones de filas; este demuestra que la misma canalización Medallion del módulo 01 —vistas de staging, tabla de hechos incremental, recargas de dimensiones y pruebas— conserva su forma al ejecutarse en ClickHouse.
- Detente en
delete_insert: sustituyeMERGE INTO(ClickHouse no tieneMERGE) yReplacingMergeTreees la red de seguridad, no su sustituto. Sidelete_inserttermina normalmente, RMT no limpia nada; solo importa tras una interrupción. - Destaca
mv_live_trip_feed: no tiene equivalente Snowflake. Una vista materializada estándar solo ve las filas del lote que la activa; una vista materializada REFRESHABLE vuelve a ejecutar periódicamente la consulta completa y, por tanto, puede mantener un agregado de todo el historial. Es una capacidad nueva que aporta la migración, no un traslado directo de algo que ya existía. - Avísalo antes de que pregunten:
agg_hourly_zone_tripsqueda vacía trasdbt runy es correcto. Su filtroWHERE pickup_at >= now() - INTERVAL 2 HOURsolo coincide con filas escritas por un productor en vivo; todas las filas recién migradas son históricas. Seguirá vacía hasta que el módulo 05 inicie el productor de ClickHouse durante la transición. Los participantes suelen interpretar esta situación como una canalización rota, así que anticípate a la pregunta.
Fallos habituales
agg_hourly_zone_tripsdevuelve 0 filas y se informa como error. No lo es. Confirma quedim_taxi_zones(265 filas) yfact_trips(unos 50 millones) estén pobladas como se espera antes de dedicar tiempo aagg_hourly_zone_trips. Si esas dos están bien, el agregado vacío funciona exactamente como se diseñó. Este es el fallo principal del módulo: cuenta con que la pregunta aparecerá cada vez.dbt runfalla o no conecta. Depende del perfil creado en el Módulo 03 (~/.dbt/profiles.yml,nyc_taxi_ch). Si falta, la causa raíz está en el Paso 2, «Configura el perfil dbt», de 03 Aprovisionamiento y migración. En ese caso, el Paso 1 falla aquí, un módulo después de la omisión que provocó el problema.- TODO: la sección
## dbt on ClickHousede Solución de problemas no tiene una entrada específica para un fallo que solo se manifiesta en este paso. Añade aquí cualquier particularidad observada durante el ensayo.
Pasos de restablecimiento
- Repite
dbt runsin problema: es incremental y seguro volver a ejecutarlo, y nada de este módulo requiere un desmontaje. - Tras cambiar un modelo o un esquema, fuerza una reconstrucción completa de los modelos
incrementales con
dbt run --full-refreshdesdeworkshop_public/snowflake_migration_lab/03-migrate-to-clickhouse/dbt/nyc_taxi_dbt_ch. - Si el diccionario de zonas parece incorrecto u obsoleto, repite
scripts/04_create_dictionary.sql; utilizaCREATE OR REPLACE DICTIONARYy se puede ejecutar de nuevo con seguridad sin borrar nada antes. - No hay un restablecimiento específico del entorno para este módulo. Su desmontaje es
el mismo
workshop_public/snowflake_migration_lab/03-migrate-to-clickhouse/teardown.shque se explica en el módulo 03; no lo ejecutes a mitad de este módulo.
03 Aprovisionamiento y migración
Guía del facilitador para aprovisionar ClickHouse y migrar: transferencia desatendida de 40–50 minutos y perfil dbt ausente.
05 Benchmark y transición
Guía del facilitador para el benchmark y la transición: cierre del desfase en dos pasadas, problemas al importar paneles y orden de desmontaje.