INT 21h

Hi, I am Vladimir Smagin, SysAdmin, DevOps and barely good guy. Telegram Email / GIT / Микроблог / Thingiverse / GPG

Удаленные таблицы через Foreign Data Wrapper

№ 10366 В разделе "Администрирование" от October 11th, 2019,

Никогда этим не занимался и вот опять.

Нужно это чтобы отправлять запросы к внешним таблицам будто бы они размещены локально. Называется это FOREIGN TABLE и работает оно через Foreign Data Wrapper. Как внешние источники можно подключать не только PostgreSQL, но и другие СУБД. Мне нужен PostrgeSQL

На источнике данных создаю пользователя с правом чтения забираемой схемы:

CREATE USER vlad_remote LOGIN PASSWORD 'GesAim7bla' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT ro_group TO vlad_remote;

После этого на источнике данных нужно добавить в pg_hba запись, разрешающую подключение с целевого сервера. Больше никаких правок там делать не требуется.

Теперь на целевом сервере нужно подгрузить fdw расширение: CREATE EXTENSION postgres_fdw;

Далее создать SERVER, указывающий на источник данных:

CREATE SERVER home_db FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'blindage.org', dbname 'zabbix');

Маппинг нужен чтобы текущий пользователь мог авторизоваться на источнике данных:

CREATE USER MAPPING FOR CURRENT_USER SERVER home_db OPTIONS (user 'vlad_remote', password 'GesAim7bla');

После этого можно либо создавать удаленные таблицы через CREATE FOREIGN TABLE, либо испортировать всю схему или часть таблиц через IMPORT FOREIGN SCHEMA.

Всю базу данных светить не нужно, если нужна только одна таблица items. Делаем новую БД и импорт только одной таблицы:

CREATE SCHEMA zabbix;
IMPORT FOREIGN SCHEMA public limit to (items) FROM SERVER home_db INTO zabbix;

Ну и проверяем:

SELECT * FROM zabbix.items LIMIT 1;

Все.

Нет комментариев »

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Микроблог перейти

# 2019-10-16 16:22:41

#docker hub опять разъебало, самое время снова задуматься поднять локальный кеш образов docs.docker.com/registry/recip а поскольку принудительный pull образов еще никто не отменял можно создать целое локальное зеркало образов чтобы зависеть от хаба как можно меньше. #devops #linux

# 2019-10-16 16:07:39

Уже попользовался частью этих ништяков systemd для ограничения памяти и процессорного времени для софтины habr.com/ru/post/270165/ когда-нибудь я про это вам расскажу #devops #linux #systemd

# 2019-10-16 15:20:49

Невероятно крутая штука для бэкапа и восстановления #postgres с хранением в S3 совместимом хранилище github.com/wal-g/wal-g #devops


© Vladimir Smagin, 2005-2019. Копирование материалов без разрешения запрещено. GPG DA4CD0F5E222EA727D6A40C413BCE12E5618F071 *
Яндекс.Метрика

Fortune cookie: Q: What goes: Sis! Boom! Baaaaah! A: Exploding sheep.