SELECTSELECT

SELECT

Snowflake Intelligence : présentation, tarifs et suivi des coûts

By Jeff SkoldbergOct 9, 202510 min read

Cette page est également disponible en English, Deutsch, Español, Italiano, 日本語 et Português.

Qu'est-ce que Snowflake Intelligence ?

Snowflake Intelligence est une nouvelle interface accessible depuis ai.snowflake.com qui permet d'interroger ses données en langage naturel et d'obtenir des réponses instantanées, avec graphiques, tableaux ou analyses rédigées. Il s'agit d'une application autonome destinée aux utilisateurs métier qui ne veulent pas se confronter à la complexité de l'interface Snowsight. Pas besoin d'explorer bases de données, schémas, rôles, historique des requêtes, etc. Ils veulent simplement une interface de chat épurée, sans SQL, sans avoir à attendre que les analytics Engineers leur fournissent des réponses. Le service repose sur des agents IA qui orchestrent données structurées (via Cortex Analyst), données non structurées (via Cortex Search) et outils personnalisés pour offrir une vision complète de l'activité.

Voyez cela comme un ChatGPT dédié à vos données Snowflake, à ceci près qu'il connaît réellement vos définitions métier, respecte vos contrôles d'accès et produit moins d'hallucinations grâce aux agents et aux modèles sémantiques construits par vos équipes internes.

Les profils métier peuvent désormais formuler leurs questions avec leurs propres mots, par exemple "montre-moi le chiffre d'affaires du Q4 par catégorie de produits", sans savoir quelles tables contiennent les données de chiffre d'affaires ni comment les produits sont catégorisés. Un analyste supply chain peut demander "quels problèmes les clients signalent-ils sur nos vestes d'hiver ?" et obtenir des analyses issues à la fois des données de ventes structurées et des tickets de support non structurés. L'agent détermine de lui-même les outils à mobiliser et la manière de combiner les résultats.

Tout cela suppose un travail de préparation initial pour une configuration correcte, et la facture peut grimper rapidement si l'on n'y prête pas attention. Voyons en détail comment cela fonctionne, ce que cela coûte et comment garder la main sur la facture.

Comment utiliser Snowflake Intelligence

Snowflake Intelligence repose sur des agents, c'est-à-dire des modèles IA connectés à une ou plusieurs vues sémantiques, modèles sémantiques, services Cortex Search et outils. Tout se joue dans un workflow en deux temps : configuration et utilisation.

Phase 1 : mise en place de l'infrastructure et des agents

Commencez par créer la base de données et la structure de schéma pour Intelligence :

-- Create the Intelligence database
CREATE DATABASE IF NOT EXISTS snowflake_intelligence;
GRANT USAGE ON DATABASE snowflake_intelligence TO ROLE PUBLIC;

-- Create schema for agents
CREATE SCHEMA IF NOT EXISTS snowflake_intelligence.agents;
GRANT USAGE ON SCHEMA snowflake_intelligence.agents TO ROLE PUBLIC;

-- Grant agent creation privileges
GRANT CREATE AGENT ON SCHEMA snowflake_intelligence.agents TO ROLE your_admin_role;

Par défaut, Snowflake Intelligence s'appuie sur le rôle et le warehouse par défaut de l'utilisateur ; veillez donc à ce que ces paramètres soient bien configurés pour chacun.

Phase 2 : création de vues sémantiques pour les données structurées

Une vue sémantique fait correspondre la terminologie métier au schéma réel de votre base. Plutôt que d'exiger des utilisateurs qu'ils sachent que le chiffre d'affaires se trouve dans fact_sales.amt_total_excl_tax, vous définissez le "chiffre d'affaires" comme un concept métier.

Vous pouvez créer des vues sémantiques via un assistant dans Snowsight ou en téléversant des fichiers YAML. Avec l'assistant :

  1. Rendez-vous dans AI & ML → Cortex Analyst
  2. Cliquez sur "Create new" → "Create new Semantic View"
  3. Sélectionnez vos tables et colonnes
  4. Définissez les indicateurs métier et les relations
  5. Ajoutez des exemples de questions

En coulisses, un fichier YAML est généré. Les vues sémantiques comblent le fossé entre la façon dont les utilisateurs métier décrivent les données et la façon dont elles sont stockées dans les schémas de la base. Voici un exemple minimal :

name: revenue_analysis
description: "Sales and revenue metrics by product and region"
tables:
  - name: sales
    description: "Daily sales transactions"
    base_table:
      database: analytics_db
      schema: sales
      table: fact_daily_sales
    dimensions:
      - name: product_category
        expr: product_category
        data_type: STRING
        description: "Product category"
    facts:

Expand Code

