Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Типовое обслуживание
Секционирование
Резервное копирование и восстановление
Масштабирование
Зеркалирование
Управление ресурсами
Безопасность
Мониторинг
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Потоковая передача
Восстановление после сбоев
Конфигурация
Индексы
Расширения
Справочник по SQL
Часто задаваемые вопросы
В этом документе описывается, как PXF получает доступ к данным в Amazon S3, и приводятся примеры использования.
Platform Extension Framework (PXF) использует Foreign Data Wrapper (FDW) для доступа к данным, хранящимся за пределами базы данных YMatrix. Подробное введение в PXF см. в документации PXF на китайском языке.
На хосте MXMaster войдите под пользователем mxadmin и отредактируйте файл конфигурации PXF для доступа к S3: s3-site.xml, расположенный по пути /usr/local/pxfconf/servers/s3server_online/s3-site.xml.
$ vim /usr/local/pxfconf/servers/s3server_online/s3-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property>
<name>fs.s3a.endpoint</name>
<value>http:xxx</value>
</property>
<property>
<name>fs.s3a.access.key</name>
<value>xxx</value>
</property>
<property>
<name>fs.s3a.secret.key</name>
<value>xxx</value>
</property>
<property>
<name>fs.s3a.fast.upload</name>
<value>true</value>
</property>
</configuration>
Описание параметров:
fs.s3a.endpoint: конечная точка сервиса объектного хранилища. Для локальных развертываний используйте http://<IP>:<port>. В облачных средах укажите доступное доменное имя.fs.s3a.access.key: ключ доступа, используемый для аутентификации в объектном хранилище.fs.s3a.secret.key: секретный ключ, используемый для аутентификации в объектном хранилище.Примечание!
Все шаги в этом разделе необходимо выполнять на хосте MXMaster под пользователемmxadmin.
Синхронизируйте конфигурационные файлы PXF на всех узлах кластера:
$ pxf cluster sync
Следующий вывод указывает на успешную синхронизацию:
Syncing PXF configuration files from master host to 2 segment hosts...
PXF configs synced successfully on 2 out of 2 hosts
Примечание!
Убедитесь, что конфигурационные файлы корректно синхронизированы в соответствующие каталоги на каждом узле.
Перезапустите службу PXF:
$ pxf cluster restart
Следующий вывод указывает на успешный перезапуск:
Restarting PXF on 2 segment hosts...
PXF restarted successfully on 2 out of 2 hosts
Перезапустите локальный экземпляр PXF:
$ pxf restart
Следующий вывод подтверждает успешный перезапуск экземпляра PXF:
Using CATALINA_BASE: /usr/local/pxf-matrixdb4/pxf-service
Using CATALINA_HOME: /usr/local/pxf-matrixdb4/pxf-service
Using CATALINA_TMPDIR: /usr/local/pxf-matrixdb4/pxf-service/temp
Using JRE_HOME: /usr/local/jdk1805/jre
Using CLASSPATH: /usr/local/pxf-matrixdb4/pxf-service/bin/bootstrap.jar:/usr/local/pxf-matrixdb4/pxf-service/bin/tomcat-juli.jar
Using CATALINA_PID: /usr/local/pxf-matrixdb4/run/catalina.pid
Tomcat stopped.
Using CATALINA_BASE: /usr/local/pxf-matrixdb4/pxf-service
Using CATALINA_HOME: /usr/local/pxf-matrixdb4/pxf-service
Using CATALINA_TMPDIR: /usr/local/pxf-matrixdb4/pxf-service/temp
Using JRE_HOME: /usr/local/jdk1805/jre
Using CLASSPATH: /usr/local/pxf-matrixdb4/pxf-service/bin/bootstrap.jar:/usr/local/pxf-matrixdb4/pxf-service/bin/tomcat-juli.jar
Using CATALINA_PID: /usr/local/pxf-matrixdb4/run/catalina.pid
Tomcat started.
Checking if tomcat is up and running...
Server: PXF Server
Checking if PXF webapp is up and running...
PXF webapp is listening on port 5888
На хосте MXMaster подключитесь к базе данных с помощью клиента psql под пользователем mxadmin:
$ psql <databasename>
Создайте расширение pxf_fdw.
Примечание!
Для создания расширений в YMatrix требуются права суперпользователя.
=# CREATE EXTENSION pxf_fdw;
Ниже представлены два способа создания сервера S3. Выберите один из них.
s3server_online) должно соответствовать имени ранее созданного каталога (s3server_online).=# CREATE SERVER s3server_online FOREIGN DATA WRAPPER s3_pxf_fdw OPTIONS(config 's3server_online');
Примечание!
Выполнение командыGRANTтребует прав суперпользователя.
=# GRANT USAGE ON FOREIGN DATA WRAPPER s3_pxf_fdw TO <role_name>;
Имя сервера (s3server_online) должно совпадать с именем ранее созданного каталога (s3server_online).
=# CREATE SERVER s3server_online FOREIGN DATA WRAPPER s3_pxf_fdw OPTIONS(config 's3server_online');
Создайте отображение пользователя:
=# CREATE USER MAPPING FOR mxadmin SERVER s3server_online;
Создайте внешнюю таблицу:
=# CREATE FOREIGN TABLE public.test (
c1 jsonb,
c2 text,
c3 text,
c4 text,
c5 text,
c6 jsonb,
c7 jsonb
)
SERVER s3server_online
OPTIONS (
format 'csv',
resource '/<bucket_name>/<prefix>/<filename.csv>',
JSONIFY_ARRAY 'TRUE',
JSONIFY_MAP 'TRUE',
JSONIFY_RECORD 'TRUE'
);
Описание параметров:
format: формат файла, хранящегося в объектном хранилище. Поддерживаемые форматы включают csv, text, json, parquet, avro и т.д.resource: абсолютный путь к файлу в S3.