Création d’une table Apache Iceberg™ dans Snowflake

Créez Tables Apache Iceberg™ dans Snowflake pour différentes Options de catalogue. Vous pouvez créer une table Iceberg via la commande CREATE ICEBERG TABLE.

Note

Géré par Snowflake

Pour créer une table Iceberg avec Snowflake comme catalogue, vous devez spécifier un volume externe et un emplacement de base (répertoire sur le volume externe) dans lesquels Snowflake peut écrire les données et les métadonnées de la table. Pour des instructions sur la création d’un volume externe, voir Configurer un volume externe.

Pour définir des colonnes de table, vous pouvez utiliser des types de données Iceberg. Pour plus d’informations, voir Types de données des tables Apache Iceberg™.

L’exemple suivant crée une table Iceberg avec Snowflake comme catalogue Iceberg.

CREATE OR REPLACE ICEBERG TABLE my_iceberg_table (
    boolean_col boolean,
    int_col int,
    long_col long,
    float_col float,
    double_col double,
    decimal_col decimal(10,5),
    string_col string,
    fixed_col fixed(10),
    binary_col binary,
    date_col date,
    time_col time,
    timestamp_ntz_col timestamp_ntz(6),
    timestamp_ltz_col timestamp_ltz(6)
  )
  CATALOG = 'SNOWFLAKE'
  EXTERNAL_VOLUME = 'my_ext_vol'
  BASE_LOCATION = 'my/relative/path/from/extvol';
Copy

Note

Il est également possible d’utiliser une syntaxe de variante. Pour plus d’informations, voir CREATE TABLE … AS SELECT et CREATE ICEBERG TABLE … LIKE.

Après avoir créé une table qui utilise Snowflake comme catalogue, vous pouvez effectuer des actions telles que les suivantes :

Pour plus d’informations, voir Gestion des tables Apache Iceberg™.

Catalogue externe

Pour créer une table Iceberg qui utilise un catalogue externe, ou qui n’utilise aucun catalogue, vous devez spécifier un volume externe et une intégration de catalogue. Si vous utilisez un catalogue Iceberg externe, vous devrez peut-être également spécifier des paramètres supplémentaires. Par exemple, lorsque vous utilisez AWS Glue comme catalogue, vous devez spécifier un nom de table de catalogue.

Lorsque vous créez une table Iceberg qui utilise un catalogue externe, Snowflake effectue une actualisation initiale des métadonnées. Vous pouvez également actualiser manuellement les métadonnées de la table via la commande ALTER ICEBERG TABLE … REFRESH pour synchroniser les métadonnées sur les modifications les plus récentes apportées à la table. Pour plus d’informations, voir Actualiser les métadonnées de la table.

AWS Glue

Important

Vous devez configurer une intégration de catalogue pour AWS Glue pour établir une relation de confiance entre Snowflake et le catalogue de données Glue. Pour obtenir des instructions, voir Configurer une intégration de catalogue pour AWS Glue.

L’exemple suivant crée une table Iceberg qui utilise le catalogue de données AWS Glue, en spécifiant le nom d’une intégration de catalogue configurée pour AWS Glue (glueCatalogInt) et une valeur pour la propriété CATALOG_TABLE_NAME.

CREATE ICEBERG TABLE myGlueTable
  EXTERNAL_VOLUME='glueCatalogVolume'
  CATALOG='glueCatalogInt'
  CATALOG_TABLE_NAME='myGlueTable';
Copy

Après avoir créé une table avec AWS Glue comme catalogue, vous pouvez effectuer des actions telles que les suivantes :

Fichiers Iceberg dans le stockage d’objets

L’exemple suivant crée une table Iceberg à partir de métadonnées Iceberg dans le stockage Cloud externe, en spécifiant un chemin d’accès relatif aux métadonnées de la table dans le volume externe (METADATA_FILE_PATH).

CREATE ICEBERG TABLE myIcebergTable
  EXTERNAL_VOLUME='icebergMetadataVolume'
  CATALOG='icebergCatalogInt'
  METADATA_FILE_PATH='path/to/metadata/v1.metadata.json';
Copy

Fichiers Delta dans le stockage d’objets

L’exemple de commande suivant crée une table Iceberg à partir de fichiers de table Delta dans le stockage d’objets.

L’exemple spécifie un volume externe associé à l’emplacement cloud des fichiers de la table Delta, une intégration du catalogue configurée pour Delta et une valeur pour le paramètre requis BASE_LOCATION.

CREATE ICEBERG TABLE my_delta_iceberg_table
  CATALOG = delta_catalog_integration
  EXTERNAL_VOLUME = delta_external_volume
  BASE_LOCATION = 'relative/path/from/ext/vol/';
Copy

Si la table Delta utilise un schéma de partitionnement, Snowflake interprète automatiquement le schéma à partir du journal Delta.

Catalogue REST Apache Iceberg™

L’exemple suivant crée une table qui utilise un catalogue REST Iceberg.

CREATE OR REPLACE ICEBERG TABLE my_iceberg_table
  EXTERNAL_VOLUME = 'my_external_volume'
  CATALOG = 'my_rest_catalog_integration'
  CATALOG_TABLE_NAME = 'my_remote_table';
Copy