Clustering automatique

Le clustering automatique est le service Snowflake qui gère de manière transparente et continue tous les reclusterings, au besoin, des tables en cluster.

Notez que, après la définition d’une table en cluster, le reclustering ne démarre pas nécessairement immédiatement. Snowflake n’effectue un reclustering d’une table en cluster que si elle bénéficie de l’opération.

Note

Si le reclustering manuel est toujours disponible dans votre compte, le clustering automatique n’est peut-être pas encore activé pour votre compte. Pour plus de détails, voir Reclustering manuel — Obsolète.

Dans ce chapitre :

Avantages du clustering automatique

Facilité de gestion

Le clustering automatique élimine le besoin d’effectuer les tâches suivantes :

  • Surveillance de l’état des tables groupées en cluster.

    Au lieu de cela, lorsque DML est exécuté sur ces tables, Snowflake surveille et évalue les tables pour déterminer si elles peuvent bénéficier d’un reclustering et les regroupe automatiquement, au besoin.

  • Désigner des entrepôts dans votre compte à utiliser pour le reclustering.

    Snowflake effectue un reclustering automatique en arrière-plan. Vous n’avez pas besoin de spécifier un entrepôt à utiliser.

Tout ce que vous avez à faire est de définir une clé de clustering pour chaque table (en fonction de vos besoins), et Snowflake gère toute la maintenance future.

Contrôle total

Vous pouvez suspendre et reprendre le clustering automatique d’une table mise en cluster à tout moment en utilisant ALTER TABLE … SUSPEND / RESUME RECLUSTER. Lorsque le reclustering automatique est suspendu pour une table, la table n’est jamais automatiquement regroupée, quel que soit son état de clustering et, par conséquent, n’encourt aucun frais de crédit connexes.

Vous pouvez également détruire la clé de clustering d’une table en cluster à tout moment, ce qui empêche tout reclustering ultérieur sur la table.

DML non bloquant

Le clustering automatique est transparent et ne bloque pas les instructions DML émises dans les tables en cours de reclustering.

Efficacité optimale

Avec le clustering automatique, Snowflake gère en interne l’état des tables groupées, ainsi que les ressources (serveurs, mémoire, etc.) utilisées pour toutes les opérations de clustering automatisées. Cela permet à Snowflake d’allouer dynamiquement des ressources en fonction des besoins, ce qui se traduit par un reclustering plus efficace.

En outre, le clustering automatique n’effectue aucun reclustering superflu. Le reclustering n’est déclenché que si/quand la table peut bénéficier de l’opération.

Utilisation du crédit et entrepôts virtuels pour le clustering automatique

Le clustering automatique utilise des crédits Snowflake, mais ne nécessite pas que vous fournissiez un entrepôt virtuel. À la place, Snowflake effectue la gestion en interne et permet une utilisation efficace des ressources pour le reclustering des tables.

Votre compte n’est facturé que pour les crédits réellement consommés par les opérations de clustering automatique sur vos tables groupées.

Important

Après l’activation ou la reprise du clustering automatique sur une table groupée, si cela fait un certain temps que la table n’a pas été regroupée, il se peut que l’activité de clustering se déclenche et que des frais de crédit correspondants soient facturés afin que Snowflake procède au groupement de la table. Une fois que la table est groupée de façon optimale, l’activité de reclustering diminue.

De même, la définition d’une clé de clustering sur une table existante ou la modification d’une clé de clustering sur une table groupée peut déclencher un reclustering et des frais de crédit.

Pour éviter des frais de crédit imprévus, nous vous recommandons de commencer par une ou deux tables sélectionnées et d’observer les frais de crédit associés à la tenue des tables regroupées lorsque le DML est exécuté. Cela vous aidera à établir une base de référence pour le nombre de crédits consommés par une activité de reclustering.

Activation du clustering automatique d’une table

Aucune tâche n’est requise pour activer le clustering automatique pour une table. Vous définissez simplement une clé de clustering pour la table.

Astuce

Avant de définir une clé de clustering pour une table, prenez en compte les conditions suivantes, susceptibles de provoquer une activité de reclustering (et des frais de crédit correspondants) :

