Mapa mental de Snowflake: conceptos clave, casos de uso y capacidades de IA
Arquitectura, objetos básicos, funciones de la plataforma, ingeniería de datos, IA con Cortex, aprendizaje automático y aplicaciones: todo el curso en un solo mapa conectado.
Arquitectura
Cuatro capas
- Qué es
- Snowflake funciona en cuatro capas: almacenamiento optimizado, cómputo elástico multiclúster, servicios en la nube y Snowgrid. El curso describe la separación entre almacenamiento y cómputo como "algo que Snowflake fue el primero en hacer" y "algo muy importante".
- Cuándo usarlo
- El modelo mental detrás de cada objeto: dónde están los datos, qué ejecuta las consultas, qué guarda los metadatos y qué conecta regiones y nubes.
Almacenamiento optimizado
Un lugar para todos los datos
- Qué es
- Datos estructurados, semiestructurados y no estructurados (PDF, imágenes) en un mismo lugar, sobre almacenamiento de objetos en la nube. Snowflake se encarga del microparticionado, la compresión y el cifrado, y trabaja con datos locales y formatos de tabla abiertos como Apache Iceberg.
- Cuándo usarlo
- Una sola capa de almacenamiento para el lago y el almacén de datos, sin archivos que gestionar a mano.
Cómputo elástico
Multiclúster, casi infinito
- Qué es
- Cómputo "escalable casi sin límite". El cómputo también está separado del cómputo: varios clústeres trabajan sobre los mismos datos sin competir. Admite SQL, Python y Java.
- Cuándo usarlo
- Equipos y cargas de trabajo escalan por separado: el clúster de dashboards nunca espera al clúster de ETL.
Servicios en la nube
El cerebro de la plataforma
- Qué es
- Actualizaciones automáticas sin tiempo de inactividad; gestiona archivos y metadatos; hace posibles las transacciones ACID, la caché de resultados, Time Travel, el clonado sin copia y la alta concurrencia.
- Cuándo usarlo
- Las tareas de DBA que dejas de hacer: parches, vacuum, ajuste de índices.
Snowgrid
Entre regiones y nubes
- Qué es
- Conecta regiones y nubes (AWS, Azure, GCP) para que datos, servicios y aplicaciones lleguen a equipos, socios y clientes sin ETL ni ELT adicionales. Admite replicación, continuidad de negocio, conmutación por error y migración entre nubes.
- Cuándo usarlo
- Una filial europea lee el conjunto de datos de EE. UU. en su propia región sin un pipeline de copia.
Almacenamiento ≠ cómputo
Escala y paga por separado
- Qué es
- El almacenamiento es donde viven los datos; el cómputo es donde se ejecutan las consultas, moviendo datos del almacenamiento a los nodos de cómputo. Cada uno se dimensiona y se factura por separado.
- Cuándo usarlo
- Un equipo pequeño con una tabla enorme paga la tabla una vez y el cómputo solo mientras consulta.
Objetos básicos
Lo que creas y consultas
- Qué es
- Los objetos que construye la primera parte del curso: almacenes virtuales, bases de datos y esquemas, tablas, vistas, tablas dinámicas, stages y los tipos semiestructurados, todo desde Snowsight.
- Cuándo usarlo
- CREATE, DROP, UNDROP, SHOW, USE y ALTER funcionan igual en todos los tipos de objeto, así que una sola sintaxis cubre toda la jerarquía.
Snowsight y hojas de trabajo
La interfaz web
- Qué es
- Snowsight es "la forma principal de interactuar con Snowflake desde el navegador". Las hojas de trabajo SQL y Python escriben y ejecutan sentencias, filtran resultados y los grafican; los Native Notebooks son la otra opción.
- Cuándo usarlo
- La mayor parte del curso ocurre aquí: subir una hoja desde un archivo .sql, fijar rol y almacén, ejecutar bloque a bloque.
- En código
-- line comment /* block comment */ Cmd/Ctrl + Enter runs the statement under the cursor Cmd + Shift + ? lists the hot keys- Cifras del curso
- Los datos de ejemplo: Tasty Bytes, una empresa ficticia con 450 food trucks y 15 marcas.Lección: Worksheets
Almacén virtual
Cómputo, no almacenamiento
- Qué es
- "Un clúster de recursos de cómputo": CPU, memoria y almacenamiento temporal tomados de AWS, GCP o Azure. Ejecuta la mayoría de las consultas SQL y todo el DML. Pese al nombre es para cómputo, no para almacenamiento, y factura mientras está arrancado.
- Cuándo usarlo
- Elige un tamaño por trabajo: una tabla de menú de 100 filas necesita un XS; la tabla de pedidos de 600 millones de filas recibe uno mayor, y luego vuelves a bajar.
- En código
CREATE WAREHOUSE warehouse_dash; -- defaults to XS USE WAREHOUSE warehouse_gilberto; SHOW WAREHOUSES; ALTER WAREHOUSE w SET WAREHOUSE_SIZE = 'LARGE'; DROP WAREHOUSE warehouse_dash;- Cifras del curso
- 10 tamaños estándar de XS a 6XL; el cómputo y los créditos por hora se duplican en cada paso.Lección: Virtual Warehouses
- XS = 1 crédito por hora (2⁰); 6XL = 512 créditos por hora (2⁹).Lección: Virtual Warehouses
- La tabla de pedidos de los datos de ejemplo tiene más de 600 millones de filas.Lección: Virtual Warehouses
Escalar hacia arriba y hacia fuera
Tamaño frente a clústeres
- Qué es
- Hacia arriba significa un tamaño mayor para una consulta más pesada. Hacia fuera significa un almacén multiclúster que añade clústeres cuando muchos usuarios consultan a la vez, para que nadie espere en cola.
- Cuándo usarlo
- Un almacén enorme durante poco tiempo puede costar los mismos créditos que uno pequeño durante mucho tiempo, y terminar antes.
- En código
ALTER WAREHOUSE w SET MIN_CLUSTER_COUNT = 1 MAX_CLUSTER_COUNT = 3;- Cifras del curso
- El almacén multiclúster de la demo funciona entre 1 y 3 clústeres.Lección: Virtual Warehouses Scaling
Suspensión y reanudación automáticas
Activadas por defecto
- Qué es
- Ambas están activadas por defecto. Un almacén en marcha conserva su caché, así que suspenderlo demasiado pronto puede obligar a repetir trabajo; suspenderlo tarde quema créditos.
- Cuándo usarlo
- Pon un tiempo de suspensión corto en un almacén de consultas puntuales y deja la reanudación activada para que la siguiente consulta funcione sin más.
- En código
ALTER WAREHOUSE w SET AUTO_SUSPEND = 180 AUTO_RESUME = FALSE; ALTER WAREHOUSE w SUSPEND;- Cifras del curso
- La demo fija la suspensión automática en 180 segundos.Lección: Virtual Warehouses Scaling
Optimizado para Snowpark
Memoria extra
- Qué es
- Un tipo de almacén con memoria extra, ofrecido junto a Standard al crear un almacén.
- Cuándo usarlo
- Trabajo de Python y aprendizaje automático con mucha memoria en Snowpark.
- Ángulo de IA
- El curso lo señala como el almacén para cargas de entrenamiento de ML.
Bases de datos y esquemas
db.esquema.objeto
- Qué es
- Base de datos › esquema › tablas, vistas y otros objetos, "como un directorio de archivos". Cada base de datos trae PUBLIC (el esquema por defecto) e INFORMATION_SCHEMA (vistas de metadatos). La base de datos SNOWFLAKE guarda ACCOUNT_USAGE para observabilidad.
- Cuándo usarlo
- Organiza esquemas raw → harmonized → analytics y referencia los objetos por su nombre completo desde cualquier hoja.
- En código
CREATE DATABASE tasty_bytes_sample_data; CREATE SCHEMA tasty_bytes_sample_data.raw_pos; SELECT * FROM tasty_bytes_sample_data.INFORMATION_SCHEMA.TABLES; UNDROP DATABASE tasty_bytes_sample_data;
Explorador de bases de datos
Catálogo con linaje
- Qué es
- En Catalog: una vista jerárquica de todo lo que tu rol puede ver, ordenada por tipo de objeto. Pestañas de columnas, una vista previa de 100 filas (usa un almacén), definiciones de vistas y Lineage, un grafo de objetos anteriores y posteriores donde cada flecha muestra el SQL que hay detrás.
- Cuándo usarlo
- Rastrea una tabla gold hasta sus fuentes antes de cambiarla; el curso llama al linaje "algo realmente importante para la ingeniería de datos".
Tablas y tipos de datos
Microparticiones por debajo
- Qué es
- Columnas y filas, guardadas como microparticiones. Seis categorías de tipos: numérico, cadena y binario, lógico, fecha y hora, semiestructurado, geoespacial. Sinónimos como NUMBER = DECIMAL = NUMERIC y VARCHAR = STRING = TEXT facilitan portar código de otros dialectos.
- Cuándo usarlo
- Declara VARCHAR sin longitud: solo se guarda el espacio usado, y un tamaño menor solo ayuda a algunas herramientas de BI.
- En código
CREATE TABLE raw_pos.menu (menu_id NUMBER(19,0), menu_item_name VARCHAR(16777216), …); INSERT INTO t VALUES (…); SHOW TABLES IN tasty_bytes_sample_data.raw_pos; UNDROP TABLE raw_pos.menu;- Cifras del curso
- NUMBER tiene por defecto precisión 38 y escala 0; VARCHAR, 16.777.216 bytes (16 MB).Lección: Tables
- ORDER_DETAIL tiene más de 670 millones de filas y 9 columnas.Lección: Tables
Tipos de tabla
Permanente, transitoria, temporal
- Qué es
- Permanente: la predeterminada, retención de hasta 90 días en Enterprise más 7 días de fail-safe. Transitoria: retención de 0–1 día, sin fail-safe, vive hasta que se borra. Temporal: 0–1 día, sin fail-safe, desaparece con la sesión.
- Cuándo usarlo
- Tablas de trabajo y staging como transitorias o temporales para dejar de pagar almacenamiento de retención por datos que nadie restaurará.
- En código
CREATE TRANSIENT TABLE raw_pos.truck_transient AS SELECT * FROM raw_pos.truck; CREATE TEMPORARY TABLE raw_pos.truck_temp AS SELECT * FROM raw_pos.truck; SHOW TABLES LIKE 'TRUCK%';
Vistas
Estándar, materializada, segura
- Qué es
- Una vista estándar es "básicamente una consulta guardada" que se vuelve a ejecutar cada vez. Una vista materializada guarda su resultado y se refresca sola, lo que cuesta dinero, y no admite joins. Una vista segura oculta su definición a quien no es propietario, pero se salta el optimizador. Las vistas no se pueden recuperar con UNDROP.
- Cuándo usarlo
- Vistas seguras para datos compartidos; para nuevas transformaciones programadas el curso apunta a tablas dinámicas en lugar de vistas materializadas.
- En código
CREATE VIEW analytics.menu_v AS SELECT …; CREATE MATERIALIZED VIEW analytics.menu_mv AS SELECT … FROM raw_pos.menu; CREATE SECURE VIEW analytics.menu_sv AS SELECT …; SHOW MATERIALIZED VIEWS;
Tablas dinámicas
Una vista con horario
- Qué es
- Definidas por una consulta como una vista, guardadas como una vista materializada, refrescadas según el TARGET_LAG que elijas usando un almacén. Admiten joins y transformaciones complejas: "la flexibilidad de una vista y el rendimiento de una tabla".
- Cuándo usarlo
- Resultados casi en tiempo real con Snowpipe o Snowpipe Streaming "sin código de orquestación"; para transformaciones programadas con joins son "casi siempre la elección correcta".
- En código
CREATE DYNAMIC TABLE analytics.orders_dt TARGET_LAG = '1 minute' WAREHOUSE = compute_wh AS SELECT …; SHOW DYNAMIC TABLES; -- refresh status and lag ALTER DYNAMIC TABLE analytics.orders_dt REFRESH;- Cifras del curso
- Retardo de refresco de 1 minuto o más en la demo; Snowflake trabaja en reducirlo.Lección: Dynamic Tables
Stages
Puente de archivos a tablas
- Qué es
- Un objeto intermedio que "sirve de puente entre la fuente de datos y la tabla". Los stages externos apuntan a almacenamiento S3, GCS o Azure que tú gestionas; los internos los gestiona y factura Snowflake: de usuario (@~), de tabla (@%) y con nombre (@), este último el más flexible.
- Cuándo usarlo
- Cargar CSV desde un bucket: crea el stage, haz LIST, COPY INTO la tabla y luego lee COPY_HISTORY para ver qué entró.
- En código
CREATE STAGE raw_pos.s3load URL = 's3://sfquickstarts/tasty-bytes/' FILE_FORMAT = csv_ff; LIST @raw_pos.s3load; COPY INTO raw_pos.menu FROM @raw_pos.s3load/raw_pos/menu/; PUT file://local.csv @my_internal_stage; SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.COPY_HISTORY;- Cifras del curso
- Un almacén 3XL es 64 veces más potente que un XS y usa 64 veces los créditos.Lección: Stages & Basic Ingestion
Datos semiestructurados
VARIANT, OBJECT, ARRAY
- Qué es
- Datos jerárquicos clave-valor entre lo tabular y lo no estructurado, frecuentes en sensores y web. Cinco formatos: JSON, Avro, ORC, Parquet, XML. Tres tipos: VARIANT (cualquier valor, recuerda su tipo), OBJECT (pares clave-valor), ARRAY (VARIANT ordenados).
- Cuándo usarlo
- Consulta los ingredientes y las etiquetas de salud anidados de una fila de menú con rutas de dos puntos y luego aplánalos con FLATTEN a una fila por ingrediente.
- En código
SELECT menu_item_health_metrics_obj:menu_item_health_metrics[0]:ingredients FROM raw_pos.menu; SELECT TYPEOF(col), col::VARIANT FROM t; SELECT value:ingredients[0] FROM raw_pos.menu, LATERAL FLATTEN(input => menu_item_health_metrics_obj:menu_item_health_metrics);- Cifras del curso
- La demo marca 95 platos sin frutos secos, 81 sin lácteos y 23 saludables de 100.Lección: Semi-Structured Data
Funciones de la plataforma
Lo que la hace distinta
- Qué es
- Las funciones que demuestra la segunda parte del curso: Time Travel y fail-safe, clonado sin copia, monitores de recursos, UDF, procedimientos almacenados, RBAC, integración con Git y Data Clean Rooms.
- Cuándo usarlo
- Redes de seguridad y gobernanza que vienen con la plataforma en lugar de añadirse después.
Time Travel
Consulta el pasado
- Qué es
- Recupera o consulta el estado exacto que tuvo una tabla, un esquema o una base de datos, sobre la retención de datos; UNDROP es una de sus formas. Tres maneras de apuntar atrás: AT una marca de tiempo, AT un desplazamiento en segundos o BEFORE un ID de consulta.
- Cuándo usarlo
- Deshacer un DELETE equivocado o comparar una tabla antes y después de una carga. Una retención larga en una tabla con muchos cambios cuesta almacenamiento.
- En código
ALTER TABLE raw_pos.truck SET DATA_RETENTION_TIME_IN_DAYS = 90; SET ts = CURRENT_TIMESTAMP; SET qid = LAST_QUERY_ID(); SELECT * FROM raw_pos.truck AT(TIMESTAMP => $ts); SELECT * FROM raw_pos.truck AT(OFFSET => -60); SELECT * FROM raw_pos.truck BEFORE(STATEMENT => $qid);- Cifras del curso
- La retención por defecto es 1 día; hasta 90 días en la edición Enterprise.Lección: Time Travel
Fail-safe
El último recurso
- Qué es
- Siete días extra después del periodo de retención en los que el personal de Snowflake, no tú, puede recuperar datos. Solo tablas permanentes.
- Cuándo usarlo
- Un seguro para un desastre, no una herramienta de trabajo: planifica la retención para no necesitarlo nunca.
- Cifras del curso
- El fail-safe dura 7 días.Lección: Permanent, Transient, and Temporary Tables
Clonado sin copia
Copias instantáneas
- Qué es
- Un clon comparte las microparticiones de su origen, así que es casi instantáneo y el almacenamiento solo crece a medida que el clon cambia. Funciona con bases de datos, esquemas, tablas y tablas dinámicas; se pueden clonar clones, y un clon puede tomarse de un punto de Time Travel.
- Cuándo usarlo
- Prueba una migración contra una copia de producción de hace diez minutos y luego bórrala.
- En código
CREATE TABLE raw_pos.truck_dev CLONE raw_pos.truck; CREATE SCHEMA raw_pos_dev CLONE raw_pos; CREATE TABLE raw_pos.truck_10m CLONE raw_pos.truck AT(OFFSET => -600); SELECT clone_group_id, active_bytes FROM INFORMATION_SCHEMA.TABLE_STORAGE_METRICS;- Cifras del curso
- Un clon recién creado muestra ACTIVE_BYTES = 0; clonar bases de datos tarda más por los metadatos.Lección: Cloning
Monitores de recursos
Cuotas de créditos
- Qué es
- Límites de créditos para toda la cuenta (solo un monitor a nivel de cuenta) o para un almacén, con una frecuencia (diaria, semanal, mensual, anual, nunca) y disparadores por porcentaje que avisan, avisan y suspenden (las consultas en curso terminan) o avisan y suspenden de inmediato.
- Cuándo usarlo
- Limita un almacén de prueba o de equipo para que una consulta olvidada no corra todo el fin de semana.
- En código
CREATE RESOURCE MONITOR daily_30 WITH CREDIT_QUOTA = 30 FREQUENCY = DAILY START_TIMESTAMP = IMMEDIATELY TRIGGERS ON 80 PERCENT DO NOTIFY ON 100 PERCENT DO SUSPEND ON 110 PERCENT DO SUSPEND_IMMEDIATE; ALTER WAREHOUSE w SET RESOURCE_MONITOR = daily_30; SHOW RESOURCE MONITORS;- Cifras del curso
- Cuota de la demo: 30 créditos al día, por debajo de lo que gasta un XS en 24 horas; disparadores al 80, 100 y 110 %.Lección: Resource Monitors
UDF y UDTF
Tus propias funciones
- Qué es
- Una UDF devuelve un valor escalar y vive en un esquema (PUBLIC por defecto); los lenguajes son SQL, Python, JavaScript, Java y Scala. Una UDF en Python necesita LANGUAGE, RUNTIME_VERSION y HANDLER, puede importar numpy o pandas y puede vectorizarse para procesar lotes. Una UDTF devuelve una tabla y se llama con TABLE(); sin Scala.
- Cuándo usarlo
- Encapsula una conversión de divisa o una regla de winsorización una vez y llámala en cualquier SELECT.
- En código
CREATE FUNCTION to_cad(usd NUMBER) RETURNS NUMBER AS $$ usd * 1.35 $$; CREATE FUNCTION winsorize(v FLOAT, hi FLOAT, lo FLOAT) RETURNS FLOAT LANGUAGE PYTHON RUNTIME_VERSION = '3.11' HANDLER = 'w' AS $$ … $$; CREATE FUNCTION expensive_items(p NUMBER) RETURNS TABLE(name VARCHAR, price NUMBER) AS $$ SELECT … $$; SELECT * FROM TABLE(expensive_items(15)); SHOW FUNCTIONS; -- is_table_function column- Cifras del curso
- winsorize(12, 11, 4) devuelve 11; la demo de UDTF lista los platos de más de 15 $.Lección: User-Defined Functions
Procedimientos almacenados
Pasos con efectos
- Qué es
- Una serie de pasos guardada y reutilizable que, a diferencia de una UDF, puede ejecutar DDL y DML y no tiene que devolver nada. Se escribe en Python, Java, JavaScript, Scala o SQL con Snowflake Scripting (DECLARE / BEGIN / EXCEPTION / END, := para asignar, :var para referenciar). Cada ejecución necesita su propio CALL. SYSTEM$SEND_EMAIL es uno integrado.
- Cuándo usarlo
- Tareas de mantenimiento: borrar filas de más de 180 días y programar el CALL con un task.
- En código
CREATE OR REPLACE PROCEDURE delete_old() RETURNS BOOLEAN LANGUAGE SQL AS $$ BEGIN DELETE FROM raw_pos.order_header WHERE order_ts < DATEADD(day, -180, (SELECT MAX(order_ts) FROM raw_pos.order_header)); RETURN TRUE; END $$; CALL delete_old(); DESCRIBE PROCEDURE delete_old();- Cifras del curso
- Los pedidos de ejemplo van del 1 de enero de 2019 al 1 de noviembre de 2022; SHOW PROCEDURES lista 4 procedimientos integrados.Lección: Stored Procedures
Control de acceso por roles
Privilegios → roles → usuarios
- Qué es
- Los privilegios sobre objetos protegibles se conceden a roles, los roles a usuarios y los roles a otros roles para heredar; los roles son "cubos de privilegios". Seis roles del sistema: ORGADMIN, ACCOUNTADMIN, SECURITYADMIN, USERADMIN, SYSADMIN y PUBLIC. La gobernanza también protege frente a "actores bienintencionados pero falibles".
- Cuándo usarlo
- Da a un rol de ingeniería de datos exactamente los almacenes y esquemas que necesita; el curso usa ACCOUNTADMIN por comodidad y dice que "no es una buena práctica".
- Ángulo de IA
- Los mismos roles gobiernan quién puede llamar a funciones de Cortex y abrir una app de Streamlit.
- En código
CREATE ROLE tasty_de; GRANT CREATE WAREHOUSE ON ACCOUNT TO ROLE tasty_de; GRANT ROLE tasty_de TO USER peter; SHOW GRANTS TO ROLE tasty_de; USE ROLE tasty_de;
Integración con GitGitHub, GitLab, Bitbucket
- Qué es
- Un repository stage es un clon sincronizado de un repositorio Git (ramas, commits, archivos), configurado con una API integration y, para repos privados, un secret. Los Notebooks hacen pull, editan, hacen push y cambian de rama dentro de Snowsight; EXECUTE IMMEDIATE FROM ejecuta archivos SQL o Python directamente desde el stage.
- Cuándo usarlo
- Versiona tus scripts de configuración en Git y despliégalos desde Snowflake; para Git bidireccional completo en otros objetos usa la CLI o un entorno local.
- En código
CREATE GIT REPOSITORY tasty_repo API_INTEGRATION = github_int ORIGIN = 'https://github.com/…'; EXECUTE IMMEDIATE FROM @tasty_repo/branches/main/setup.sql;
Data Clean Rooms
Analiza sin compartir filas
- Qué es
- Dos partes analizan sus datos combinados sin que ninguna vea las filas en bruto de la otra: el proveedor define plantillas de consulta, el consumidor solo ejecuta las aprobadas, los umbrales de agregación bloquean inferencias y el acceso se puede revocar. Una app web sin código para negocio más una API para desarrolladores; los consumidores que no son clientes de Snowflake reciben una cuenta gestionada.
- Cuándo usarlo
- Un minorista y un medio miden el solapamiento de audiencias y aprenden que "el 40 % de tus clientes coinciden", y nada sobre personas concretas.
Herramientas de desarrollo
Python, CLI, editores, drivers
- Qué es
- Las formas de trabajar con Snowflake más allá de la hoja SQL: Snowpark DataFrames, Notebooks, la extensión de VS Code, la Snowflake CLI, los drivers y conectores, y la API de Python.
- Cuándo usarlo
- Elige la superficie que encaja con la tarea: un notebook para explorar, la CLI para automatizar, un driver para construir una app.
Snowpark DataFramesPython junto a los datos
- Qué es
- Snowpark es "el conjunto de capacidades no SQL de Snowflake". Un DataFrame de Snowpark ejecuta tu lógica Python dentro del cómputo de Snowflake "justo al lado de los datos" en vez de tenerlos en memoria local como pandas, y evalúa de forma perezosa: nada se ejecuta hasta una acción como show() o collect().
- Cuándo usarlo
- Agrega 600 millones de filas desde un portátil con 16 GB de RAM y luego pasa a pandas con to_pandas() solo el resultado pequeño para matplotlib o scikit-learn.
- En código
from snowflake.snowpark.context import get_active_session session = get_active_session() df = session.table('raw_pos.order_header').filter(col('truck_id') == 15).select('order_id', 'order_total') df.group_by('truck_id').agg(sum_('order_total')).sort('truck_id').show() df.write.save_as_table('analytics.truck_totals', mode='overwrite') pip install snowflake-snowpark-python # local; credentials from environment variables, never in source
Snowflake Notebooks
Celdas SQL, Python y Markdown
- Qué es
- El entorno recomendado para trabajar con Snowpark, que sustituye a las hojas de Python: ejecuta celdas una a una, mezcla SQL y Python, Snowpark preinstalado, conectado a Git desde la pestaña Files y gobernado por RBAC.
- Cuándo usarlo
- Explora, entrena y documenta en un solo sitio; `snow notebook run` ejecuta un notebook a demanda desde un pipeline.
- Ángulo de IA
- Donde el curso ejecuta sus demos de Cortex y Snowpark ML.
Extensión de VS Code
Mantenida por Snowflake
- Qué es
- Verificada y mantenida por Snowflake: autocompletado, enlaces a la documentación al pasar el cursor, historial de consultas, explorador de objetos, contexto de ejecución y cambio de rol. El identificador de cuenta usa "-" donde la URL tiene ".".
- Cuándo usarlo
- Escribe SQL y Python contra Snowflake en el editor que ya usas, con el mismo modelo de roles.
Snowflake CLI
`snow` en la terminal
- Qué es
- Se instala con pip y la herramienta se llama `snow`; las conexiones viven en ~/.snowflake/config.toml (dev, staging, prod) y se eligen con --connection. Grupos de comandos: object, sql, notebook, cortex y git. El paquete antiguo "Snowflake CLI labs" está obsoleto.
- Cuándo usarlo
- Scripts y CI: lista objetos, ejecuta archivos SQL, lanza notebooks, sincroniza un proyecto Git.
- Ángulo de IA
- `snow cortex` llama a las funciones de IA de Cortex desde la terminal y encadena la respuesta en texto plano.
- En código
pip install snowflake-cli snow connection add && snow connection test snow sql -q "SELECT COUNT(*) FROM raw_pos.menu" snow object list warehouse snow notebook run my_notebook snow git fetch tasty_repo
Drivers y conectores
Python, JDBC, Node.js, Go, PHP
- Qué es
- El Snowflake Connector para Python, los drivers JDBC, Node.js, Go y PHP PDO, un conector de Django construido sobre el de Python y SQLAlchemy. El patrón habitual: conectar y luego ejecutar SQL según lo que el usuario hace en la interfaz.
- Cuándo usarlo
- Integrar Snowflake en una pila de aplicaciones existente: el consejo del curso es aprender primero los drivers, conectores y la API de Python.
Snowflake Python APIGestiona objetos desde Python
- Qué es
- Crea, modifica y borra tablas, tasks, almacenes, bases de datos y esquemas desde Python, y gestiona Snowpark Container Services y tasks.
- Cuándo usarlo
- La infraestructura de una app de datos escrita en el mismo lenguaje que la app.
Ingeniería de datos
Ingerir, transformar, orquestar, observar
- Qué es
- Los cuatro pilares del panorama de ingeniería de datos según el curso: ingesta, transformación, orquestación y observabilidad, más la compartición de datos sin copia. Snowflake es "un solo producto", así que cada pilar reutiliza los mismos objetos.
- Cuándo usarlo
- Un pipeline completo sin salir de la plataforma: Snowpipe carga, las tablas dinámicas transforman, los tasks programan, las event tables registran.
Ingesta
De lotes a streaming
- Qué es
- Un espectro de lotes a baja latencia: COPY INTO para lotes, Snowpipe para archivos continuos, Snowpipe Streaming y el conector de Kafka para filas en segundos, más conectores nativos y las interfaces Python, ODBC y SQLAlchemy.
- Cuándo usarlo
- Ajusta el cargador a la latencia que necesita el negocio en lugar de hacer streaming de todo.
COPY INTO
Cargas por lotes
- Qué es
- Carga archivos de un stage a una tabla usando un formato de archivo. COPY_HISTORY en ACCOUNT_USAGE muestra lo cargado, con una latencia de hasta 1–2 horas.
- Cuándo usarlo
- La carga nocturna de los CSV que deja un socio.
- En código
COPY INTO raw_pos.menu FROM @raw_pos.s3load/raw_pos/menu/ FILE_FORMAT = (FORMAT_NAME = csv_ff); SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.COPY_HISTORY WHERE table_name = 'MENU';
SnowpipeLlegan archivos, aparecen filas
- Qué es
- Carga continua en menos de un minuto: con AUTO_INGEST = TRUE un evento del almacenamiento en la nube dispara el COPY INTO del pipe sin orquestación manual. Necesita una storage integration, "una interfaz entre Snowflake y servicios de terceros": una política y un rol IAM en AWS, el ARN del rol en Snowflake y después la política de confianza editada con el ARN del usuario IAM de Snowflake y el external ID.
- Cuándo usarlo
- Zona de aterrizaje en S3 → tabla en Snowflake en menos de un minuto tras cada subida. El curso avisa de que lo más difícil son los permisos entre AWS y Snowflake.
- En código
CREATE STORAGE INTEGRATION s3_int TYPE = EXTERNAL_STAGE STORAGE_PROVIDER = 'S3' ENABLED = TRUE STORAGE_AWS_ROLE_ARN = 'arn:aws:iam::…:role/snowflake' STORAGE_ALLOWED_LOCATIONS = ('s3://bucket/path/'); DESCRIBE INTEGRATION s3_int; -- IAM user ARN and external ID for the trust policy CREATE STAGE raw_pos.s3_stage STORAGE_INTEGRATION = s3_int URL = 's3://bucket/path/'; CREATE PIPE raw_pos.menu_pipe AUTO_INGEST = TRUE AS COPY INTO raw_pos.menu FROM @raw_pos.s3_stage; ALTER PIPE raw_pos.menu_pipe SET PIPE_EXECUTION_PAUSED = TRUE;- Cifras del curso
- El rol de un pipe necesita USAGE sobre base de datos, esquema y stage, INSERT sobre la tabla y OWNERSHIP del pipe.Lección: Snowpipe
Snowpipe Streaming y Kafka
Filas en segundos
- Qué es
- Streaming a nivel de fila a través de una API y el SDK de Java, cargando en segundos frente al menos-de-un-minuto de Snowpipe; el conector de Kafka lo usa.
- Cuándo usarlo
- Eventos de clics o IoT que una tabla dinámica convierte en métricas casi en tiempo real.
Conectores nativos
ServiceNow, Google Analytics…
- Qué es
- Conectores construidos por Snowflake para fuentes como ServiceNow y Google Analytics, junto a las interfaces Python, ODBC y SQLAlchemy para todo lo demás.
- Cuándo usarlo
- Datos de SaaS sin escribir un extractor.
Compartición de datos y Marketplace
Sin copia, solo lectura
- Qué es
- Las comparticiones son sin copia y de solo lectura, ofrecidas a través del Snowflake Marketplace o directamente; el consumidor crea una base de datos a partir de la compartición y la consulta en vivo, sin ingesta.
- Cuándo usarlo
- Cruza un conjunto de datos meteorológicos con tus pedidos sin pipeline, o publica un conjunto de datos para socios.
- En código
CREATE DATABASE weather FROM SHARE provider_account.weather_share;
Transformación
SQL, Snowpark, tablas dinámicas
- Qué es
- SQL, Snowpark DataFrames, UDF y UDTF, procedimientos almacenados y tablas dinámicas, que el curso describe como "una tabla con orquestación incorporada".
- Cuándo usarlo
- Capas raw → harmonized → analytics reconstruidas con el retardo que elijas, sin planificador que mantener.
Orquestación
Streams + tasks
- Qué es
- Un stream registra las inserciones, actualizaciones y borrados de una tabla; un task ejecuta SQL o un procedimiento con un horario, un intervalo o tras otro task, formando un DAG; los tasks serverless no necesitan almacén. Juntos dan "procesamiento incremental eficiente de datos".
- Cuándo usarlo
- Procesa solo las filas que cambiaron desde la última ejecución, cada diez minutos.
- En código
CREATE STREAM raw_pos.menu_stream ON TABLE raw_pos.menu; CREATE TASK analytics.refresh_menu WAREHOUSE = compute_wh SCHEDULE = '10 MINUTE' AS INSERT INTO analytics.menu_changes SELECT * FROM raw_pos.menu_stream; ALTER TASK analytics.refresh_menu RESUME;
Airflow, Prefect, dbt
Orquestación de código abierto
- Qué es
- Los orquestadores de código abierto que el curso nombra como alternativa a streams y tasks: Apache Airflow, Prefect y dbt.
- Cuándo usarlo
- Equipos que ya usan Airflow o dbt conservan su planificador y lo apuntan a Snowflake.
Observabilidad
Alertas, logs, trazas, DAG
- Qué es
- Alertas y notificaciones (SYSTEM$SEND_EMAIL), registros y eventos de traza guardados en event tables, el grafo de tasks mostrado como DAG en Snowsight y vistas como COPY_HISTORY.
- Cuándo usarlo
- Un correo cuando falla una carga o se cruza un umbral de créditos, y una tabla de trazas para depurar un procedimiento.
- En código
CREATE EVENT TABLE analytics.events; CREATE ALERT low_sales WAREHOUSE = compute_wh SCHEDULE = '60 MINUTE' IF (EXISTS (SELECT … )) THEN CALL SYSTEM$SEND_EMAIL(…);
IA con Cortex
LLM dentro de la plataforma
- Qué es
- Snowflake Cortex es "el servicio inteligente y totalmente gestionado" y "la cesta de funciones de IA listas para usar". La IA se ejecuta dentro de la misma plataforma que el almacenamiento, el cómputo y la gobernanza, así que los datos nunca salen y RBAC se aplica solo. Las funciones van de segundos (sin código) a minutos y a horas (a medida).
- Cuándo usarlo
- Sentimiento, traducción, extracción, búsqueda y respuestas en lenguaje natural sobre datos gobernados, desde una sentencia SQL.
- Ángulo de IA
- El curso llama a esta combinación la "AI Data Cloud".
Gobernanza incorporada
Los datos nunca salen
- Qué es
- Las mismas políticas de RBAC y gobernanza que protegen las tablas se aplican automáticamente a las funciones de IA; el modelo se ejecuta donde están los datos.
- Cuándo usarlo
- Ejecuta un LLM sobre texto de clientes sin exportarlo a una API de terceros.
- Ángulo de IA
- La gobernanza es el argumento para la IA dentro del almacén de datos.
Funciones LLM de Cortex
IA dentro de SELECT
- Qué es
- Funciones para tareas concretas que se llaman dentro de un SELECT sin modelo que gestionar: AI_SENTIMENT (positivo, negativo, neutro), AI_TRANSLATE, AI_EXTRACT (preguntas sobre texto), AI_CLASSIFY, AI_PARSE_DOCUMENT y AI_COMPLETE (cualquier prompt a cualquier modelo admitido). SUMMARIZE se declara obsoleta; usa COMPLETE con un prompt de resumen.
- Cuándo usarlo
- Puntúa el sentimiento de cada reseña, traduce una columna, clasifica tickets, todo como columnas de una consulta.
- Ángulo de IA
- Toda la familia funciona con LLM y recorre fila a fila tus tablas.
- En código
SELECT AI_SENTIMENT(review_text) FROM reviews; SELECT AI_TRANSLATE(review_text, 'en', 'es') FROM reviews; SELECT AI_EXTRACT(review_text, 'Which dish is mentioned?') FROM reviews; SELECT AI_CLASSIFY(review_text, ['service', 'food', 'price']) FROM reviews; SELECT AI_PARSE_DOCUMENT(@docs, relative_path) FROM DIRECTORY(@docs);
COMPLETE en la práctica
Prompts sobre filas
- Qué es
- SNOWFLAKE.CORTEX.COMPLETE(modelo, prompt) aparece como una UDF bajo base_de_datos.esquema.función. La demo usa mistral-7b; un modelo mayor cuesta más por token y una opción de máximo de tokens limita la respuesta. Los prompts se construyen por fila con CONCAT, y una conversación es un array de objetos {role, content} con roles system, user y assistant.
- Cuándo usarlo
- Una frase de marketing corta por plato, generada para cinco filas a la vez mientras ajustas el prompt.
- Ángulo de IA
- Texto generativo desde SQL, con el modelo elegido en cada llamada.
- En código
SELECT SNOWFLAKE.CORTEX.COMPLETE('mistral-7b', 'Why is mango sticky rice tasty?'); SELECT SNOWFLAKE.CORTEX.COMPLETE('mistral-7b', CONCAT('Tell me why this food is tasty: ', menu_item_name)) FROM raw_pos.menu LIMIT 5; SELECT SNOWFLAKE.CORTEX.COMPLETE('mistral-7b', [{'role': 'system', 'content': 'You are a chef.'}, {'role': 'user', 'content': 'Suggest a dessert.'}], {'max_tokens': 100});- Cifras del curso
- La demo por filas se limita a 5 filas; la demo de la CLI cambia a un modelo Llama.Lección: Snowflake Cortex LLM Functions
Cortex Search
Recuperación para RAG
- Qué es
- Un servicio de búsqueda semántica sobre una columna de texto: la parte de recuperación de la generación aumentada por recuperación, combinada con COMPLETE para la respuesta. Se configura con la columna, un almacén, un retardo de refresco y una consulta; se usa a través de una API REST o desde Streamlit. Los embeddings requieren una cuenta de pago, así que falla en una cuenta de prueba.
- Cuándo usarlo
- Chatea sobre tus propios documentos con respuestas apoyadas en los pasajes que encuentra.
- Ángulo de IA
- La "R" de RAG, gestionada e indexada a partir de una columna de tabla.
- En código
CREATE CORTEX SEARCH SERVICE review_search ON review_text WAREHOUSE = compute_wh TARGET_LAG = '1 hour' AS SELECT review_text, truck_id FROM reviews;
Cortex Analyst
Preguntas, no SQL
- Qué es
- Responde preguntas en lenguaje natural sobre tus datos sin escribir SQL, expuesto como API REST. Necesita un modelo semántico que defina los términos de negocio, y el curso lo considera fiable para aplicaciones en producción.
- Cuándo usarlo
- Analítica de autoservicio en una app: "ingresos por marca de food truck el último trimestre" escrito por un responsable.
- Ángulo de IA
- Texto a SQL apoyado en tu modelo semántico y no en nombres de tablas en bruto.
Cortex Fine-Tuning
Ajusta un modelo in situ
- Qué es
- Ajusta un modelo base con pares de entrada y salida ideal guardados en Snowflake, sin GPU que aprovisionar, y luego llama al resultado como a cualquier otra función de Cortex.
- Cuándo usarlo
- Tus propias etiquetas de clasificación o tu estilo propio, aprendidos de ejemplos que ya tienes en una tabla.
- Ángulo de IA
- Modelos personalizados sin salir del perímetro de gobernanza.
Document AI
De PDF a tablas
- Qué es
- Un modelo gestionado por Snowflake que extrae datos estructurados de PDF, formularios y contratos a columnas de tabla.
- Cuándo usarlo
- Totales y fechas de facturas a partir de una carpeta de documentos escaneados.
- Ángulo de IA
- Sin entrenamiento ni alojamiento de modelos por tu parte.
AI/ML Studio
Apuntar y hacer clic
- Qué es
- Una interfaz de Snowsight para previsiones y clasificación sin escribir SQL.
- Cuándo usarlo
- Un analista construye una previsión de demanda en minutos antes de que nadie escriba código.
- Ángulo de IA
- El extremo de los "segundos" del espectro: IA sin código.
Universal Search
Encuentra cualquier cosa con palabras
- Qué es
- Búsqueda en lenguaje natural por tus objetos, los listados del Marketplace, la documentación y los recursos de la comunidad.
- Cuándo usarlo
- "¿Qué tabla tiene los ingresos por food truck?" en lugar de recorrer esquemas.
- Ángulo de IA
- Descubrimiento con LLM dentro de Snowsight.
Snowflake Copilot
Del lenguaje natural al SQL
- Qué es
- Un asistente LLM en Snowsight que convierte una petición en lenguaje natural en SQL y la refina contigo. La transcripción escribe el nombre como "Snowflake Coco".
- Cuándo usarlo
- Redacta el GROUP BY que recuerdas a medias y edítalo luego en la hoja.
- Ángulo de IA
- Texto a SQL para la persona que escribe la consulta.
Cortex CLI
`snow cortex`
- Qué es
- La CLI expone complete, extract-answer, sentiment, translate y search. La salida es texto plano para encadenar o redirigir, y se puede pasar un archivo por tubería para tareas sobre documentos.
- Cuándo usarlo
- Resume un archivo de registro desde un script de shell con un modelo que corre en tu cuenta.
- Ángulo de IA
- Las mismas funciones de Cortex, desde la terminal.
- En código
snow cortex --help snow cortex complete "Why is mango sticky rice tasty?" --model llama3-8b cat notes.txt | snow cortex summarize
Snowpark Container ServicesLa vía de escape
- Qué es
- Trae tu propio modelo, o un LLM de un socio del Marketplace, en contenedores sobre infraestructura gestionada por Snowflake con GPU incluidas; cualquier lenguaje (C/C++, Node.js, Python, R, React).
- Cuándo usarlo
- Un modelo que Cortex no ofrece, o un front-end en React que debe vivir dentro de la cuenta.
- Ángulo de IA
- El extremo de las "horas" del espectro: IA totalmente a medida junto a los datos.
Aprendizaje automático
Entrena donde están los datos
- Qué es
- El ML se ejecuta en CPU o GPU junto a los datos bajo la gobernanza de Snowflake: funciones ML de Cortex invocables desde SQL, la librería Snowpark ML (modelado, registro de modelos, feature store), notebooks y almacenes optimizados para Snowpark.
- Cuándo usarlo
- De una previsión en una llamada SQL a un modelo XGBoost ajustado y registrado, sin sacar los datos.
- Ángulo de IA
- El ML clásico convive con las funciones LLM de Cortex en la misma plataforma.
Funciones ML de Cortex
FORECAST, ANOMALY, CLASSIFY
- Qué es
- Modelos de ML invocables desde SQL (no LLM) que suelen necesitar datos de entrenamiento: FORECAST para series temporales, ANOMALY_DETECTION para valores atípicos, TOP_INSIGHTS para los factores de un cambio en una métrica (no causal) y CLASSIFICATION, binaria o multiclase. FORECAST, ANOMALY_DETECTION y CLASSIFICATION usan gradient boosting; FORECAST y ANOMALY_DETECTION se crean y luego se invocan con CALL, las otras se ejecutan dentro de SELECT.
- Cuándo usarlo
- Las ventas del mes que viene por food truck o una marca en un total diario extraño, sin nada de Python.
- Ángulo de IA
- Modelos prefabricados que entrenas con una sentencia.
- En código
CREATE SNOWFLAKE.ML.FORECAST sales_fc (INPUT_DATA => TABLE(daily_sales), TIMESTAMP_COLNAME => 'day', TARGET_COLNAME => 'revenue'); CALL sales_fc!FORECAST(FORECASTING_PERIODS => 30); SELECT SNOWFLAKE.ML.TOP_INSIGHTS(…); SELECT model_binary!PREDICT(…);
Snowpark ML ModelingEstilo scikit-learn, en Snowflake
- Qué es
- Una librería Python (snowflake.ml) con API al estilo de scikit-learn, XGBoost y LightGBM para preprocesado, ingeniería de características y entrenamiento que se ejecutan dentro de Snowflake; algunos pasos y el ajuste de hiperparámetros se distribuyen. Antes de ella, hacer ML en Snowflake significaba procedimientos almacenados o UDF hechos a mano.
- Cuándo usarlo
- Conserva los hábitos de sklearn y elimina la exportación de datos.
- Ángulo de IA
- El entrenamiento va a los datos en vez de llevar los datos al entrenador.
- En código
from snowflake.ml.modeling.preprocessing import LabelEncoder from snowflake.ml.modeling.xgboost import XGBClassifier enc = LabelEncoder(input_cols=['city'], output_cols=['city_code']).fit(df) model = XGBClassifier(input_cols=features, label_cols=['label']).fit(train_df) model.score(test_df)
Model Registry
Modelos versionados de cualquier origen
- Qué es
- Artefactos de modelos versionados con sus metadatos; gestiona y ejecuta modelos de cualquier origen, incluidos SageMaker, Azure ML, Vertex AI y LLM de Hugging Face.
- Cuándo usarlo
- Un solo lugar para registrar, versionar y servir el modelo, lo haya entrenado la plataforma que sea.
- Ángulo de IA
- Los modelos de Hugging Face se pueden registrar y ejecutar junto a los datos.
- En código
registry.log_model(model, model_name='truck_classifier', version_name='v1')
Feature Store
Características con una sola fuente de verdad
- Qué es
- Crea, guarda, gestiona y sirve características como "una única fuente de verdad" con actualizaciones continuas.
- Cuándo usarlo
- Entrenamiento e inferencia leen las mismas definiciones de características, así que el modelo ve en producción lo que vio al entrenar.
- Ángulo de IA
- La capa de datos bajo los pipelines de ML y de LLM.
La demo de XGBoostSnowpark ML de principio a fin
- Qué es
- Sesión a partir de credenciales, exploración con DataFrames de Snowpark (count, describe, group_by), un LabelEncoder, una partición aleatoria, tablas guardadas de vuelta, un XGBClassifier entrenado y evaluado, todo en Snowflake. La misma tarea podría usar la función CLASSIFICATION de Cortex ML.
- Cuándo usarlo
- La plantilla para un primer modelo dentro del almacén de datos: preprocesar, partir, entrenar, evaluar, registrar.
- En código
train_df, test_df = df.random_split(weights=[0.9, 0.1], seed=0) train_df.write.mode('overwrite').save_as_table('train')- Cifras del curso
- 8 barrios y 20 años de datos diarios: 7.300 filas; un conjunto de prueba del 10 % con 730 filas, 730 de 730 predicciones correctas.Lección: Snowpark ML Modeling
Aplicaciones y la Data Cloud
Construye y comparte sobre Snowflake
- Qué es
- Una app es un front-end, un back-end y una API, "la pila de la aplicación". Snowflake puede ser el back-end detrás de cualquier front-end o alojar la app completa: Streamlit en Snowflake, tablas híbridas, el Native App Framework y el Marketplace, todo dentro de la Data Cloud.
- Cuándo usarlo
- Si empiezas de cero: comienza con Streamlit en Snowflake, un paso hacia las Native Apps. Si integras: aprende primero los drivers.
Streamlit en Snowflake
Apps de datos en Python
- Qué es
- Streamlit es un framework Python de código abierto para apps de datos "con solo unas líneas de Python". Integrado en Snowsight: sin mover datos, despliegue seguro con un clic alojado por Snowflake, compartición por URL bajo el RBAC existente, apps multipágina y marca propia, baja latencia porque el código está junto a los datos.
- Cuándo usarlo
- Un explorador de ingresos con un deslizador de fechas y una selección múltiple de marcas para los responsables de los food trucks, o un modelo convertido en app sin trabajo de front-end.
- En código
import streamlit as st session = get_active_session() @st.cache_data def load(q): return session.sql(q).to_pandas() city = st.select_slider('City', cities) brands = st.multiselect('Brand', brands) tab1, tab2 = st.tabs(['Revenue', 'Orders'])- Cifras del curso
- La app de la demo tiene menos de 100 líneas de código y consulta orders_v, una vista de más de 690 millones de filas.Lección: Streamlit in Snowflake
Tablas híbridas (Unistore)
Transacciones + analítica
- Qué es
- Tablas que atienden cargas transaccionales y analíticas desde una sola base de datos, así que una app no necesita sistemas OLTP y OLAP separados; la carga de trabajo Unistore.
- Cuándo usarlo
- Una app Django o Streamlit escribe sus registros en una tabla híbrida y la misma tabla alimenta la analítica.
Native App Framework
Empaqueta, publica, instala
- Qué es
- Empaqueta la lógica de la app como un application package, publícalo en el Snowflake Marketplace y deja que los consumidores lo prueben, compren e instalen para ejecutarlo en su propio cómputo.
- Cuándo usarlo
- Vende un producto de datos a otras cuentas de Snowflake sin alojar infraestructura.
Elecciones de arquitecturaFuera o todo dentro
- Qué es
- Front-end fuera de Snowflake con Snowflake como back-end: React con el driver de Node.js, o Django o Streamlit de código abierto con el conector de Python escribiendo en tablas híbridas, y la API de Python gestionando contenedores y tasks. O todo dentro: un front-end React en Snowpark Container Services, por menor latencia, requisitos de seguridad o regulatorios, menor tiempo al mercado, escalabilidad, alta disponibilidad y menos operaciones.
- Cuándo usarlo
- Elige según dónde deben quedarse los datos y quién opera los servidores.
La Data Cloud
Plataforma + contenido
- Qué es
- Dos elementos: la plataforma y el contenido que hay en ella: conjuntos de datos, modelos de ML y aplicaciones. Dentro de una organización, sin silos; cualquiera con los permisos adecuados llega al contenido sin moverlo. Entre organizaciones el Marketplace construye puentes: acceso sin copia entre nubes y regiones, "sin necesidad de ingesta", con "un único modelo de gobernanza que lo atraviesa todo".
- Cuándo usarlo
- Cruza un conjunto de datos meteorológicos o instala una app geoespacial del Marketplace y consúltala junto a tus propias tablas.
- Ángulo de IA
- El ejemplo final del curso: Snowpipe → limpiar → feature store → entrenar un modelo → servirlo en Streamlit, una sola plataforma de principio a fin.
Fuente: Coursera, "Intro to Snowflake for Devs, Data Scientists, Data Engineers" de Snowflake (instructor Peter Olson), transcripción obtenida el 5 de noviembre de 2026. Las definiciones, comandos y cifras son los del curso; algunas funciones estaban en vista previa al grabarse, así que consulta docs.snowflake.com para la disponibilidad y los precios actuales.