ALTER ICEBERG TABLE … CONVERT TO MANAGED¶
Convertit une table Apache Iceberg qui utilise un catalogue Iceberg externe en une table qui utilise Snowflake comme catalogue (une table Iceberg gérée par Snowflake).
La table convertie prend en charge les opérations de lecture et d’écriture, et Snowflake prend en charge la maintenance tout au long du cycle de vie de la table, comme le compactage. Pour plus d’informations, voir Avant et après la conversion de table.
- Voir aussi :
CREATE ICEBERG TABLE , DROP ICEBERG TABLE , SHOW ICEBERG TABLES , DESCRIBE ICEBERG TABLE
Syntaxe¶
ALTER ICEBERG TABLE [ IF EXISTS ] <table_name> CONVERT TO MANAGED
[ BASE_LOCATION = '<directory_for_table_files>' ]
[ STORAGE_SERIALIZATION_POLICY = { COMPATIBLE | OPTIMIZED } ]
Paramètres¶
table_name
Identificateur de la table à convertir.
Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.
Pour plus d’informations, voir Exigences relatives à l’identificateur.
[ BASE_LOCATION = 'directory_for_table_files' ]
Chemin d’accès à un répertoire dans lequel Snowflake peut écrire des fichiers de données et de métadonnées pour la table. Spécifiez un chemin d’accès relatif à partir de l’emplacement
EXTERNAL_VOLUME
de la table. Pour plus d’informations, voir Répertoires de données et de métadonnées.Vous devez spécifier une valeur pour cette propriété si l’instruction CREATE ICEBERG TABLE d’origine ne permettait pas ou n’incluait pas de
BASE_LOCATION
.Ce répertoire ne peut pas être modifié après la conversion d’une table.
STORAGE_SERIALIZATION_POLICY = { COMPATIBLE | OPTIMIZED }
Spécifie la politique de sérialisation du stockage de la table. Si elle n’est pas spécifiée lors de la conversion, la table hérite de la valeur définie au niveau du schéma, de la base de données ou du compte. Si la valeur n’est spécifiée à aucun niveau, la table utilise la valeur par défaut.
Vous ne pouvez pas modifier la valeur de ce paramètre après avoir converti une table.
COMPATIBLE
: Snowflake effectue un encodage et une compression qui garantissent l’interopérabilité avec les moteurs de calcul tiers.OPTIMIZED
: Snowflake effectue un encodage et une compression qui garantissent les performances optimales des tables au sein de Snowflake.
Par défaut :
OPTIMIZED
Exigences en matière de contrôle d’accès¶
Un rôle utilisé pour exécuter cette commande SQL doit avoir les privilèges suivants définis au minimum ainsi :
Privilège |
Objet |
Remarques |
---|---|---|
OWNERSHIP |
Table Iceberg |
OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
USAGE |
Volume externe |
|
USAGE |
Intégration de catalogue |
Notez que l’exploitation d’un objet dans un schéma requiert également le privilège USAGE sur la base de données et le schéma parents.
Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.
Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.
Notes sur l’utilisation¶
Seul le propriétaire de la table (c’est-à-dire le rôle doté du privilège OWNERSHIP sur la table) ou un niveau supérieur peut exécuter cette commande.
Concernant les métadonnées :
Attention
Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.
Exemples¶
L’exemple suivant utilise l’instruction ALTER ICEBERG TABLE … CONVERT TO MANAGED pour convertir une table non gérée par Snowflake en une table qui utilise Snowflake comme catalogue Iceberg.
ALTER ICEBERG TABLE myTable CONVERT TO MANAGED
BASE_LOCATION = 'my/relative/path/from/external_volume';