Méthodes d’optimisation

Automatisation des pipelines de données dans Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Plus de calcul n’est pas toujours la solution

maison plus grande

Automatisation des pipelines de données dans Snowflake

Quatre approches

nanobanana : moitié : Quatre icônes d’outils géométriques distinctes en grille 2x2, design plat abstrait, couleurs bleu marine et vert DataCamp, fond blanc, sans texte, minimaliste et épuré

  • Search Optimization – recherches d’égalité sur des ID à forte cardinalité
  • Query Acceleration Service – scans lourds imprévisibles
  • Clustering automatique – filtres de plage répétés sur les mêmes colonnes
  • Vues matérialisées – agrégations coûteuses fréquentes
Automatisation des pipelines de données dans Snowflake

Search Optimization

  • Aide les requêtes cherchant peu de lignes dans une grande table
  • Construit un chemin d’accès persistant; certaines micro-partitions sont sautées
  • Coût stockage + calcul pour maintenir ce chemin
ALTER TABLE logistics.shipments
  ADD SEARCH OPTIMIZATION;
1 docs.snowflake.com/en/user-guide/search-optimization-service
Automatisation des pipelines de données dans Snowflake

Query Acceleration Service

  • Gère de grands scans imprévisibles
  • Prend en charge SELECT, INSERT, CREATE TABLE AS SELECT, COPY INTO
  • QUERY_ACCELERATION_MAX_SCALE_FACTOR : 8 par défaut; 0 = illimité, pas désactivé
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
Automatisation des pipelines de données dans Snowflake

Clustering automatique

  • Pour les tables où les mêmes colonnes de filtre reviennent dans la plupart des requêtes
  • Snowflake réorganise les micro-partitions pour que les filtres de plage sautent plus de données
  • Maintenance en arrière-plan – aucun entrepôt requis
  • Compromis : coût de calcul continu à mesure que de nouvelles données arrivent
ALTER TABLE logistics.delivery_events
  CLUSTER BY (region, dispatch_date);
1 docs.snowflake.com/en/user-guide/tables-auto-reclustering
Automatisation des pipelines de données dans Snowflake

Vues matérialisées

  • Utile quand une requête coûteuse est relancée souvent
  • Pré‑calcule et stocke le résultat; les lectures utilisent ce résultat
  • Snowflake le met à jour automatiquement en arrière-plan
  • Restrictions SQL : pas de HAVING, jointures limitées, pas de fonctions fenêtre
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
Automatisation des pipelines de données dans Snowflake

Choisir la bonne méthode

Indice dans le profil de requête Méthode à envisager
TableScan lit presque toutes les partitions; recherche d’égalité sur colonne à forte cardinalité Search Optimization
Agrégation lourde, grands scans, arrivées imprévisibles Query Acceleration Service
Mêmes colonnes de filtre dans la plupart des requêtes; élagage faible Clustering automatique
Même agrégation coûteuse fréquente sur des données peu changeantes Vue matérialisée
  • Méthodes complémentaires
Automatisation des pipelines de données dans Snowflake

Passons à la pratique !

Automatisation des pipelines de données dans Snowflake

Preparing Video For Download...