Documentation PostgreSQL 9.1.24 > Langage SQL > Définition des données > Données distantes | |
Partitionnement | Autres objets de la base de données |
PostgreSQL™ implémente des portions de la norme SQL/MED, vous permettant d'accéder à des données qui résident en dehors de PostgreSQL en utilisant des requêtes SQL standards. On utilise le terme de données distantes pour de telles données. (Notez que cet usage ne doit pas être confondu avec les clés étrangères qui sont un type de contrainte à l'intérieur d'une base de données.)
Les données distantes sont accédées grâce à un wrapper de données distantes. Ce dernier est une bibliothèque qui peut communiquer avec une source de données externe, cachant les détails de la connexion vers la source de données et de la récupération des données à partir de cette source. Il existe un wrapper de données distantes disponible en tant que module contrib qui peut lire des fichiers de données à plat résidant sur le serveur. D'autres types de wrappers de données distantes peuvent faire partie de produits tiers. Si aucun des wrappers de données distantes ne vous convient, vous pouvez écrire le votre. Voir Chapitre 50, Écrire un wrapper de données distantes.
Pour accéder aux données distantes, vous devez créer un objet de type serveur distant qui définit la façon de se connecter à une source de données externes particulière suivant un ensemble d'options utilisées par un wrapper de données distantes. Ensuite, vous aurez besoin de créer une ou plusieurs tables distantes, qui définissent la structure des données distantes. Une table distante peut être utilisée dans des requêtes comme tout autre table, mais une table distante n'est pas stockée sur le serveur PostgreSQL. À chaque utilisation, PostgreSQL™ demande au wrapper de données distantes de récupérer les données provenant de la source externe.
Accéder à des données distantes pourrait nécessiter une authentification auprès de la source de données externes. Cette information peut être passée par une correspondance d'utilisateur, qui peut fournir des options supplémentaires en se basant sur le rôle PostgreSQL™ actuel.
Actuellement, les tables distantes sont en lecture sule. Cette limitation sera peut-être corrigée dans une version future.