L'essentiel est de soigner les descriptions et les synonymes. Si quelqu'un interroge les "ventes totales" alors que vous n'avez défini que le "chiffre d'affaires brut", l'agent risque de ne pas comprendre.

Le YAML peut être édité directement dans Snowsight ou via l'assistant.

Phase 3 : création de services Cortex Search pour les données non structurées

Consultez notre article de blog sur Cortex Search pour plus de détails sur la mise en œuvre. Voici un exemple rapide.

Pour des documents, tickets de support ou autres données textuelles :

-- Create search service on your document table
CREATE CORTEX SEARCH SERVICE support_tickets_search
  ON ticket_text
  ATTRIBUTES customer_id, ticket_date, severity
  WAREHOUSE = search_warehouse
  TARGET_LAG = '1 hour'
  AS (
    SELECT
      ticket_id,
      ticket_text,
      customer_id,
      ticket_date,
      severity
    FROM support.tickets
  );

Cortex Search est utile pour indexer et fouiller des contenus à fort volume de texte, comme des documents, des conversations ou des transcriptions.

Phase 4 : création et configuration des agents

Place à l'assemblage. Dans Snowsight :

  1. Rendez-vous dans AI & ML → Agents → Create agent
  2. Choisissez "Create this agent for Snowflake Intelligence"
  3. Donnez-lui un nom visible par les utilisateurs
  4. Ajoutez vos vues sémantiques comme outils Cortex Analyst
  5. Ajoutez vos services Cortex Search
  6. Configurez les instructions d'orchestration
  7. Définissez les accès par rôle

L'agent a désormais accès aux sources de données structurées comme non structurées, et peut orchestrer leur utilisation. Lorsqu'un utilisateur pose une question, l'agent :

  • Analyse la question
  • Détermine les outils à mobiliser
  • Exécute des requêtes sur les vues sémantiques (en générant du SQL via Cortex Analyst)
  • Recherche dans les données non structurées (via Cortex Search)
  • Combine les résultats et génère des visualisations

Phase 5 : utilisation d'Intelligence

Les utilisateurs accèdent à Intelligence depuis ai.snowflake.com. Vous y trouverez une navigation latérale très simple avec trois options :

New Chat :

Agents :

Recent (chats)

