Adaptive Compute

Adaptive Compute est un service de calcul conçu pour offrir des performances élevées grâce à des opérations simplifiées. Il remplace le moteur de calcul fixe par un moteur sensible à la charge de travail qui s’adapte automatiquement à vos requêtes. Le système décide de la manière d’allouer des ressources pour obtenir les meilleures performances, ce qui élimine la nécessité d’un réglage de l’infrastructure.

En mettant automatiquement à l’échelle les ressources et en acheminant intelligemment les requêtes, Adaptive Compute supprime la complexité opérationnelle liée à la gestion traditionnelle des entrepôts : dimensionnement manuel des clusters, mises à niveau interrompues, et réglage pratique des performances. Il intègre également les dernières améliorations en matière de matériel et de performances, de sorte que les entrepôts adaptatifs peuvent exécuter beaucoup plus de requêtes pour un coût similaire à celui de Gen2.

Vous accédez à Adaptive Compute via des entrepôts adaptatifs. Avec un entrepôt adaptatif, vous n’avez plus besoin de gérer :

  • La taille de l’entrepôt (XSMALL, SMALL, MEDIUM, etc.).

  • Les paramètres d’entrepôt multi-clusters.

  • Les paramètres du service d’accélération des requêtes.

  • La sémantique de suspension et de reprise.

Snowflake gère tout cela automatiquement, afin que votre équipe puisse se concentrer sur le travail avec les données plutôt que sur la gestion de l’infrastructure qui les sous-tend.

Toutes les tâches de tous les entrepôts adaptatifs d’un compte sont acheminées vers un pool partagé de ressources de calcul. Ce pool est dédié à votre compte : il n’est pas partagé avec d’autres comptes de votre organisation et n’est pas utilisé par d’autres types d’entrepôts, tels que standard, interactif ou optimisé pour Snowpark. Vous pouvez toujours avoir plusieurs entrepôts adaptatifs par compte pour regrouper des charges de travail présentant des caractéristiques de performances et de coût, des rapports et une gouvernance similaires.

Les entrepôts adaptatifs utilisent un modèle de facturation basé sur les requêtes, où le coût de chaque requête dépend de facteurs tels que la quantité de ressources de calcul et logicielles qu’elle utilise. Vous pouvez toujours raisonner sur les coûts au niveau de l’entrepôt, car toutes les requêtes exécutées dans un entrepôt adaptatif s’ajoutent au coût total de cet entrepôt. La visibilité des coûts au niveau des requêtes n’est pas disponible pendant la prévisualisation publique, mais est le sera lors de la mise à disposition générale.

Les mêmes outils de gestion des coûts sont disponibles :

  • Budgets et :doc:` moniteurs de ressources </user-guide/resource-monitors>` pour la gouvernance des coûts.

  • Vues ACCOUNT_USAGE pour une observabilité granulaire.

Vous pouvez créer de nouveaux entrepôts adaptatifs ou convertir des entrepôts standard existants en entrepôts adaptatifs sans temps d’arrêt. La conversion des entrepôts existants vous permet de conserver vos structures actuelles de refacturation et de répartition des coûts, ainsi que la séparation des charges de travail (analyse par rapport àETL, entrepôts basés sur des équipes, etc.). Par exemple, l’équipe financière peut utiliser un entrepôt adaptatif et l’équipe d’ingénierie peut en utiliser un autre.

Limitations

Les entrepôts adaptatifs nécessitent Enterprise Edition (ou une version supérieure).

Pendant la prévisualisation publique, les entrepôts adaptatifs sont disponibles dans les régions suivantes : US Ouest 2 (Oregon), EU Ouest 1 (Irlande) et AP Nord-Est 1 (Tokyo).

Les conversions suivantes ne sont également pas encore prises en charge :

  • Conversion vers ou depuis un entrepôt X5Large ou X6Large.

  • Conversion vers ou depuis un entrepôt optimisé pour Snowpark ou interactif.

Gestion des performances et du débit

Les entrepôts adaptatifs exposent deux propriétés principales pour contrôler les performances et le débit :

  • MAX_QUERY_PERFORMANCE_LEVEL

  • QUERY_THROUGHPUT_MULTIPLIER

MAX_QUERY_PERFORMANCE_LEVEL

