Документация по PostgreSQL 9.1.1 | ||||
---|---|---|---|---|
Prev | Fast Backward | Chapter 5. Определение данных | Fast Forward | Next |
PostgreSQL реализует части спецификации SQL/MED, которые позволяют вам, используя обычные SQL запросы, получить доступ к данным, которые находятся за пределами PostgreSQL. Такие данные называются внешние данные. (Обратите внимание, чтобы вы не путали это название с внешними ключами, которые являются одним из видов ограничений целостности внутри СУБД.)
Доступ к внешним данным осуществляется при помощи обработчика внешних данных. Обработчик внешних данных — это некая библиотека, которая может устанавливать соединение с внешними источниками данных, скрывая подробности подключения к источнику данных и извлечения данных из него. В модуле contrib, есть обработчик внешних данных, который может читать обычные файлы с данными, расположенными на сервере. Другие виды внешних обработчиков данных можно найти как отдельные продукты. Если не существует походящего для вас обработчика внешних данных, вы можете написать его сами; см. Chapter 50.
Чтобы получить доступ к внешним данным, вам необходимо создать объект внешний сервер, который определит как подключаться к конкретному источнику данных, в соответствии со списком опций, используемых конкретным обработчиком внешних данных. Затем, вам понадобится создать одну или более внешних таблиц, которые определят структуру удалённых данных. Внешняя таблица может быть использована в запросах как самая обычная таблица, но внешняя таблица не хранится сервером PostgreSQL. Таким образом, когда она используется, PostgreSQL запрашивает обработчик внешних данных, чтобы получить данные из внешнего источника.
Доступ к удалённым данным может требовать авторизации на внешнем источнике данных. Эта информация может быть предоставлен с помощью механизма user mapping, который может предоставлять дополнительные опции, основанные на текущей роли PostgreSQL.
В настоящий момент, внешние таблицы доступны только для чтения. Данное ограничение может быть исправлено в будущих версиях.