Configurer une intégration de stockage interne Postgres pour Snowflake Postgres¶
Une intégration de stockage interne Snowflake Postgres vous permet de lire et d’écrire sur le stockage géré associé à une instance Snowflake Postgres. Cette fonctionnalité permet un déplacement fluide des données entre Snowflake et vos instances Postgres à l’aide d’une zone de préparation externe. Pour la syntaxe SQL complète, voir CREATE STORAGE INTEGRATION (stockage interne Postgres).
Les instances Postgres dans Snowflake sont fournies avec un stockage géré alloué par l’instance Postgres. Bien que les utilisateurs puissent déjà accéder à ce stockage pour lire des fichiers dans des tables Iceberg à l’aide d’une intégration de catalogue Snowflake Postgres, une intégration de stockage fournit un chemin pour écrire des données de Snowflake vers le compartiment géré de Postgres.
Note
Les intégrations de stockage interne Postgres sont actuellement prises en charge sur AWS et Azure 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 stockage doit disposer des privilèges suivants :
OWNERSHIPsur l’instance Postgres.CREATE INTEGRATIONsur le compte
Considérations¶
Tenez compte des éléments suivants lorsque vous utilisez une intégration de stockage interne Postgres :
Prise en charge des fournisseurs Cloud : Cette fonctionnalité prend actuellement en charge AWS et Azure uniquement.
Restrictions de zone de préparation : Lors de la création d’une zone de préparation (voir CREATE STAGE) qui utilise une intégration de stockage interne Postgres, les propriétés
URL,ENCRYPTIONetDIRECTORYde la zone de préparation ne sont pas autorisées.Configuration de chemin : L’intégration ajoute automatiquement un sous-chemin d’accès
/filesvers l’emplacement de stockage de base extrait de l’instance Postgres.
Créer une intégration de stockage pour le stockage interne Postgres¶
Pour créer une intégration de stockage pour le stockage interne Postgres, utilisez la commande CREATE STORAGE INTEGRATION (stockage interne Postgres) avec TYPE = POSTGRES_INTERNAL_STORAGE.
Par exemple :
Où :
TYPE = POSTGRES_INTERNAL_STORAGE: Spécifie le type d’intégration pour le stockage géré par Postgres. Requis.POSTGRES_INSTANCE = '<instance_name>': Spécifie le nom de l’instance Snowflake Postgres. Requis.
Pour une syntaxe complète et une référence de paramètre, voir CREATE STORAGE INTEGRATION (stockage interne Postgres).
Créer une zone de préparation pour le stockage Postgres¶
Après avoir créé l’intégration, vous pouvez créer une zone de préparation externe pour interagir avec le stockage. Utilisez la propriété RELATIVE_URL pour spécifier un préfixe de chemin choisi par l’utilisateur sous le stockage géré Postgres auquel cette zone de préparation doit faire référence. Cette valeur est un chemin arbitraire que vous définissez pour organiser les fichiers au sein de l’emplacement de stockage géré.
Par exemple :
Déplacer des données entre Snowflake et Postgres¶
Vous pouvez utiliser la commande COPY FILES pour déplacer des données entre les zones de préparation Snowflake et votre stockage géré Postgres. Ces exemples supposent que vous avez déjà créé une zone de préparation Snowflake distincte en plus de la zone de préparation Postgres créée ci-dessus.
Snowflake vers Postgres (écriture)¶
Pour déplacer des données d’une zone de préparation Snowflake existante vers le stockage géré par Postgres :
Où <source_stage> désigne une zone de préparation Snowflake préexistante contenant les fichiers que vous souhaitez déplacer, et <postgres_stage> est la zone de préparation Postgres créée à l’étape précédente.
Du côté Postgres, vous pouvez alors charger les données :
Où @STAGE est un espace réservé préconfiguré pour l’emplacement de la zone de préparation du côté de Postgres.
Postgres vers Snowflake (lecture)¶
Pour déplacer des données écrites par Postgres vers une zone de préparation Snowflake existante :
Où <destination_stage> désigne une zone de préparation Snowflake préexistante dans laquelle vous souhaitez copier les fichiers, et <postgres_stage> est la zone de préparation Postgres créée précédemment.
Contrôle d’accès¶
Le modèle standard de privilèges d’intégration de stockage Snowflake s’applique :
Propriété : Le rôle qui crée l’intégration doit posséder l’instance Postgres associée.
Utilisation : Pour utiliser l’intégration afin de créer une zone de préparation, un rôle doit disposer du privilège
USAGEsur l’objet d’intégration.**Privilèges de zone de préparation* : Les utilisateurs doivent disposer de privilèges standard (par exemple,
READ,WRITE) sur la zone de préparation elle-même pour effectuer des opérations de déplacement de données.
Par exemple, pour accorder à un autre rôle la possibilité de créer des zones de préparation à l’aide de l’intégration de stockage :