---
pkg: "@nocobase/plugin-collection-fdw"
---

# Подключение внешних таблиц данных (FDW)

## Введение

Этот плагин позволяет подключаться к удалённым таблицам данных, используя технологию Foreign Data Wrapper (FDW) базы данных. В настоящее время поддерживаются базы данных MySQL и PostgreSQL.

:::info{title="Подключение источников данных vs. Подключение внешних таблиц данных"}
- **Подключение источников данных** означает установление соединения с определённой базой данных или API-сервисом, что позволяет полноценно использовать все возможности базы данных или предоставляемые API услуги.
- **Подключение внешних таблиц данных** подразумевает получение данных из внешнего источника и их отображение для локального использования. В контексте баз данных это называется FDW (Foreign Data Wrapper) — технология, позволяющая работать с удалёнными таблицами как с локальными. При этом подключение осуществляется для каждой таблицы отдельно. Поскольку это удалённый доступ, при использовании могут возникать различные ограничения и особенности.

Эти два подхода можно использовать в комбинации: первый — для установления соединения с источником данных, а второй — для доступа к данным из разных источников. Например, вы можете подключить источник данных PostgreSQL, в котором одна из таблиц является внешней таблицей данных, созданной с помощью FDW.
:::

### MySQL

MySQL использует движок `federated`, который необходимо активировать. Он поддерживает подключение к удалённым базам данных MySQL и совместимым по протоколу, таким как MariaDB. Подробную информацию вы найдёте в документации [Federated Storage Engine](https://dev.mysql.com/doc/refman/8.0/en/federated-storage-engine.html).

### PostgreSQL

В PostgreSQL различные типы расширений `fdw` позволяют работать с разными типами удалённых данных. В настоящее время поддерживаются следующие расширения:

- [postgres_fdw](https://www.postgresql.org/docs/current/postgres-fdw.html): для подключения к удалённой базе данных PostgreSQL из PostgreSQL.
- [mysql_fdw (в разработке)](https://github.com/EnterpriseDB/mysql_fdw): для подключения к удалённой базе данных MySQL из PostgreSQL.
- Для других типов расширений FDW вы можете обратиться к [PostgreSQL Foreign Data Wrappers](https://wiki.postgresql.org/wiki/Foreign_data_wrappers). Для интеграции с NocoBase потребуется реализовать соответствующие адаптационные интерфейсы в коде.

## Установка

Предварительные условия

- Если основная база данных NocoBase — MySQL, вам необходимо активировать движок `federated`. См. [Как включить движок federated в MySQL](./enable-federated.md).

Затем установите и активируйте плагин через менеджер плагинов.

![Установка и активация плагина](https://static-docs.nocobase.com/f84276c5712851fb3ff33af3f1ff0f59.png)

## Руководство пользователя

В разделе «Управление коллекциями > Создать коллекцию» в выпадающем списке выберите «Подключить внешние данные».

![Подключить внешние данные](https://static-docs.nocobase.com/029d946a6d067d1c35a39755219d623c.png)

В выпадающем списке «Сервис базы данных» выберите существующий сервис базы данных или «Создать сервис базы данных».

![Сервис базы данных](https://static-docs.nocobase.com/766271708a911950a5599d60d6be4a4d.png)

Создание сервиса базы данных

![Создание сервиса базы данных](https://static-docs.nocobase.com/1e357216e04cc4f200bd6212827281c8.png)

После выбора сервиса базы данных, в выпадающем списке «Удалённая таблица» выберите таблицу данных, которую вы хотите подключить.

![Выбор таблицы данных для подключения](https://static-docs.nocobase.com/e91fd6152b52b4fc01b3808053cc8dc4.png)

Настройка информации о полях

![Настройка информации о полях](https://static-docs.nocobase.com/e618fecc5fe327f6a495e61405e5f040.png)

Если структура удалённой таблицы изменилась, вы также можете «Синхронизировать из удалённой таблицы».

![Синхронизация из удалённой таблицы](https://static-docs.nocobase.com/3751a9a39f933889fb3fcc4d85a6f4ad.png)

Синхронизация удалённой таблицы

![Синхронизация удалённой таблицы](https://static-docs.nocobase.com/13f18200e31ea223fdd8dadaff1e9d28.png)

Наконец, отображение в интерфейсе.

![Отображение в интерфейсе](https://static-docs.nocobase.com/368fca27a99277d9360ca81350949357.png)