Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Типовое обслуживание
Секционирование
Резервное копирование и восстановление
Масштабирование
Мониторинг
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Конфигурация
Справочник по 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.