Configurer une intégration de catalogue pour Snowflake Postgres¶
Une intégration de catalogue Snowflake Postgres permet d’accéder aux tables Apache Iceberg™ de Snowflake gérées par une instance Snowflake Postgres. Lorsque vous créez une intégration de catalogue pour Snowflake Postgres, Snowflake découvre automatiquement les tables dans vos bases de données Postgres et les rend disponibles en tant que tables Iceberg en lecture seule.
Les intégrations de catalogue Snowflake Postgres utilisent des identifiants distribués pour accéder aux données et métadonnées de vos tables dans le stockage Cloud. Vous n’avez pas besoin de configurer un volume externe ou gérez les identifiants de stockage séparément.
Note
Les intégrations de catalogue Snowflake Postgres sont actuellement prises en charge sur AWS uniquement.
Conditions préalables¶
Un compte Snowflake avec la fonctionnalité Snowflake Postgres activée.
Une instance Postgres dans l’état READY. Pour créer une instance Postgres, consultez CREATE POSTGRES INSTANCE.
Le rôle qui crée l’intégration de catalogue doit disposer des privilèges suivants :
USAGEsur l’instance Postgres.CREATE INTEGRATIONsur le compte
Considérations¶
Tenez compte des éléments suivants lorsque vous utilisez une intégration de catalogue Snowflake Postgres :
Les intégrations de catalogue Snowflake Postgres utilisent toujours des identifiants de connexion distribués. Vous devez définir
ACCESS_DELEGATION_MODE = VENDED_CREDENTIALS. Le modeEXTERNAL_VOLUME_CREDENTIALSn’est pas pris en charge.Vous n’avez pas besoin de spécifier
REST_AUTHENTICATION. Snowflake gère automatiquement l’authentification avec l’instance Postgres.L’actualisation automatique utilise l’interrogation des métadonnées. Les notifications de changement ne sont pas prises en charge.
Les tables sont en lecture seule. Les opérations d’écriture dans les tables Iceberg gérées par Postgres ne sont pas prises en charge.
Cette fonctionnalité n’est pas prise en charge avec les instances Postgres « burstable ».
Cette fonctionnalité est prise en charge sur AWS uniquement.
Créer une intégration de catalogue pour Snowflake Postgres¶
Pour créer une intégration de catalogue pour Snowflake Postgres, utilisez la commande CREATECATALOG INTEGRATION (Snowflake Postgres).
Par exemple :
Pour une syntaxe complète et une référence de paramètre, voir CREATE CATALOG INTEGRATION (Snowflake Postgres).
Créer une table Iceberg¶
Après avoir créé l’intégration de catalogue, vous pouvez créer des tables Iceberg qui font référence à des tables dans votre instance Postgres. Lorsque vous créez une table Iceberg avec une intégration de catalogue Snowflake Postgres, vous spécifiez l’intégration de catalogue et le nom de la table tels qu’ils existent dans la base de données Postgres.
Par exemple :
Où :
CATALOG = '<catalog_integration_name>': Spécifie le nom de votre intégration de catalogue. Requis.CATALOG_TABLE_NAME = '<table_name>': Spécifie le nom de la table telle qu’elle existe dans la base de données Postgres. Requis.CATALOG_NAMESPACE = '<schema_name>': (Facultatif) Spécifie le schéma Postgres qui contient la table. La valeur par défaut estCATALOG_NAMESPACEtelle que définie sur l’intégration de catalogue.CATALOG_NAME = '<database_name>': (Facultatif) Spécifie la base de données Postgres qui contient la table. La valeur par défaut estCATALOG_NAMEtelle que définie sur l’intégration de catalogue.AUTO_REFRESH = TRUE: (Facultatif) Active l’actualisation automatique des métadonnées. Lorsque cette option est activée, Snowflake interroge périodiquement le catalogue pour détecter les modifications de métadonnées et actualise la table automatiquement.
Note
Vous n’avez pas besoin d’indiquer un EXTERNAL_VOLUME lorsque vous créez une table Iceberg avec une intégration de catalogue Snowflake Postgres.
Créer une base de données liée à un catalogue¶
Au lieu de créer des tables Iceberg individuelles, vous pouvez créer une base de données liée au catalogue qui découvre et synchronise automatiquement les tables de votre base de données Postgres. Une base de données liée au catalogue crée des schémas correspondants et des tables Iceberg dans Snowflake qui restent synchronisées avec votre base de données Postgres.
Par exemple :
Où :
CATALOG = <catalog_integration_name>: Spécifie le nom de l’intégration de catalogue Snowflake Postgres. Requis. La base de données liée au catalogue synchronise la base de données Postgres spécifiée par la valeurCATALOG_NAMEsur l’intégration de catalogue.ALLOWED_WRITE_OPERATIONS = NONE: Requis pour les bases de données liées au catalogue Snowflake Postgres. Les tables Snowflake Postgres sont en lecture seule.
Une fois la base de données liée au catalogue créée, Snowflake découvre automatiquement les espaces de noms et les tables de la base de données Postgres et crée les schémas et tables Iceberg correspondants. Pour plus d’informations, voir Utiliser une base de données liée à un catalogue pour les tables Apache Iceberg™.
Effectuer des requêtes dans les tables Iceberg.¶
Après avoir créé une table Iceberg ou une base de données liée à un catalogue, vous pouvez interroger les tables à l’aide d’instructions standard.SQL :
Contrôle d’accès¶
Le rôle de propriétaire de l’intégration de catalogue doit avoir``USAGE`` sur l’instance Postgres. Snowflake vérifie ce privilège lorsque vous créez l’intégration de catalogue.
Tout rôle disposant du privilège USAGE sur l’intégration du catalogue peuvent créer des tables Iceberg qui font référence à des tables dans l’instance Postgres. Aucun octroi supplémentaire sur l’instance Postgres n’est nécessaire. Le rôle a également besoin des privilèges standard Snowflake pour créer des tables dans la base de données et le schéma cibles.
Par exemple, pour accorder à un autre rôle la possibilité de créer des tables Iceberg à l’aide de l’intégration de catalogue :