MAX_QUERY_PERFORMANCE_LEVEL exprime la limite supérieure des performances pour toute requête individuelle. Elle est définie au niveau de l’entrepôt et sert de mécanisme pour indiquer au système d’« accélérer » ou de « ralentir » l’exécution des requêtes.

Cette propriété est exprimée en tailles de t-shirt (XSMALL à X4LARGE). Chaque taille de t-shirt offre un niveau de performances similaire ou supérieur à celui de la taille d’entrepôt classique correspondante.

Type:

{ XSMALL | SMALL | MEDIUM | LARGE | XLARGE | XXLARGE | XXXLARGE | X4LARGE }

Par défaut:

XLARGE

Sémantique :

  • Des valeurs plus élevées offrent une plus grande marge de calcul par instruction, ce qui améliore la latence pour les requêtes volumineuses et complexes, et augmente le coût instantané potentiel d’une seule instruction.

  • Des valeurs plus petites limitent les dépenses par instruction, mais peuvent ralentir les requêtes volumineuses tout en laissant plus de marge pour la concurrence.

  • Cette valeur ne correspond pas à une configuration de calcul sous-jacente spécifique. Elle n’exprime qu’un niveau de performances : Snowflake détermine les ressources réelles nécessaires pour chaque requête.

Comportement :

Adaptive Compute détermine le calcul optimal nécessaire pour une requête sur la base du plan de requête. Si le service détermine que les besoins de calcul pour des performances optimales sont supérieurs à MAX_QUERY_PERFORMANCE_LEVEL, Snowflake les plafonne à MAX_QUERY_PERFORMANCE_LEVEL. Pour les requêtes plus petites, Snowflake choisit le calcul offrant des performances optimales en dessous de MAX_QUERY_PERFORMANCE_LEVEL, proportionnellement aux besoins de la requête.

Conseils :

Définissez MAX_QUERY_PERFORMANCE_LEVEL sur les performances de requête maximales que vous jugez acceptables pour vos requêtes les plus importantes. Utilisez les budgets et les moniteurs de ressources pour gouverner les dépenses totales dans le temps.

QUERY_THROUGHPUT_MULTIPLIER

QUERY_THROUGHPUT_MULTIPLIER exprime le multiplicateur utilisé pour calculer le débit maximal à un moment donné. Plutôt que de spécifier un débit maximal absolu, vous spécifiez un facteur d’échelle entier par rapport au minimum calculé par le système.

Pour exécuter des instructions N en parallèle au MAX_QUERY_PERFORMANCE_LEVEL, définissez le multiplicateur sur N. Étant donné que MAX_QUERY_PERFORMANCE_LEVEL représente la limite supérieure, ce paramètre permet généralement d’exécuter plus de requêtes N en parallèle, car de nombreuses requêtes nécessitent moins que le maximum.

Type:

Entier non négatif

Par défaut:

2

Définir cette valeur sur 0 implique un débit illimité : l’entrepôt peut utiliser toute la capacité de pointe disponible, sans limite.

Sémantique :

Lorsqu’il est défini sur une valeur positive, le débit maximal est calculé comme suit :

MAX_THROUGHPUT = QUERY_THROUGHPUT_MULTIPLIER * MINIMUM

MINIMUM est une capacité de base calculée par le système pour le MAX_QUERY_PERFORMANCE_LEVEL défini sur l’entrepôt.

  • Sert de facteur d’échelle sur cette capacité de base calculée par le système.

  • Des valeurs plus élevées augmentent le débit de pointe (plus de travail simultané) et réduisent les files d’attente, au prix de dépenses instantanées potentiellement plus élevées.

  • Des valeurs plus basses limitent le débit maximal et réduisent le risque de pics bruts dans les dépenses, mais peuvent entraîner des files d’attente.

Comportement :

Snowflake calcule un taux de capacité de base interne pour l’entrepôt sur la base du MAX_QUERY_PERFORMANCE_LEVEL, de l’historique de la migration (taille classique, nombre maximal de clusters, facteur d’échelle QAS), et d’autres paramètres de réglage du système.

QUERY_THROUGHPUT_MULTIPLIER est multiplié par cette capacité de base pour déterminer le nombre total de requêtes pouvant être exécutées simultanément. Lorsque le système est en dessous de cette cible, il autorise l’exécution de la requête. Lorsqu’il atteint la cible, il met la requête en file d’attente.

Conseils :

