Optimisation de la recherche - Estimation et gestion des coûts

Le service d’optimisation de la recherche a un impact sur les coûts des ressources de stockage et de calcul :

  • Ressources de stockage : le service d’optimisation de la recherche crée une structure de données de chemin d’accès à la recherche qui nécessite de l’espace pour chaque table sur laquelle l’optimisation de la recherche est activée. Le coût de stockage du chemin d’accès de recherche dépend de plusieurs facteurs, notamment :

    • Le nombre de valeurs distinctes dans la table. Dans le cas extrême où toutes les colonnes contiennent des types de données qui utilisent le chemin d’accès de recherche et où toutes les valeurs de données dans chaque colonne sont uniques, le stockage requis peut être autant important que la taille de la table d’origine.

      Cependant, la taille correspond généralement à environ 1/4 de la taille de la table d’origine.

  • Ressources de calcul :

    • L’ajout de l’optimisation de la recherche à une table consomme des ressources lors de la phase initiale de construction.

    • La maintenance du service d’optimisation de la recherche nécessite également des ressources. La consommation de ressources est plus élevée en cas de roulement élevé (c’est-à-dire lorsque de grands volumes de données changent dans la table). Ces coûts sont à peu près proportionnels à la quantité de données ingérées (ajoutées ou modifiées). Les suppressions ont également un certain coût.

      Le clustering automatique, tout en améliorant la latence des requêtes dans des tables avec l’optimisation de la recherche, peut encore augmenter les coûts de maintenance de l’optimisation de la recherche. Si une table a un taux de rotation élevé, l’activation du clustering automatique et la configuration de l’optimisation de la recherche pour la table peuvent entraîner des coûts de maintenance plus élevés que si la table est simplement configurée pour l’optimisation de la recherche.

      Snowflake garantit une utilisation efficace du crédit en ne facturant à votre compte que les ressources réellement utilisées. La facturation est calculée par incréments d’une seconde.

      Reportez-vous au « Tableau des crédits de fonctionnalité sans serveur » dans le Tableau de consommation du service Snowflake pour les coûts par heure de calcul.

      Une fois que vous avez activé le service d’optimisation de la recherche, vous pouvez afficher les coûts liés à votre utilisation du service.

Astuce

Snowflake recommande de commencer lentement avec cette fonctionnalité (c’est-à-dire d’ajouter l’optimisation de la recherche à seulement quelques tables au début) et de surveiller attentivement les coûts et les avantages.

Estimation des coûts de l’optimisation de la recherche

Pour estimer le coût de l’ajout d’une optimisation de recherche à une table et configurer des colonnes spécifiques pour l’optimisation de la recherche, utilisez la fonction SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS.

En général, les coûts sont proportionnels aux facteurs suivants :

  • Le nombre de colonnes sur lesquelles la fonction est activée et le nombre de valeurs distinctes dans ces colonnes.

  • La quantité de données qui change dans ces tables.

Important

Les estimations de coûts renvoyées par la fonction SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS sont les meilleurs efforts possibles. Les coûts réels réalisés peuvent varier considérablement (jusqu’à 50 % ou, dans de rares cas, de plusieurs fois) par rapport aux coûts estimés.

  • Les estimations des coûts de construction et de stockage sont basées sur l’échantillonnage d’un sous-ensemble des lignes de la table.

  • Les estimations des coûts de maintenance sont basées sur les activités récentes de création, de suppression et de mise à jour de la table.

Vue des coûts de l’optimisation de la recherche

Vous pouvez afficher les coûts de facturation du service d’optimisation de la recherche à l’aide de l’interface Web ou de SQL. Voir Découverte des coûts de calcul.

Réduction des coûts de l’optimisation de la recherche

Vous pouvez contrôler le coût du service d’optimisation de la recherche en sélectionnant soigneusement les tables et les colonnes pour lesquelles activer l’optimisation de la recherche.

De plus, pour réduire le coût du service d’optimisation de la recherche :

  • Snowflake recommande les opérations DML par lots de la table :

    • DELETE: si les tables stockent des données pour la période la plus récente (par exemple, le jour, la semaine ou le mois le plus récent), lorsque vous ajustez votre table en supprimant les anciennes données, le service d’optimisation de la recherche doit prendre en compte ces mises à jour. Dans certains cas, vous pourrez peut-être réduire les coûts en effectuant des suppressions moins fréquemment (par exemple, tous les jours plutôt que toutes les heures).

    • INSERT, UPDATE, et MERGE : le traitement par lots de ces types d’instructions DML sur la table peut réduire le coût de la maintenance par le service d’optimisation de la recherche.

  • Si vous réassemblez la table entière, envisagez de supprimer la propriété SEARCH OPTIMIZATION pour cette table avant le reclustering, puis d’ajouter la propriété SEARCH OPTIMIZATION à la table après le reclustering.

  • Avant d’activer l’optimisation de la recherche pour les recherches de sous-chaînes (ON SUBSTRING(col)) ou VARIANTs (ON EQUALITY(variant_col)), appelez SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS pour estimer les coûts. La construction et la maintenance initiales de ces méthodes de recherche peuvent être très gourmandes en ressources de calcul, vous devez donc évaluer le compromis entre performances et coût.