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 différentes

nanobanana : moitié : Quatre icônes d’outils géométriques distinctes disposées 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 IDs à 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 exécutées souvent
Automatisation des pipelines de données dans Snowflake

Search Optimization

  • Aide pour les requêtes cherchant peu de lignes dans une grande table
  • Construit un chemin d’accès persistant ; certaines micro-partitions peuvent être ignorées
  • Coût stockage + calcul pour maintenir le chemin d’accès
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 : valeur par défaut 8 ; 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éordonne les micro-partitions pour permettre plus de saut de données avec les filtres de plage
  • 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 exécutée très souvent
  • Pré-calcule et stocke le résultat ; les lectures utilisent ce résultat
  • Snowflake le maintient 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 une colonne à forte cardinalité Search Optimization
Agrégation lourde, grands scans, arrivée imprévisible Query Acceleration Service
Mêmes colonnes de filtre dans la plupart des requêtes ; élagage faible Clustering automatique
Même agrégation coûteuse exécutée souvent sur des données peu changeantes Vue matérialisée
  • Les méthodes se complètent
Automatisation des pipelines de données dans Snowflake

Passons à la pratique !

Automatisation des pipelines de données dans Snowflake

Preparing Video For Download...