Si vous observez un temps de file d’attente persistant et que vous souhaitez un débit plus élevé, augmentez QUERY_THROUGHPUT_MULTIPLIER. Si vous êtes plus préoccupé par le fait de limiter les dépenses instantanées, réduisez QUERY_THROUGHPUT_MULTIPLIER et appuyez-vous sur des budgets et des moniteurs de ressources pour un contrôle absolu des coûts.

Créer un entrepôt adaptatif

Vous pouvez créer un entrepôt adaptatif en utilisant l’Snowsight, SQL ou Cortex Code.

Pour créer un entrepôt adaptatif en utilisant l’Snowsight :

  1. Connectez-vous à Snowsight.

  2. Dans le menu de navigation, sélectionnez Compute » Warehouses.

  3. Sélectionnez +Warehouse.

  4. Dans la liste déroulante Type, sélectionnez Adaptive.

  5. En option, sélectionnez Advanced et configurez :

    • Maximum query performance level (par défaut : XLarge)

    • Query throughput multiplier (par défaut : 2)

L’entrepôt est créé et peut être utilisé normalement.

Convertir un entrepôt standard en un entrepôt adaptatif

Vous pouvez convertir un entrepôt standard en entrepôt adaptatif en utilisant Snowsight, SQL ou Cortex Code.

Note

La conversion d’un entrepôt de ou vers un entrepôt adaptatif est une opération en ligne, ce qui signifie qu’elle n’implique pas de temps d’arrêt. Cette conversion ne rend pas l’entrepôt indisponible et n’interrompt pas les requêtes en cours.

Lorsque vous convertissez un entrepôt en entrepôt adaptatif ou que vous revenez à un entrepôt standard, les requêtes existantes qui s’exécutaient sur cet entrepôt continuent de s’exécuter jusqu’à leur terme en utilisant les ressources de calcul existantes. En même temps, l’entrepôt exécute toute nouvelle requête sur les ressources de calcul du nouveau type d’entrepôt. Pendant l’exécution des requêtes existantes, les deux ensembles de ressources de calcul vous sont facturés. Si vous reconvertissez l’entrepôt en entrepôt standard, l’entrepôt n’est pas automatiquement suspendu pendant cette période, que des requêtes utilisent ou non les nouvelles ressources de calcul. Lorsque les requêtes existantes se terminent, la charge de travail passe entièrement aux nouvelles ressources de calcul.

Pour convertir un entrepôt standard en entrepôt adaptatif en utilisant Snowsight :

  1. Connectez-vous à Snowsight.

  2. Dans le menu de navigation, sélectionnez Compute » Warehouses » <warehouse_identifier>.

  3. Sélectionnez le menu (trois points) »Convert to Adaptive.

  4. Confirmez l’opération.

Comportement des propriétés lors de la conversion

Lorsque vous convertissez un entrepôt standard en entrepôt adaptatif, la seule propriété que vous devez modifier est WAREHOUSE_TYPE. Snowflake calcule automatiquement les valeurs appropriées pour MAX_QUERY_PERFORMANCE_LEVEL et QUERY_THROUGHPUT_MULTIPLIER.

Le système les dérive de la configuration existante de l’entrepôt standard :

  • Taille de l’entrepôt.

  • MAX_CLUSTER_COUNT (pour les entrepôts multi-clusters).

  • Facteur d’échelle QAS.

  • Génération de l’entrepôt (génération matérielle/logicielle).

L’objectif est de préserver ou d’améliorer les performances par rapport à l’entrepôt standard d’origine, de fournir une capacité de pointe suffisante pour les pics de charge typiques, et d’éviter d’avoir à effectuer un réglage manuel lors du passage à un entrepôt adaptatif.

Après la conversion, vous pouvez éventuellement remplacer MAX_QUERY_PERFORMANCE_LEVEL etQUERY_THROUGHPUT_MULTIPLIER en utilisant ALTER WAREHOUSE. Les propriétés d’entrepôt standard telles que WAREHOUSE_SIZE et MAX_CLUSTER_COUNT ne s’appliquent plus après la conversion en entrepôt adaptatif, et les propriétés adaptatives ne s’appliquent plus après la reconversion en entrepôt standard.

Facturation et tarification

