Подключение к внешнему файловому серверу
Greenplum® Parallel File Servergpfdist) — утилита для чтения и записи данных из файлов, расположенных на удаленных серверах. Она установлена на всех хостах-сегментах кластера Greenplum® и обеспечивает параллельную загрузку данных, распределяя их между сегментами равномерно или согласно заданному ключу дистрибуции. Это повышает производительность при работе с большими объемами внешних данных.
Утилита gpfdist может работать с любыми текстовыми файлами, которые содержат разделители, а также со сжатыми файлами gzip и bzip2.
Для чтения или записи файлов на внешнем сервере:
- Установите и запустите
gpfdistв составе пакета Greenplum® Loader или Greenplum® Database на удаленном сервере, где находятся нужные файлы. - Создайте внешнюю таблицу, которая будет ссылаться на эти файлы, в базе данных Greenplum®.
Запуск gpfdist
Примечание
Скачивание и использование продуктов с сайта VMware не входит в условия использования Yandex MPP Analytics for PostgreSQL
-
Скачайте и установите пакет Greenplum® Loader с сайта VMware
или пакет Greenplum® Database из бакета Yandex Object Storage по инструкции. -
Запустите утилиту
gpfdist:gpfdist -d <директория_с_файлами_данных> -p <порт_подключения> -l <путь_к_файлу_логов>Где:
<директория_с_файлами_данных>— локальный путь к директории, в которой хранятся файлы для чтения или записи данных через внешнюю таблицу.<порт_подключения>— порт, через который будет работать утилита. По умолчанию —8080.<путь_к_файлу_логов>— (опционально) путь к файлу, в которыйgpfdistбудет записывать логи своей работы.
Чтобы распределить нагрузку на сеть, вы можете запустить несколько экземпляров
gpfdistна одном сервере, указав разные директории и порты для подключения, например:gpfdist -d /var/load_files1 -p 8081 -l /home/gpadmin/log1 & \ gpfdist -d /var/load_files2 -p 8082 -l /home/gpadmin/log2 & -
Проверьте, что файлы в указанной директории доступны на указанном порту из Yandex Cloud. Для этого выполните команду с ВМ в Yandex Cloud:
wget http://hostname:port/filename
Создание внешней таблицы с использованием утилиты gpfdist
Синтаксис SQL-запроса для создания внешней таблицы:
CREATE [WRITABLE] EXTERNAL TABLE <имя_таблицы>
(<имя_столбца> <тип_данных> [, ...])
LOCATION('gpfdist://<путь_к_файлу_на_удаленном_сервере>' [, ...])
FORMAT '[TEXT|CSV|CUSTOM]';
Где:
<имя_таблицы>— имя внешней таблицы, которая будет создана в базе данных Greenplum®.<имя_столбца>— имя столбца таблицы.<тип_данных>— тип данных столбца таблицы.<путь_к_файлу_на_удаленном_сервере>— адрес сервера, на котором запущенgpfdist, порт для подключения и путь к файлу. Вы можете указать конкретный файл или задать маску с помощью символа звездочки (*).
Опция WRITABLE позволяет записывать данные во внешний объект. Чтобы считать данные из внешнего объекта, создайте внешнюю таблицу с опцией READABLE.
Примеры создания внешних таблиц
-
Создание внешней таблицы с данными из файла
file.csvна сервереhostname:CREATE EXTERNAL TABLE tableName (id int) LOCATION('gpfdist://hostname:8080/file.csv') FORMAT 'CSV' (DELIMITER ','); -
Создание внешней таблицы, объединяющей данные из всех файлов формата
txt, где|— символ разделителя, а пробел — значениеNULL, на серверахhostname1иhostname2:CREATE EXTERNAL TABLE tableName (...) LOCATION('gpfdist://hostname1:8081/*.txt', 'gpfdist://hostname2:8081/*.txt') FORMAT 'TEXT' (DELIMITER '|' NULL ' ');
Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками Broadcom Inc в США и/или других странах.