Внешние таблицы
Yandex MPP Analytics for PostgreSQL позволяет работать с данными в источниках, внешних по отношению к кластеру Yandex MPP Analytics for PostgreSQL. Для этого используются внешние таблицы — специальные объекты в базе данных, которые ссылаются на таблицы, бакеты или файлы внешних источников. Для доступа к данным во внешних СУБД используется протокол Greenplum® Platform Extension Framework (PXF), а к файлам на внешних файловых серверах — утилита Greenplum® Parallel File Server (gpfdist). Для СУБД Greenplum® и Apache Cloudberry™ используются разные утилиты gpfdist. Подробнее об утилитах в документации Greenplum®
С помощью внешних таблиц вы можете:
- выполнять запросы к внешним источникам данных;
- загружать наборы данных из внешних источников в БД в кластере Yandex MPP Analytics for PostgreSQL;
- объединять локальные и внешние таблицы в запросах;
- записывать данные во внешние таблицы или файлы.
Примечание
Для обеспечения безопасности в Yandex MPP Analytics for PostgreSQL недоступно создание внешних веб-таблиц, использующих shell-скрипты.
Внешние источники данных для работы по протоколу PXF
В сервисе Yandex MPP Analytics for PostgreSQL используются внешние источники данных для создания внешних таблиц. Каждый источник является аналогом конфигурации на веб-сервере, которая используется для доступа к данным во внешних СУБД. Поэтому источники используются только для работы с PXF.
Источники позволяют:
- Указать в конфигурации параметры, которые нельзя передать в SQL-запросе на создание внешней таблицы, работающей по протоколу PXF.
- Не указывать явно пароль пользователя в SQL-запросе на создание внешней таблицы.
- Упростить SQL-запрос на создание таблицы, так как с выделенным и настроенным источником не нужно перечислять параметры конфигурации в запросе.
- Упростить изменение конфигурации — параметры достаточно переопределить один раз на источнике, не изменяя их отдельно для каждой таблицы.
Работа с файлами на внешних источниках с помощью утилиты gpfdist
Утилита gpfdist — это файловый сервер, который предоставляет хостам кластера Yandex MPP Analytics for PostgreSQL параллельный доступ к файлам на удаленном сервере по протоколу HTTP.
Утилита установлена на всех хостах-сегментах кластера Yandex MPP Analytics for PostgreSQL, но для работы с внешними файлами ее нужно установить и запустить на сервере, который хранит эти файлы.
Для работы с файлами через утилиту gpfdist выполните следующие шаги:
- На удаленном сервере запустите утилиту
gpfdist, которая открывает доступ к указанной директории на указанном порту. - В кластере Yandex MPP Analytics for PostgreSQL создайте внешнюю таблицу. В параметре
LOCATIONукажите протоколgpfdist, адрес сервера, порт и путь к файлу или маску для группы файлов.
При обращении к такой таблице хосты-сегменты кластера параллельно подключаются к gpfdist, и каждый сегмент читает или записывает свою часть данных. Данные передаются между сегментами и удаленным сервером напрямую, минуя хост-мастер. При загрузке данные распределяются между сегментами равномерно или согласно заданному ключу дистрибуции. Это повышает производительность при работе с большими объемами внешних данных.
Утилита gpfdist позволяет:
- Использовать текстовые файлы с разделителями (форматы
TEXT,CSVиCUSTOM), а также сжатые файлы gzip и bzip2. - Использовать внешние таблицы для чтения данных из файлов и записи данных в файлы. Для этого создайте таблицу с опцией
READABLEилиWRITABLE. - Указывать в одной внешней таблице несколько файлов и несколько серверов с запущенной утилитой
gpfdist. - Распределять нагрузку на сеть с помощью запуска на одном сервере нескольких экземпляров утилиты с разными директориями и портами.
Сервер с запущенной утилитой gpfdist должен быть доступен из сети, к которой подключен кластер Yandex MPP Analytics for PostgreSQL, по указанному порту. Для этого настройте группы безопасности. Если сервер с gpfdist находится за пределами Yandex Cloud и доступен через интернет, настройте NAT-шлюз в сети кластера.
Внешние источники данных для gpfdist не используются: все параметры подключения указываются в SQL-запросе на создание внешней таблицы.
Примеры использования
- Создание внешней таблицы на базе таблицы из бакета Yandex Object Storage с помощью конфигурационного файла
- Получение данных из внешних источников с помощью именованных запросов
Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками Broadcom Inc в США и/или других странах.
Apache® и Apache Cloudberry™ являются зарегистрированными товарными знаками или товарными знаками Apache Software Foundation в США и/или других странах.