Les entrepôts adaptatifs utilisent un modèle de facturation basé sur des requêtes. Le coût de chaque requête dépend de facteurs tels que la quantité de ressources de calcul et logicielles qu’elle utilise, y compris la taille des clusters et la capacité supplémentaire utilisée par des fonctionnalités telles que le service d’accélération des requêtes (QAS). La création d’un entrepôt adaptatif ne vous est pas facturée : les frais commencent lorsque la première requête est exécutée.

Toutes les requêtes exécutées dans un entrepôt adaptatif s’ajoutent au coût total de cet entrepôt, de sorte que vous pouvez continuer à utiliser les structures de refacturation et de répartition des coûts existantes. L’utilisation de l’entrepôt adaptatif est signalée dans le cadre de COMPUTE dans les instructions d’utilisation utilisant des crédits d’entrepôt virtuel.

Vous contrôlez les performances et les dépenses principalement par l’intermédiaire de :

  • MAX_QUERY_PERFORMANCE_LEVEL : plafonne le niveau de performances par instruction.

  • QUERY_THROUGHPUT_MULTIPLIER : plafonne la capacité globale de pointe à tout moment.

  • Budgets et moniteurs de ressources : gouvernent les dépenses totales dans le temps au niveau du compte ou de l’entrepôt.

Modèles de configuration typiques :

Type de charge de travail

Configuration

Charges de travail critiques et sensibles à la latence

MAX_QUERY_PERFORMANCE_LEVEL supérieur (XLARGE ou au-dessus). QUERY_THROUGHPUT_MULTIPLIER supérieur. Moniteurs de ressources ou budgets pour limiter les dépenses agrégées dans le plan.

Charges de travail sensibles aux coûts et à haut débit

MAX_QUERY_PERFORMANCE_LEVEL modéré (MEDIUM ou LARGE). QUERY_THROUGHPUT_MULTIPLIER moyen pour équilibrer le débit par rapport aux pics de dépense.

Charges de travail étroitement liées aux budgets

MAX_QUERY_PERFORMANCE_LEVEL inférieur. QUERY_THROUGHPUT_MULTIPLIER inférieur. Budgets et moniteurs de ressources stricts.

Vous pouvez utiliser des vues ACCOUNT_USAGE pour récupérer des données granulaires sur la consommation de crédit pour un entrepôt adaptatif spécifique. Utilisez Vue WAREHOUSE_METERING_HISTORY pour voir la consommation de crédit de votre entrepôt. Pour obtenir une liste complète des vues pertinentes, consultez Vues d’utilisation du compte :.

Pour plus d’informations sur les coûts de calcul, consultez Comprendre le coût du calcul.

Référence SQL

CREATE ADAPTIVE WAREHOUSE

Crée un nouvel entrepôt virtuel adaptatif.

