CREATE CATALOG INTEGRATION

Note

Une intégration de catalogue n’est nécessaire que lorsque vous souhaitez créer une table Iceberg en lecture seule avec un catalogue externe ou à partir de fichiers sources dans le stockage d’objets. Vous n’avez pas besoin d’une intégration de catalogue pour créer une table Iceberg qui utilise Snowflake comme catalogue Iceberg. Pour utiliser Snowflake comme catalogue, définissez le paramètre CATALOG sur SNOWFLAKE dans la commande CREATE ICEBERG TABLE.

Crée une nouvelle intégration de catalogue pour tables Iceberg dans le compte ou remplace une intégration de catalogue existante.

Voir aussi :

DROP CATALOG INTEGRATION , SHOW CATALOG INTEGRATIONS, DESCRIBE CATALOG INTEGRATION

Syntaxe

CREATE [ OR REPLACE ] CATALOG INTEGRATION [IF NOT EXISTS]
  <name>
  CATALOG_SOURCE = { GLUE | OBJECT_STORE }
  TABLE_FORMAT = { ICEBERG }
  [ catalogParams ]
  ENABLED = { TRUE | FALSE }
  [ COMMENT = '{string_literal}' ]
Copy

Où :

catalogParams (for AWS Glue)::=
  GLUE_AWS_ROLE_ARN = '<arn-for-AWS-role-to-assume>'
  GLUE_CATALOG_ID = '<glue-catalog-id>'
  [ GLUE_REGION = '<AWS-region-of-the-glue-catalog>' ]
  CATALOG_NAMESPACE = '<catalog-namespace>'
Copy

Paramètres requis

name

Chaîne spécifiant l’identificateur (le nom) de l’intégration de catalogue ; elle doit être unique sur votre compte.

De plus, l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (par exemple, "My object"). Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Pour plus de détails, voir Exigences relatives à l’identificateur.

CATALOG_SOURCE = { GLUE | OBJECT_STORE }

Spécifie le type de source de catalogue.

AWS Glue

GLUE : Crée une intégration entre Snowflake et AWS Glue.

Métadonnées Iceberg dans le stockage d’objets

OBJECT_STORE : Crée une intégration pour les fichiers de métadonnées Iceberg dans un emplacement de stockage Cloud externe que vous associez à un volume externe.

TABLE_FORMAT = { ICEBERG }

Spécifie le format de table fourni par le catalogue.

ICEBERG : Spécifie les tables Iceberg Glue ou les tables Iceberg des métadonnées dans un emplacement de stockage Cloud externe.

ENABLED = { TRUE | FALSE }

Indique si l’intégration de catalogue peut être utilisée pour des tables Iceberg.

  • TRUE permet aux utilisateurs de créer de nouvelles tables Iceberg faisant référence à cette intégration. Les tables Iceberg existantes qui font référence à cette intégration fonctionnent normalement.

  • FALSE empêche les utilisateurs de créer de nouvelles tables Iceberg faisant référence à cette intégration. Les tables Iceberg existantes qui font référence à cette intégration ne peuvent pas accéder au catalogue dans la définition de la table.

Paramètres du catalogue (catalogParams)

AWS Glue

Important

Lorsque vous créez une intégration de catalogue pour AWS Glue, vous devez effectuer des étapes supplémentaires pour établir une relation de confiance entre Snowflake et le catalogue de données Glue. Pour plus de détails, voir Configurer une intégration de catalogue pour des tables Iceberg.

GLUE_AWS_ROLE_ARN = 'arn-for-AWS-role-to-assume'

Spécifie le nom de ressource Amazon (ARN) du rôle IAM (Identity and Access Management - Gestion de l’identité et de l’accès) AWS à assumer.

GLUE_CATALOG_ID = 'glue-catalog-id'

Spécifie l’ID de votre compte AWS.

[ GLUE_REGION = 'AWS-region-of-the-glue-catalog' ]

Spécifie la région AWS de votre catalogue de données AWS Glue. Vous devez spécifier une valeur pour ce paramètre si votre compte Snowflake n’est pas hébergé sur AWS. Sinon, la région par défaut est la région de déploiement Snowflake du compte.

CATALOG_NAMESPACE = 'catalog-namespace'

Spécifie l’espace de noms de votre catalogue de données AWS Glue (par exemple, my_glue_database). Il s’agit de l’espace de noms par défaut de toutes les tables Iceberg que vous associez à cette intégration de catalogue. Vous pouvez remplacer cette valeur en spécifiant l’espace de noms au niveau de la table lorsque vous créez une table.

Paramètres facultatifs

COMMENT = 'string_literal'

Chaîne (littéral) qui spécifie un commentaire pour l’intégration.

Par défaut : aucune valeur

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

CREATE INTEGRATION

Compte

Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed.

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

  • Vous ne pouvez pas modifier une intégration de catalogue existante ; utilisez plutôt une instruction CREATE OR REPLACE CATALOG INTEGRATION.

  • 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.

  • Les instructions CREATE OR REPLACE <objet> sont atomiques. En d’autres termes, lorsqu’un objet est remplacé, l’ancien objet est supprimé et le nouvel objet est créé dans une seule transaction.

Exemples

AWS Glue

L’exemple suivant crée une intégration de catalogue qui utilise une source de catalogue AWS Glue. Lorsque vous créez une intégration de catalogue pour Glue, vous devez effectuer des étapes supplémentaires pour établir une relation de confiance entre Snowflake et le catalogue de données Glue. Pour plus de détails, voir Configurer une intégration de catalogue pour des tables Iceberg.

CREATE CATALOG INTEGRATION glueCatalogInt
  CATALOG_SOURCE=GLUE
  CATALOG_NAMESPACE='my.catalogdb'
  TABLE_FORMAT=ICEBERG
  GLUE_AWS_ROLE_ARN='<arn-for-aws-role-to-assume>'
  GLUE_CATALOG_ID='<catalog-id>'
  GLUE_REGION='<optional-aws-region-of-the-glue-catalog>'
  ENABLED=TRUE;
Copy

Métadonnées Iceberg dans le stockage d’objets

L’exemple suivant crée une intégration qui utilise des métadonnées Iceberg dans le stockage Cloud externe. OBJECT_STORE correspond au stockage d’objets que vous associez à un volume externe.

CREATE CATALOG INTEGRATION myCatalogInt
  CATALOG_SOURCE=OBJECT_STORE
  TABLE_FORMAT=ICEBERG
  ENABLED=TRUE;
Copy