La plupart des utilisateurs commenceront par "New chat". Il suffit de choisir un agent, une source de données (l'option auto est recommandée) et de poser une question.

Une fois la question posée, l'agent passe en mode réflexion approfondie et affiche son raisonnement étape par étape :

Une fois la réponse finalisée, l'agent masque par défaut les détails du raisonnement, mais vous pouvez toujours y revenir en cliquant sur "show details".

Les limites de Snowflake Intelligence

L'un des principaux inconvénients que je relève est l'impossibilité de sauvegarder des analyses pour les consulter régulièrement. Aucune logique de type "une seule conversation, plusieurs consultations du rapport" n'est proposée. D'autres agents pilotés par IA permettent d'épingler une analyse à un dashboard ou à un dossier, et de l'actualiser à la demande. Avec Snowflake Intelligence, si vous posez la même question chaque jour, vous devez retourner dans la conversation et demander à l'agent d'actualiser l'analyse avec les données les plus récentes. L'expérience utilisateur reste perfectible pour les rapports récurrents.

Comment fonctionne la tarification de Snowflake Intelligence ?

Cortex Agents, et donc Snowflake Intelligence, n'engendre pas de coûts spécifiques au-delà de ceux liés aux fonctionnalités sous-jacentes Cortex Search et Cortex Analyst. Nous avons publié des articles détaillés sur ces sujets, accessibles via les liens ci-dessous. Voici toutefois un résumé rapide de chaque poste de coût.

Coûts de Cortex Analyst :

Cortex Analyst traite les questions qui nécessitent l'interrogation de données structurées et semi-structurées ; il couvre les coûts IA pour la conversion text-to-SQL. Des coûts de warehouse supplémentaires s'appliquent lorsque vous exécutez le SQL généré par Cortex Analyst. La composante AI Services est facturée par requête, et non par token. Selon la Snowflake Service Consumption Table, Cortex Analyst consomme 6,7 crédits pour 100 requêtes pour la plupart des modèles.

Coûts de Cortex Search (pour les données non structurées) :

Cortex Search prend en charge les conversations utilisateurs portant sur des données non structurées. Les services de recherche consomment des crédits aussi bien lors de l'indexation que lors de la recherche. Le tarif actuel est de 8 crédits par heure.

Comment suivre les coûts et l'utilisation de Snowflake Intelligence

Nos articles sur Cortex Search et Cortex Analyst détaillent davantage le suivi de chacun de ces services. Les coûts d'Intelligence se répartissent sur plusieurs types de services, ce qui impose des requêtes complètes pour tout suivre. Découvrez la dernière requête de monitoring qui couvre l'ensemble des services susceptibles d'être utilisés par Snowflake Intelligence !

Suivre l'utilisation de Cortex Analyst

Cette requête montre qui utilise le plus Cortex Analyst et quels warehouses exécutent les requêtes générées.

-- Daily Cortex Analyst requests and costs
SELECT
  DATE_TRUNC('day', start_time) AS usage_date,
  SUM(request_count) AS total_requests,
  SUM(credits) AS analyst_credits,
  username
FROM snowflake.account_usage.cortex_analyst_usage_history
WHERE start_time >= DATEADD(day, -30, CURRENT_DATE())
GROUP BY DATE_TRUNC('day', start_time), username
ORDER BY usage_date DESC, analyst_credits DESC;

Suivre l'ensemble des coûts AI Services

Cette requête regroupe tous les coûts liés à l'IA, dont Cortex Search, Document AI et les fonctions AISQL.

-- AI Services consumption by service type
SELECT
  DATE_TRUNC('day', usage_date) as day,
  service_type,
  SUM(credits_used) as credits
FROM snowflake.account_usage.metering_daily_history
WHERE service_type = 'AI_SERVICES'
  AND usage_date >= DATEADD(day, -30, CURRENT_DATE())
GROUP BY DATE_TRUNC('day', usage_date), service_type
ORDER BY day DESC, credits DESC;

Surveiller les coûts de warehouse pour les requêtes Intelligence

Malheureusement, aucune méthode vraiment satisfaisante ne permet d'identifier les requêtes générées par un agent. Vous pouvez filtrer par warehouse ou par rôle, mais aucun logging spécifique ne signale ces query IDs de façon distincte. Voici un exemple de filtrage par warehouse. Réfléchissez à la manière dont vous comptez identifier ces requêtes et configurez votre environnement en conséquence.

-- Warehouse consumption from Intelligence agent queries
-- Requires naming or tagging your Intelligence warehouses
SELECT
  DATE_TRUNC('day', start_time) as usage_date,
  warehouse_name,
  SUM(credits_used_compute) as compute_credits,
  SUM(credits_used_cloud_services) as cloud_credits,
  SUM(credits_used) as total_credits,
FROM snowflake.account_usage.warehouse_metering_history
WHERE warehouse_name IN (
  'INTELLIGENCE_WAREHOUSE',
  'ANALYST_WAREHOUSE',
  'SEARCH_WAREHOUSE'
)
  AND start_time >= DATEADD(day, -30, CURRENT_DATE())

Expand Code

Suivre les opérations Cortex Search

-- Cortex Search service usage
SELECT
  DATE_TRUNC('day', start_time) AS usage_date,
  service_name,
  database_name,
  schema_name,
  SUM(credits) AS search_credits,
  SUM(credits) * 2 AS cost_usd
FROM snowflake.account_usage.cortex_search_serving_usage_history
WHERE start_time >= DATEADD(day, -30, CURRENT_DATE())
GROUP BY DATE_TRUNC('day', start_time), service_name, database_name, schema_name
ORDER BY usage_date DESC, search_credits DESC;

Vue consolidée des coûts d'Intelligence

Cette requête vous offre une vision complète des coûts d'Intelligence, ventilés par composant, pour déterminer s'ils proviennent du volume de requêtes, des opérations de recherche ou du compute warehouse.

-- Complete Intelligence cost rollup
WITH analyst_costs AS (
  SELECT
    DATE_TRUNC('day', start_time) AS day,
    'Cortex Analyst (AI requests)' AS component,
    SUM(credits) AS credits
  FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_ANALYST_USAGE_HISTORY
  WHERE start_time >= DATEADD(day, -30, CURRENT_DATE())
  GROUP BY 1
),
search_costs AS (
  SELECT
    usage_date AS day,
    'Cortex Search (Serving + Indexing)' AS component,
    SUM(credits) AS credits

Expand Code

Surveiller des vues sémantiques précises dans Snowsight

Dans l'interface Snowsight, rendez-vous dans AI ML -> Cortex Analyst -> Semantic Views -> Monitoring. Vous y verrez l'utilisation de chaque vue sémantique.

Bonnes pratiques et recommandations pour Snowflake Intelligence

Mettez en place des alertes, pas seulement des dashboards

Les requêtes de monitoring ci-dessus ne servent à rien si personne ne les exécute. Pour tout ce que vous souhaitez surveiller dans Snowflake, encapsulez le SQL dans une scheduled task couplée à une Notification Integration pour créer un moniteur personnalisé qui envoie des alertes vers Slack ou Teams. Pour une fonctionnalité de monitoring particulièrement simple à prendre en main, jetez un œil aux monitors dans SELECT.

Dimensionnez correctement vos warehouses pour les workloads Intelligence

Les frais évoqués plus haut couvrent les coûts IA du text-to-SQL. Des coûts de warehouse supplémentaires s'appliquent lorsque vous exécutez le SQL généré par Cortex Analyst. Démarrez avec un warehouse X-Small ou Small pour les requêtes Analyst. La génération du SQL en elle-même coûte peu ; c'est l'exécution de la requête qui peut devenir onéreuse avec des warehouses surdimensionnés.

Concevez vos vues sémantiques de manière stratégique

Une mauvaise conception des vues sémantiques rend les agents lents et coûteux. Suivez ces principes :

Commencez restreint, élargissez progressivement. Démarrez avec 3 à 5 tables clés et les questions les plus courantes. Un fichier sémantique bien délimité garantit une meilleure précision et exactitude des résultats. Vous pourrez toujours ajouter d'autres tables par la suite.

Ajoutez des référentiels de requêtes validées. Il s'agit d'exemples de questions accompagnés du SQL validé, ce qui améliore considérablement la précision. Lorsque les utilisateurs posent des questions similaires, Cortex Analyst peut s'appuyer sur ces exemples :

verified_queries:
  - name: "total revenue last quarter"
    question: "What was total revenue in Q4?"
    sql: |
      SELECT SUM(revenue_amount)
      FROM fact_sales
      WHERE sale_date >= '2024-10-01'
        AND sale_date < '2025-01-01'
    verified_result: 1250000.00

Utilisez des noms descriptifs et ajoutez des synonymes. Si votre table s'appelle dim_product_category_master, définissez-la avec des noms parlants côté métier :

dimensions:
  - name: product_category
    synonyms: ["category", "product type", "product class"]
    description: "High-level product grouping (Electronics, Clothing, etc.)"

Mettez en place des quotas d'utilisation par utilisateur ou par rôle

Snowflake Intelligence ne propose pas de quotas natifs par utilisateur, mais vous pouvez les implémenter via des resource monitors sur les warehouses utilisés par les agents :

-- Create a resource monitor for Intelligence usage
CREATE RESOURCE MONITOR intelligence_monthly_quota
  WITH CREDIT_QUOTA = 500
  FREQUENCY = MONTHLY
  START_TIMESTAMP = IMMEDIATELY
  TRIGGERS
    ON 75 PERCENT DO NOTIFY
    ON 90 PERCENT DO NOTIFY
    ON 100 PERCENT DO SUSPEND;

-- Assign to Intelligence warehouses
ALTER WAREHOUSE intelligence_warehouse
  SET RESOURCE_MONITOR = intelligence_monthly_quota;

Optimisez vos services Cortex Search

Les coûts de recherche dépendent largement de la configuration du service. Suivez ces recommandations :

Définissez des target lags appropriés. Si vos documents évoluent peu, optez pour des intervalles de rafraîchissement plus longs :

-- For static documentation
CREATE CORTEX SEARCH SERVICE product_docs_search
  ON document_text
  TARGET_LAG = '24 hours'  -- Instead of default 1 hour
  ...

Restreignez le périmètre de recherche dès que possible. Si les agents n'ont besoin que des documents récents, ajoutez des filtres :

CREATE CORTEX SEARCH SERVICE support_tickets_search
  ON ticket_text
  ATTRIBUTES customer_id, ticket_date, severity
  WHERE ticket_date >= DATEADD(year, -1, CURRENT_DATE())
  ...

Pour conclure

Snowflake Intelligence rend les données d'entreprise accessibles aux utilisateurs non techniques via le langage naturel, en combinant de manière fluide sources de données structurées et non structurées. La clé pour maîtriser les coûts : bien comprendre les composants en jeu, à savoir Cortex Analyst pour la génération SQL, les virtual warehouses pour l'exécution des requêtes, Cortex Search pour les données non structurées, et l'orchestration LLM pour relier le tout.

Démarrez modestement avec une vue sémantique ciblée sur vos indicateurs les plus critiques, surveillez l'utilisation de près et élargissez progressivement à mesure que vous identifiez vos postes de coûts. Surtout, mettez en place des alertes sur ces requêtes de monitoring afin de détecter les pics de coûts avant qu'ils n'apparaissent sur votre facture.

Dites-nous comment vous utilisez Snowflake Intelligence ! Nous serions ravis de recueillir des retours concrets sur les cas d'usage qui justifient le coût et ceux où vous avez constaté le meilleur ROI.

Jeff est consultant Data et Analytics, fort de plus de 15 ans d'expérience dans l'automatisation des analyses et l'exploitation de la donnée pour piloter les processus métier. Côté technologies, il est spécialisé sur Snowflake + dbt + Tableau. Côté secteurs, il a travaillé dans les services publics, les essais cliniques, l'édition, le CPG et l'industrie manufacturière. N'hésitez pas à le contacter à tout moment : [email protected].