CREATE [ OR REPLACE ] ADAPTIVE WAREHOUSE [ IF NOT EXISTS ] <name>
  [ [ WITH ] adaptiveProperties ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
  [ objectParams ]

adaptiveProperties ::=
  COMMENT = '<string_literal>'
  MAX_QUERY_PERFORMANCE_LEVEL = { XSMALL | SMALL | MEDIUM | LARGE
                                | XLARGE | XXLARGE | XXXLARGE | X4LARGE }
  QUERY_THROUGHPUT_MULTIPLIER = <integer>

objectParams ::=
  STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = <num>
  STATEMENT_TIMEOUT_IN_SECONDS = <num>

Vous pouvez également créer un entrepôt adaptatif à l’aide de la syntaxe CREATE WAREHOUSE standard avec WAREHOUSE_TYPE = 'ADAPTIVE' :

CREATE [ OR REPLACE ] WAREHOUSE [ IF NOT EXISTS ] <name>
  [ [ WITH ] WAREHOUSE_TYPE = 'ADAPTIVE'
    [ adaptiveProperties ]
  ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
  [ objectParams ]

Note

Les propriétés d’entrepôt standard telles que WAREHOUSE_SIZE, MIN_CLUSTER_COUNT, MAX_CLUSTER_COUNT et SCALING_POLICY ne peuvent pas être définies sur un entrepôt adaptatif. De même, les propriétés d’entrepôt adaptatif telles que MAX_QUERY_PERFORMANCE_LEVEL et QUERY_THROUGHPUT_MULTIPLIER ne peuvent pas être définies sur un entrepôt standard.

Paramètres requis

name

Identificateur de l’entrepôt virtuel adaptatif. Doit être unique pour votre compte. Doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux, à moins qu’ils ne soient placés entre guillemets. Voir Identificateurs d’objet pour plus de détails.

Propriétés facultatives

MAX_QUERY_PERFORMANCE_LEVEL = { XSMALL | SMALL | MEDIUM | LARGE | XLARGE | XXLARGE | XXXLARGE | X4LARGE }

Limite supérieure du niveau de performances pour une seule instruction, exprimée en taille de t-shirt. Par défaut : XLARGE.

Snowflake choisit un niveau de performances allant jusqu’à cette limite en fonction des caractéristiques des instructions. Des instructions plus petites peuvent être exécutées à un niveau de performances inférieur pour réduire les dépenses. Choisissez une valeur appropriée pour vos requêtes les plus importantes.

Pour plus de détails, voir Gestion des performances et du débit.

QUERY_THROUGHPUT_MULTIPLIER = <integer>

Multiplicateur utilisé pour calculer le débit maximal à un moment donné, exprimé sous la forme d’un facteur d’échelle entier non négatif sur le minimum calculé par le système. Des valeurs plus élevées augmentent le débit de pointe (plus de travail simultané) et réduisent les files d’attente, au prix de dépenses instantanées potentiellement plus élevées. Des valeurs plus basses limitent le débit maximal et réduisent le risque de pics bruts dans les dépenses, mais peuvent entraîner des files d’attente. Une valeur de 0 implique un débit illimité.

Par défaut : 2.

Pour plus de détails, voir Gestion des performances et du débit.

STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = <num>

Durée maximale, en secondes, pendant laquelle une instruction SQL peut rester en file d’attente dans l’entrepôt avant que Snowflake ne l’annule. Voir Paramètres pour plus de détails.

STATEMENT_TIMEOUT_IN_SECONDS = <num>

Durée maximale, en secondes, pendant laquelle une instruction SQL peut être exécutée avant que Snowflake ne l’annule. Voir Paramètres pour plus de détails.

Exemples

Créer un entrepôt adaptatif avec des valeurs par défaut :

CREATE ADAPTIVE WAREHOUSE my_adaptive_wh;

Créer avec un niveau de performances spécifique :

CREATE ADAPTIVE WAREHOUSE my_adaptive_wh
  WITH MAX_QUERY_PERFORMANCE_LEVEL = XXLARGE;

Créer avec les deux propriétés :

CREATE ADAPTIVE WAREHOUSE my_adaptive_wh
  WITH MAX_QUERY_PERFORMANCE_LEVEL = MEDIUM
       QUERY_THROUGHPUT_MULTIPLIER = 6;

Créer en utilisant la syntaxe CREATE WAREHOUSE standard :

CREATE WAREHOUSE my_adaptive_wh
  WITH WAREHOUSE_TYPE = 'ADAPTIVE'
       MAX_QUERY_PERFORMANCE_LEVEL = LARGE
       QUERY_THROUGHPUT_MULTIPLIER = 3;

ALTER WAREHOUSE (adaptatif)

Vous pouvez utiliser ALTER WAREHOUSE pour convertir un entrepôt standard en entrepôt adaptatif, modifier les propriétés d’un entrepôt adaptatif, ou reconvertir un entrepôt adaptatif en entrepôt standard.

Convertir un entrepôt standard en entrepôt adaptatif :

ALTER WAREHOUSE my_warehouse SET WAREHOUSE_TYPE = 'ADAPTIVE';

Modifier les propriétés de l’entrepôt adaptatif après la création ou la conversion :

ALTER WAREHOUSE my_adaptive_wh SET
  MAX_QUERY_PERFORMANCE_LEVEL = XLARGE
  QUERY_THROUGHPUT_MULTIPLIER = 8;

Reconvertir un entrepôt adaptatif en entrepôt standard :

ALTER WAREHOUSE my_warehouse SET WAREHOUSE_TYPE = 'STANDARD';

SHOW WAREHOUSES

La fonctionnalité d’entrepôt adaptatif introduit de nouvelles colonnes à la commande SHOW WAREHOUSES. Les propriétés qui ne s’appliquent pas aux entrepôts adaptatifs sont indiquées comme NULL.

Les colonnes spécifiques aux entrepôts adaptatifs comprennent :

Nom de la colonne

Description

STATE

Une des options :

  • ENABLED (actif/en cours d’exécution)

  • DISABLED (inactif)

MAX_QUERY_PERFORMANCE_LEVEL

Exprimé en taille de t-shirt. Limite supérieure du niveau de performances par instruction.

QUERY_THROUGHPUT_MULTIPLIER

Facteur d’échelle entier contrôlant la capacité de pointe que l’entrepôt peut utiliser à tout moment.

DISABLED_REASONS

Une ou plusieurs raisons pour lesquelles l’entrepôt adaptatif a été désactivé.

Vues d’utilisation du compte :

Les vues ACCOUNT_USAGE suivantes sont disponibles pour les entrepôts adaptatifs :

Note

Pour les entrepôts adaptatifs, l’utilisation de QAS est incluse dans les crédits de calcul et n’apparaît pas comme une colonne de crédit séparée. Utilisez Vue WAREHOUSE_LOAD_HISTORY pour surveiller le comportement de la file d’attente et savoir s’il convient d’ajuster MAX_QUERY_PERFORMANCE_LEVEL ou QUERY_THROUGHPUT_MULTIPLIER.

L’exemple de requête suivant produit une série temporelle de données de performances au niveau de l’entrepôt pour tout entrepôt qui a exécuté au moins une requête avec l’état ADAPTIVE au cours d’une période de recherche spécifiée.

WITH adaptive_whs AS (
  SELECT DISTINCT warehouse_name
  FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY q
  WHERE q.warehouse_size = 'ADAPTIVE'
    AND q.start_time >= DATEADD(day, -7, CURRENT_DATE())
)
SELECT
  q.end_time::DATE AS ds,
  q.warehouse_name,
  IFF(q.warehouse_size = 'ADAPTIVE', 'ADAPTIVE', 'STANDARD') AS warehouse_type,
  AVG(q.total_elapsed_time) AS avg_query_time,
  AVG(q.execution_time) AS avg_exec_time,
  AVG(q.queued_overload_time) AS avg_queued_overload_time,
  AVG(q.queued_provisioning_time) AS avg_queued_provisioning_time
FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY q
WHERE q.start_time >= DATEADD(day, -7, CURRENT_DATE())
  AND q.warehouse_name IN (SELECT warehouse_name FROM adaptive_whs)
GROUP BY ALL;

Migration en masse d’entrepôts standard vers des entrepôts adaptatifs

Si vous souhaitez migrer de nombreux entrepôts standard vers des entrepôts adaptatifs simultanément, vous pouvez utiliser la fonction SYSTEM$BULK_UPDATE_WH.

Paramètres pour la fonction SYSTEM$BULK_UPDATE_WH

Paramètre

Description

Valeurs autorisées

property_name

La propriété de l’entrepôt à mettre à jour.

'WAREHOUSE_TYPE'

new_value

Nouvelle valeur pour la propriété.

'ADAPTIVE' ou 'STANDARD'

property_filter

Filtre JSON sur les propriétés de l’entrepôt (par exemple, modèle de nom, taille). Les entrepôts correspondant à tous les filtres sont pris en compte pour la mise à jour.

'{"name": "TEST.*"}'

tag_filter

Filtre JSON sur les balises. Les entrepôts doivent correspondre à toutes les balises spécifiées pour être sélectionnés.

'{"cost-centre": "sales"}'

execution_mode

Mode d’opération : effectuer la mise à jour ou l’exécution à blanc.

'ACTIVE', 'DRY_RUN'

Utilisation suggérée :

  1. Tout d’abord, effectuez une exécution à blanc et examinez les résultats :

    SELECT SYSTEM$BULK_UPDATE_WH(
      'WAREHOUSE_TYPE',
      'ADAPTIVE',
      '{"WAREHOUSE_TYPE": "STANDARD"}',
      'DRY_RUN'
    );
    
  2. Vérifiez la sortie et ajustez les filtres si nécessaire.

  3. Après avoir vérifié l’exécution à blanc, appelez à nouveau la fonction en utilisant le mode actif :

    SELECT SYSTEM$BULK_UPDATE_WH(
      'WAREHOUSE_TYPE',
      'ADAPTIVE',
      '{"WAREHOUSE_TYPE": "STANDARD"}',
      'ACTIVE'
    );
    
  4. Examinez attentivement les résultats et les erreurs éventuelles avant de répéter ou d’élargir la portée de la migration.