C’est pourquoi nous recommandons de commencer par une ou deux tables sélectionnées et d’évaluer l’impact du clustering automatique sur ces tables. Une fois que vous êtes familier avec la façon dont le clustering automatique effectue le reclustering, vous pouvez alors définir des clés de clustering pour vos autres tables.

Pour plus d’informations sur le choix des clés de clustering optimales, voir Stratégies de sélection des clés de clustering.

Affichage du statut du clustering automatique d’une table

Vous pouvez utiliser SQL pour déterminer si le clustering automatique est activé pour une table :

La colonne AUTO_CLUSTERING_ON de la sortie affiche le statut du clustering automatique pour chaque table, qui permet de déterminer s’il faut suspendre ou reprendre le clustering automatique pour une table donnée.

De plus, la colonne CLUSTER_BY (SHOW TABLES) ou la colonne CLUSTERING_KEY (vue TABLES) affiche la ou les colonnes définies comme clé(s) de clustering pour chaque table.

Note

L’état du clustering automatique n’est pas encore affiché dans la vue TABLES (dans la base de données partagée Account Usage). Il sera ajouté dans une prochaine version.

Suspension du clustering automatique d’une table

Pour suspendre le clustering automatique d’une table, utilisez la commande ALTER TABLE avec une clause SUSPEND RECLUSTER. Par exemple :

ALTER TABLE t1 SUSPEND RECLUSTER;

SHOW TABLES LIKE 't1';

+---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+----------+----------------+----------------------+
|           created_on            | name | database_name | schema_name | kind  | comment | cluster_by | rows | bytes |  owner   | retention_time | automatic_clustering |
+---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+----------+----------------+----------------------+
| Thu, 12 Apr 2018 13:29:01 -0700 | T1   | TESTDB        | MY_SCHEMA   | TABLE |         | LINEAR(C1) | 0    | 0     | SYSADMIN | 1              | OFF                  |
+---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+----------+----------------+----------------------+

Reprise du clustering automatique d’une table

Pour reprendre le clustering automatique pour une table groupée, utilisez la commande ALTER TABLE avec une clause RESUME RECLUSTER. Par exemple :

ALTER TABLE t1 RESUME RECLUSTER;

SHOW TABLES LIKE 't1';

+---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+----------+----------------+----------------------+
|           created_on            | name | database_name | schema_name | kind  | comment | cluster_by | rows | bytes |  owner   | retention_time | automatic_clustering |
+---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+----------+----------------+----------------------+
| Thu, 12 Apr 2018 13:29:01 -0700 | T1   | TESTDB        | MY_SCHEMA   | TABLE |         | LINEAR(C1) | 0    | 0     | SYSADMIN | 1              | ON                   |
+---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+----------+----------------+----------------------+

Astuce

Avant de reprendre le clustering automatique sur une table groupée, tenez compte de ce qui suit, ce qui peut entraîner une activité de reclustering (et des frais de crédit correspondants) :

  • La table n’a pas subi un clustering optimal (p. ex. un DML significatif a été effectué sur la table depuis son dernier reclustering).

  • La clé de clustering sur la table a été modifiée.

Pour plus de détails, voir Micro-partitions et clustering de données et Clés de clustering et tables en cluster.

Affichage de la facturation du clustering automatique

Les utilisateurs avec le rôle ACCOUNTADMIN peuvent voir la facturation pour le clustering automatique en utilisant soit l’interface Web soit SQL :

Interface Web

Cliquez sur Account Account tab » Billing & Usage

La facturation du clustering automatique apparaît sous la forme d’un entrepôt Snowflake séparé nommé Snowflake logo in blue (no text) AUTOMATIC_CLUSTERING.

SQL

Interrogez l’un des éléments suivants :

Note

Les moniteurs de ressources permettent de contrôler l’utilisation du crédit d’entrepôt virtuel. Cependant, vous ne pouvez pas les utiliser pour contrôler l’utilisation du crédit pour les entrepôts fournis par Snowflake, y compris l’entrepôt Snowflake logo in blue (no text) AUTOMATIC_CLUSTERING.