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.
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}' ]
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>'
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;
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;