Configurer un volume externe pour un stockage compatible S3¶
Pour les tables Iceberg gérées en externe avec des données et des métadonnées dans un stockage compatible S3, vous pouvez configurer un volume externe associé à un emplacement de stockage Amazon S3-compatible.
Les tables Iceberg qui utilisent un stockage compatible S3 sont des tables interrégionales et ne prennent pas en charge les actions suivantes :
Utiliser Snowflake comme catalogue Iceberg ou convertir une table pour utiliser Snowflake comme catalogue Iceberg.
Récupérer des informations sur le dernier instantané actualisé à l’aide de la fonction SYSTEM$GET_ICEBERG_TABLE_INFORMATION.
Conditions préalables¶
Pour créer une table Iceberg qui utilise un stockage compatible S3, vous devez disposer d’un point de terminaison API compatible S3 pour Snowflake. Pour plus d’informations, voir Exigences pour un stockage compatible avec S3.
Créer un volume externe pour un stockage compatible S3¶
Les étapes suivantes montrent comment configurer un volume externe pour un stockage compatible S3 et comment utiliser ce volume pour créer une table Iceberg gérée en externe.
Créez un volume externe qui spécifie un emplacement de stockage compatible S3. Pour des informations sur les paramètres compatibles S3 de la commande CREATE EXTERNAL VOLUME, voir la syntaxe de la commande.
CREATE OR REPLACE EXTERNAL VOLUME ext_vol_s3_compat STORAGE_LOCATIONS = ( ( NAME = 'my_s3_compat_storage_location' STORAGE_PROVIDER = 'S3COMPAT' STORAGE_BASE_URL = 's3compat://mybucket/unload/mys3compatdata' CREDENTIALS = ( AWS_KEY_ID = '1a2b3c...' AWS_SECRET_KEY = '4x5y6z...' ) STORAGE_ENDPOINT = 'mystorage.com' ) ) ALLOW_WRITES = FALSE;
Si vous n’avez pas d”intégration dans le catalogue, créez-en une pour votre table Iceberg. Les tables Iceberg qui utilisent un stockage compatible S3 ne sont prises en charge que lorsque vous utilisez une intégration de catalogue. Pour plus d’informations, voir Créer une intégration de catalogue.
L’exemple suivant crée une intégration de catalogue pour les fichiers Iceberg dans le stockage objet.
CREATE OR REPLACE CATALOG INTEGRATION my_iceberg_catalog_int CATALOG_SOURCE = OBJECT_STORE TABLE_FORMAT = ICEBERG ENABLED = TRUE;
Utilisez l’intégration du volume externe et du catalogue pour créer une table Iceberg.
Par exemple :
CREATE ICEBERG TABLE my_iceberg_table EXTERNAL_VOLUME = 'ext_vol_s3_compat' CATALOG = 'my_iceberg_catalog_int' METADATA_FILE_PATH = 'path/to/metadata/v1.metadata.json';
Mettre à jour les identifiants de connexion de votre volume externe¶
Pour modifier ou mettre à jour les identifiants du volume externe, vous pouvez utiliser la commande ALTER EXTERNAL VOLUME. .. UPDATE. Indiquez le nom de l’emplacement de stockage dont vous souhaitez modifier les identifiants de connexion.
ALTER EXTERNAL VOLUME ext_vol_s3_compat UPDATE
STORAGE_LOCATION = 'my_s3_compat_storage_location'
CREDENTIALS = (
AWS_KEY_ID = '4d5e6f...'
AWS_SECRET_KEY = '7g8h9i...'
);