Configurer un volume externe¶
Un volume externe est un objet Snowflake nommé, de niveau compte, que vous utilisez pour connecter Snowflake à votre stockage cloud externe pour les tables Iceberg. Un volume externe stocke une entité de gestion de l’identité et de l’accès (IAM) pour votre lieu de stockage. Snowflake utilise l’entité IAM pour se connecter en toute sécurité à votre stockage afin d’accéder aux données des tables, aux métadonnées Iceberg et aux fichiers manifestes qui stockent le schéma des tables, les partitions et d’autres métadonnées.
Un seul volume externe peut prendre en charge une ou plusieurs tables Iceberg.
Vous devez créer un volume externe avant de pouvoir créer une table Apache Iceberg™ dans Snowflake.
Créer un volume externe¶
Les étapes pour créer un volume externe dépendent de votre fournisseur de stockage Cloud.
Pour obtenir des instructions, reportez-vous aux rubriques suivantes :
Chaque volume externe est associé à un Emplacement de stockage actif particulier, et un seul volume externe peut prendre en charge plusieurs tables Iceberg. Cependant, le nombre de volumes externes dont vous avez besoin dépend de la manière dont vous souhaitez stocker, organiser et sécuriser vos données de table.
Vous pouvez utiliser un seul volume externe si vous souhaitez que les données et les métadonnées de toutes vos tables Snowflake-Iceberg se trouvent dans des sous-répertoires sous le même emplacement de stockage (par exemple, dans le même compartiment S3). Pour configurer ces répertoires pour les tables gérées par Snowflake, voir Répertoires de données et de métadonnées.
Vous pouvez également créer plusieurs volumes externes pour sécuriser différemment différents emplacements de stockage. Par exemple, vous pouvez créer les volumes externes suivants :
Un volume externe en lecture seule pour les tables Iceberg gérées en externe.
Un volume externe configuré avec un accès en lecture et en écriture pour les tables gérées par Snowflake.
Vérification d’un volume externe¶
Vérifiez un volume externe pour vous assurer que Snowflake peut s’authentifier avec succès auprès de votre fournisseur de stockage à l’aide d’un volume externe que vous avez configuré. Vous pouvez vérifier un volume externe en utilisant SQL ou Snowsight.
Utiliser SQL¶
Pour vérifier un volume externe à l’aide de SQL, appelez la fonction SYSTEM$VERIFY_EXTERNAL_VOLUME.
Indiquez le nom du volume externe que vous voulez vérifier.
SELECT SYSTEM$VERIFY_EXTERNAL_VOLUME('my_s3_external_volume');
Utiliser Snowsight¶
Pour vérifier un volume externe à l’aide de Snowsight, suivez les étapes suivantes :
Connectez-vous à Snowsight.
Dans le menu de navigation, sélectionnez Catalog » External data.
Sélectionnez l’onglet External volumes.
Sélectionnez le volume externe dont vous souhaitez vérifier la connexion.
Sélectionnez … » Verify connection.
Définition d’un volume externe par défaut au niveau du compte, de la base de données ou du schéma¶
Vous pouvez soit définir un volume externe existant en tant que volume par défaut, soit définir un nouveau volume externe en tant que volume par défaut lorsque vous le créez.
Définition d’un volume externe existant en tant que volume par défaut¶
Pour définir un volume externe existant comme volume par défaut à utiliser pour les tables Iceberg, vous pouvez définir le paramètre EXTERNAL_VOLUME aux niveaux suivants :
- Compte:
Les administrateurs de compte peuvent utiliser la commande ALTER ACCOUNT pour définir le paramètre du compte. Si la valeur est définie pour le compte, toutes les tables Iceberg créées dans le compte lisent et écrivent dans ce volume externe par défaut.
- Objet:
Les utilisateurs peuvent exécuter la commande CREATE <objet> ou ALTER <objet> appropriée pour remplacer la valeur du paramètre EXTERNAL_VOLUME au niveau de la base de données ou du schéma. La déclaration la moins étendue est utilisée : schéma > base de données > compte.
Outre les privilèges minimaux requis pour modifier un objet à l’aide de la commande ALTER <type_objet_> appropriée, un rôle doit avoir le privilège USAGE sur le volume externe.
Note
Les modifications apportées au paramètre EXTERNAL_VOLUME ne s’appliquent qu’aux tables créées après la modification. Les tables existantes continuent d’utiliser le volume externe spécifié lors de leur création.
Vous pouvez également définir un volume externe par défaut au niveau du compte, de la base de données ou du schéma lorsque vous créez le volume externe en utilisant Snowsight.
Exemple¶
L’instruction suivante définit un volume externe (my_s3_vol) pour une base de données nommée my_database_1 :
ALTER DATABASE my_database_1
SET EXTERNAL_VOLUME = 'my_s3_vol';
Après avoir défini un volume externe au niveau de la base de données, vous pouvez créer une table Iceberg dans cette base de données sans spécifier de volume externe. L’instruction suivante crée une table Iceberg dans my_database_1 qui utilise Snowflake comme catalogue et le volume externe par défaut (my_s3_vol) défini pour la base de données.
CREATE ICEBERG TABLE iceberg_reviews_table (
id STRING,
product_name STRING,
product_id STRING,
reviewer_name STRING,
review_date DATE,
review STRING
)
CATALOG = 'SNOWFLAKE'
BASE_LOCATION = 'my/product_reviews/';
Définition d’un nouveau volume externe en tant que volume par défaut¶
Pour définir un nouveau volume externe en tant que volume par défaut à utiliser pour les tables Iceberg, lorsque vous créez le volume externe dans Snowsight, utilisez le champ Scope dans les paramètres de configuration pour définir le volume externe en tant que volume par défaut au niveau du compte, de la base de données ou du schéma.
Pour obtenir des instructions sur la création d’un volume externe dans Snowsight, consultez les sections suivantes :
Accorder les privilèges USAGE sur un volume externe en utilisant Snowsight¶
Le privilège USAGE permet de référencer le volume externe et d’afficher les détails du volume externe. Pour plus d’informations, voir Privilèges de volume externe.
Pour accorder les privilèges USAGE à un volume externe en utilisant Snowsight, suivez les étapes suivantes :
Connectez-vous à Snowsight.
Basculez vers un rôle qui dispose des privilèges OWNERSHIP sur le volume externe auquel vous souhaitez accorder les privilèges USAGE.
Pour obtenir des instructions sur le basculement de rôle, consultez Changer de rôle principal. Pour plus d’informations sur le privilège OWNERSHIP, consultez Privilèges de volume externe.
Dans le menu de navigation, sélectionnez Catalog » External data.
Sélectionnez l’onglet External volumes.
Sélectionnez le volume externe sur lequel vous souhaitez accorder les privilèges USAGE.
Sélectionnez + Privilege.
À partir du champ Roles, sélectionnez le rôle auquel vous voulez accorder le privilège USAGE pour le volume externe.
À partir du champ Privileges, sélectionnez USAGE.
Sélectionnez Grant privileges.
Ajouter un emplacement de stockage à l’aide de Snowsight¶
Note
Pour ajouter un emplacement de stockage à un volume externe en utilisant SQL, utilisez le paramètre ADD STORAGE_LOCATION de la commande ALTER EXTERNAL VOLUME.
Pour ajouter un emplacement de stockage nommé à un volume externe à l’aide de Snowsight, suivez les étapes suivantes :
Connectez-vous à Snowsight.
Basculez vers un rôle qui dispose du privilège OWNERSHIP sur le volume externe pour lequel vous souhaitez ajouter un emplacement de stockage.
Pour obtenir des instructions, voir Changer de rôle principal.
Dans le menu de navigation, sélectionnez Catalog » External data.
Sélectionnez l’onglet External volumes.
Sélectionnez le volume externe auquel vous souhaitez ajouter un emplacement de stockage.
Sélectionnez … » Add storage location
Sélectionnez votre fournisseur de stockage Cloud et spécifiez la configuration de l’emplacement de stockage que vous ajoutez :
Sélectionnez l’onglet Amazon S3.
Spécifiez la configuration de l’emplacement de stockage que vous ajoutez :
Champ
Description
Location name
Saisissez un nom pour votre emplacement de stockage supplémentaire.
Region type
Spécifie le fournisseur de stockage dans le Cloud qui stocke vos fichiers de données.
Standard (default) : Stockage S3 dans des régions AWS publiques hors Chine.
Government (GovCloud) : Stockage S3 dans des régions gouvernementales AWS.
S3 role ARN
Spécifie le nom de ressource Amazon (Amazon Resource Name ou ARN) sensible à la casse du rôle de gestion des identités et des accès (Identity and Access Management ou AWS) IAM qui octroie des privilèges sur le compartiment S3 contenant vos fichiers de données.
Vous avez enregistré cette valeur lorsque vous avez créé un rôle IAM.
Encryption (optional)
Indique le type de chiffrement utilisé. Les valeurs possibles sont les suivantes :
None (default) : Pas de chiffrement.
SSE-S3 : Chiffrement côté serveur à l’aide de clés de chiffrement gérées par S3. Pour plus d’informations, voir Utilisation du chiffrement côté serveur à l’aide de clés de chiffrement gérées par Amazon S3 (SSE-S3).
SSE-KMS (enter key) : Chiffrement côté serveur à l’aide de clés stockées dans KMS. Pour plus d’informations, voir Utilisation du chiffrement côté serveur à l’aide du service de gestion de clés AWS (SSE-KMS).
Connectivity
Indique s’il faut utiliser la connectivité privée sortante pour renforcer votre sécurité. Pour obtenir des informations sur l’utilisation de ce paramètre, voir Connectivité privée vers des volumes externes pour Amazon Web Services. Les valeurs possibles sont les suivantes :
Public (default) : Utilisez l’Internet public.
Private (AWS PrivateLink) : Utilisez la connexion privée sortante.
Storage base URL
Spécifie l’URL de base pour votre emplacement de stockage supplémentaire.
Sélectionnez l’onglet Microsoft Azure.
Spécifiez la configuration de l’emplacement de stockage que vous ajoutez :
Champ
Description
Location name
Saisissez un nom pour votre emplacement de stockage supplémentaire.
Storage base URL
Spécifie l’URL de base pour votre emplacement de stockage supplémentaire.
Azure tenant ID
Spécifiez votre ID de client Azure.
Pour trouver votre ID de client Azure, consultez Comment trouver votre ID de client Microsoft Entra dans la documentation Microsoft Entra.
Use PrivateLink endpoint
Indique s’il faut utiliser la connectivité privée sortante pour renforcer votre sécurité. Pour obtenir des informations sur l’utilisation de la connexion privée sortante, consultez Connectivité privée vers des volumes externes pour Microsoft Azure.
Sélectionnez l’onglet Google Cloud.
Spécifiez la configuration de l’emplacement de stockage que vous ajoutez :
Champ
Description
Location name
Saisissez un nom pour votre emplacement de stockage supplémentaire.
Storage base URL
Spécifie l’URL de base pour votre emplacement de stockage supplémentaire.
Encryption (optional)
Indique le type de chiffrement utilisé. Les valeurs possibles sont les suivantes :
None (default) : Pas de chiffrement.
SSE-KMS (enter key) : Chiffrement côté serveur à l’aide de clés stockées dans KMS. Pour plus d’informations, voir clés de chiffrement gérées par le client.
Sélectionnez l’onglet S3 Compatible.
Spécifiez la configuration de l’emplacement de stockage que vous ajoutez :
Champ
Description
Location name
Saisissez un nom pour votre emplacement de stockage supplémentaire.
Storage base URL
Spécifie l’URL de base de votre emplacement de stockage Cloud.
AWS key ID
Spécifie l’ID de clé AWS pour la connexion et l’accès à votre emplacement de stockage compatible S3.
AWS secret key
Spécifie la clé secrète AWS pour la connexion et l’accès à votre emplacement de stockage compatible S3.
Storage endpoint
Spécifie un domaine entièrement qualifié qui pointe vers votre point de terminaison de l’API compatible avec S3.
Note
Le point de terminaison du stockage ne doit pas inclure de nom de compartiment ; par exemple, indiquez
example.comau lieu demy_bucket.example.com.
Sélectionnez Add storage location.