CREATECATALOGINTEGRATION (AWS Glue)¶
Crée une intégration de catalogue dans le compte ou remplace une intégration de catalogue existante pour Tables Apache Iceberg™ qui utilise AWS Glue comme catalogue.
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 d’informations, voir Configurer une intégration de catalogue pour AWS Glue.
- Voir aussi :
ALTER CATALOG INTEGRATION , DROP CATALOG INTEGRATION , SHOW CATALOG INTEGRATIONS, DESCRIBE CATALOG INTEGRATION
Syntaxe¶
CREATE [ OR REPLACE ] CATALOG INTEGRATION [IF NOT EXISTS]
<name>
CATALOG_SOURCE = GLUE
TABLE_FORMAT = ICEBERG
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>'
ENABLED = { TRUE | FALSE }
[ REFRESH_INTERVAL_SECONDS = <value> ]
[ COMMENT = '<string_literal>' ]
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 d’informations, voir Exigences relatives à l’identificateur.
CATALOG_SOURCE = GLUE
Spécifie que l’intégration est pour AWS Glue.
TABLE_FORMAT = ICEBERG
Spécifie les tables Iceberg Glue.
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.
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.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 des 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 facultatifs¶
[ 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.
REFRESH_INTERVAL_SECONDS = value
Spécifie le nombre de secondes pendant lesquelles Snowflake attend entre les tentatives d’interrogation du catalogue Iceberg externe pour que les mises à jour des métadonnées soient actualisées automatiquement.
Valeurs : 30 à 86 400, inclus
Par défaut : 30 secondes
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.
Vous ne pouvez pas supprimer ni remplacer une intégration de catalogue si une ou plusieurs tables Apache Iceberg™ sont associées à l’intégration de catalogue.
Pour voir les tables qui dépendent d’une intégration de catalogue, vous pouvez utiliser la commande SHOW ICEBERG TABLES et une requête utilisant RESULT_SCAN qui applique un filtre sur la colonne
catalog_name
.Note
L’identificateur de colonne (
catalog_name
) est sensible à la casse. Spécifiez l’identificateur de colonne exactement tel il apparaît dans la sortie SHOW ICEBERG TABLES.Par exemple :
SHOW ICEBERG TABLES; SELECT * FROM TABLE( RESULT_SCAN( LAST_QUERY_ID() ) ) WHERE "catalog_name" = 'my_catalog_integration_1';
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¶
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 d’informations, voir Configurer une intégration de catalogue pour AWS Glue.
CREATE CATALOG INTEGRATION glueCatalogInt CATALOG_SOURCE = GLUE CATALOG_NAMESPACE = 'myNamespace' TABLE_FORMAT = ICEBERG GLUE_AWS_ROLE_ARN = 'arn:aws:iam::123456789012:role/myGlueRole' GLUE_CATALOG_ID = '123456789012' GLUE_REGION = 'us-east-2' ENABLED = TRUE;