Métodos de optimización

Automatización de canalizaciones de datos en Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Más cómputo no siempre soluciona

casa más grande

Automatización de canalizaciones de datos en Snowflake

Cuatro enfoques distintos

nanobanana: half: Cuatro iconos geométricos de herramientas en una cuadrícula 2x2, diseño plano abstracto, colores azul marino y verde de DataCamp, fondo blanco, sin texto, minimalista y limpio

  • Search Optimization: búsquedas por igualdad en IDs de alta cardinalidad
  • Query Acceleration Service: scans pesados impredecibles
  • Automatic Clustering: filtros de rango repetidos en las mismas columnas
  • Materialized Views: agregaciones costosas frecuentes
Automatización de canalizaciones de datos en Snowflake

Search Optimization

  • Ayuda en consultas que buscan pocas filas en una tabla grande
  • Crea una ruta de acceso persistente; se pueden omitir micro-particiones
  • Coste de almacenamiento + cómputo para mantener la ruta
ALTER TABLE logistics.shipments
  ADD SEARCH OPTIMIZATION;
1 docs.snowflake.com/en/user-guide/search-optimization-service
Automatización de canalizaciones de datos en Snowflake

Query Acceleration Service

  • Maneja scans grandes e impredecibles
  • Compatible con SELECT, INSERT, CREATE TABLE AS SELECT, COPY INTO
  • QUERY_ACCELERATION_MAX_SCALE_FACTOR: por defecto 8; 0 = ilimitado, no desactiva
ALTER WAREHOUSE harbr_wh SET
  ENABLE_QUERY_ACCELERATION = TRUE
  QUERY_ACCELERATION_MAX_SCALE_FACTOR 
  = 8;
1 docs.snowflake.com/en/user-guide/query-acceleration-service
Automatización de canalizaciones de datos en Snowflake

Clustering automático

  • Para tablas donde se repiten las mismas columnas de filtro
  • Snowflake reordena micro-particiones para que los rangos omitan más datos
  • Mantenimiento en segundo plano: no requiere warehouse
  • Compromiso: coste de cómputo continuo al llegar nuevos datos
ALTER TABLE logistics.delivery_events
  CLUSTER BY (region, dispatch_date);
1 docs.snowflake.com/en/user-guide/tables-auto-reclustering
Automatización de canalizaciones de datos en Snowflake

Vistas materializadas

  • Útil cuando una consulta costosa se repite mucho
  • Precalcula y guarda el resultado; las lecturas usan ese resultado
  • Snowflake la mantiene automáticamente en segundo plano
  • Restricciones SQL: sin HAVING, joins limitados, sin window functions
CREATE MATERIALIZED VIEW 
logistics.emea_summary_mv AS
  SELECT region, carrier_id,
         COUNT(*) AS shipments,
         AVG(delivery_days) AS avg_days
  FROM logistics.shipments
  WHERE region = 'EMEA'
  GROUP BY region, carrier_id;
1 docs.snowflake.com/en/user-guide/views-materialized
Automatización de canalizaciones de datos en Snowflake

Elegir el método adecuado

Señal en Query Profile Método a considerar
TableScan lee casi todas las particiones; búsqueda por igualdad en columna de alta cardinalidad Search Optimization
Agregación pesada, scans grandes, llegada impredecible Query Acceleration Service
Se repiten las mismas columnas de filtro; poda débil Automatic Clustering
Misma agregación costosa frecuente en datos de cambio lento Materialized View
  • Los métodos se complementan
Automatización de canalizaciones de datos en Snowflake

¡Vamos a practicar!

Automatización de canalizaciones de datos en Snowflake

Preparing Video For Download...