Streams, tasks y dynamic tables
CDC transaccional, orquestacion y pipelines declarativos.
Conceptos que debes poder reconocer y distinguir:
- Standard streams
- Append-only e insert-only streams
- Staleness
- Tasks y task graphs
- WHEN y AFTER
- Dynamic tables
- Target lag y refresh mode
Usa los enlaces oficiales de Snowflake de esta unidad para ampliar cada concepto y contrastar su comportamiento.
Un stream captura cambios DML y actua como punto de lectura incremental. Una task ejecuta trabajo segun horario o condicion. Una dynamic table materializa el resultado de un SELECT y Snowflake se ocupa del refresco.
Como elegir
| Necesidad | Opcion que suele encajar | Por que |
|---|---|---|
| CDC transaccional y MERGE controlado | Streams + tasks | Permiten orquestar logica incremental precisa |
| Pipeline declarativo basado en SELECT | Dynamic table | Snowflake gestiona dependencias y refresco |
| Llamadas externas o logica procedural | Tasks con procedimientos | Una dynamic table no cubre cualquier flujo |
| Evitar ejecuciones sin cambios | Task con SYSTEM$STREAM_HAS_DATA | Reduce trabajo inutil aunque no sea una garantia absoluta |
Matices frecuentes
- Un stream puede quedar stale si no se consume a tiempo.
- El offset avanza al confirmar la transaccion que consume el stream.
- Las tasks pueden usar compute gestionado por usuario o serverless segun escenario.
- Dynamic tables son muy buenas para pipelines SQL, pero no reemplazan toda automatizacion.