3
Назначение
Представление внешних данных как обычных таблиц
стандарт ISO/IEC 9075-9 (SQL/MED)
поддерживаются
SELECT, INSERT, UPDATE, DELETE, TRUNCATE, COPY
триггеры
обычное разграничение доступа (GRANT, REVOKE)
Способ миграции данных из других СУБД
Механизм для шардинга
вместе с секционированием: Postgres Pro Shardman
В стандарте ISO/IEC 9075-9 (SQL/MED) определяется, как базы данных
SQL должны работать с внешними источниками с учетом доступа как
на чтение, так и на запись.
Внешние данные представлены в PostgreSQL как таблицы, которые
называются внешними или сторонними. С ними можно работать при
помощи обычных команд DML: INSERT, UPDATE, DELETE, SELECT,
TRUNCATE, а также COPY. На внешние таблицы можно создавать
триггеры, а для разграничения прав используются команды GRANT
и REVOKE.
Основное отличие внешних таблиц от обычных в том, что данные не
хранятся в самой БД PostgreSQL, а загружаются из внешней системы
(отправляются во внешнюю систему) при выполнении запросов.
Обертки сторонних данных могут быть весьма полезны как при
одновременной работе с данными из разных источников, так и при
миграции данных в PostgreSQL из других СУБД.
Поддержка внешних данных активно развивается, поскольку (вместе
с секционированием) является одним из компонентов для реализации
шардинга: секции основной таблицы представляются внешними
таблицами, физически находящимися на отдельных серверах.
Данные из сторонних таблиц можно сохранять при логическом
резервировании (используя ключ --include-foreign-data утилиты
pg_dump), однако при восстановлении из такой копии нужно учитывать
доступность внешних серверов и их возможности по записи данных.