Surveillance de l’utilisation et des coûts du notebook¶
Un notebook consomme des ressources de calcul via ses entrepôts virtuels ou :ref:`pools de calcul <label-spcs_working_with_compute_pools_default_compute_pools_for_notebooks>`configurés. Pour gérer les coûts et garantir des opérations efficaces, il est important de surveiller l’utilisation des différents notebooks, des utilisateurs et de l’infrastructure de calcul sous-jacente. Cette visibilité permet de garantir des opérations efficaces et soutient la responsabilité des coûts dans l’ensemble de votre environnement.
Snowflake donne accès à des données d’utilisation détaillées par l’intermédiaire de vues ACCOUNT_USAGE et de tables système. Ces données peuvent aider à répondre à des questions telles que :
Quelle est la consommation de crédit horaire par notebook ?
Quelle a été la fréquence d’exécution des notebooks au cours de la semaine écoulée ?
Quels utilisateurs ont exécuté des notebooks au cours du dernier mois ?
Quels pools de calcul ou entrepôts les notebooks ont-ils utilisés au cours de la semaine écoulée ?
Quel est le coût de crédit total des notebooks utilisant une ressource de calcul spécifique ?
Pour une vue d’ensemble de la gestion des coûts liés au calcul, voir Exploration des coûts de calcul.
Exemple de requête¶
Vous pouvez interroger les vues ACCOUNT_USAGE de Snowflake pour avoir un aperçu de la consommation de crédit pour un notebook. Ces vues permettent de ventiler les coûts par notebook, par utilisateur ou par pool de calcul, sur une base quotidienne ou horaire.
Utilisation¶
Dans l’exemple suivant, chaque ligne représente une seule exécution du notebook et comprend des détails tels que l’horodatage de l’exécution, l’utilisateur qui a exécuté le notebook et l’environnement d’exécution (Warehouse Runtime ou Container Runtime).
-- Warehouse Runtime
SELECT query_text, t1.user_name, credits_attributed_compute as total_warehouse_credits
FROM snowflake.account_usage.query_history t1
INNER JOIN snowflake.account_usage.query_attribution_history t2
ON t1.query_id = t2.query_id
-- Add your notebook name
AND t1.query_text ILIKE 'execute notebook% <example_nb_name>'
;
-- Container Runtime
SELECT
start_time, notebook_name, user_name, SUM(credits) AS total_container_runtime_credits
FROM snowflake.account_usage.notebooks_container_runtime_history
WHERE notebook_name = '<example_nb_name>'
GROUP BY ALL;
Surveillance des coûts sur Container Runtime¶
Les requêtes suivantes vous aident à surveiller la consommation de crédit des notebooks de votre compte. Utilisez ces requêtes pour analyser les schémas d’utilisation des notebooks, estimer les coûts et comprendre comment les notebooks individuels contribuent aux dépenses du pool de calcul.
- Requête : Consommation de crédit horaire par notebook
Cette requête récupère l’historique d’exécution d’un notebook spécifique, y compris l’utilisation du crédit et les horodatages d’exécution. Utilisez ces données pour comprendre la fréquence et la durée de fonctionnement d’un notebook, et pour identifier des modèles ou des pics dans la consommation de crédit par heure.
SELECT * FROM snowflake.account_usage.notebooks_container_runtime_history WHERE notebook_name = '<example_nb_name>';
- Requête : Coût d’exécution d’un notebook spécifique
Cette requête montre le total des crédits consommés par un notebook spécifique. Utilisez-la pour estimer le coût d’un notebook et identifier les notebooks à coût élevé.
SELECT notebook_name, SUM(credits) AS total_credits FROM snowflake.account_usage.notebooks_container_runtime_history WHERE notebook_name = '<example_nb_name>' GROUP BY notebook_name;
- Requête : Coût total du pool de calcul par notebook
Cette requête montre le total des crédits consommés par chaque notebook exécuté sur un pool de calcul spécifique. Utilisez-la pour décomposer l’utilisation du calcul par notebook, ce qui peut aider à identifier les notebooks qui contribuent le plus au coût global du pool de calcul.
SELECT notebook_name, SUM(credits) AS total_credits FROM snowflake.account_usage.notebooks_container_runtime_history WHERE compute_pool_name = '<example_cp_name>' GROUP BY notebook_name;
- Requête : Identifier les utilisateurs qui ont exécuté un notebook spécifique
Cette requête renvoie une liste des utilisateurs qui ont exécuté un notebook spécifique. Utilisez-la pour comprendre les modèles d’utilisation, ou identifier les collaborateurs et les consommateurs des notebooks partagés.
SELECT DISTINCT user_name FROM snowflake.account_usage.notebooks_container_runtime_history WHERE notebook_name = '<example_nb_name>';
Remarques complémentaires¶
Les coûts d’interrogation sont associés à l’entrepôt sous-jacent. Pour plus d’informations sur le fonctionnement des entrepôts, voir Utilisation du crédit d’entrepôt virtuel.