PXF 101: Введение в Platform Extension Framework от Arenadata
PXF (Platform Extension Framework) — это компонент платформы Arenadata DB (ADB), предназначенный для расширения возможностей SQL-запросов за пределы базовой СУБД. Он позволяет напрямую обращаться к внешним источникам данных (как структурированным, так и неструктурированным) из ADB, используя знакомый SQL-синтаксис.
Основные возможности
- Доступ к HDFS, Hive, Amazon S3, MinIO
- Поддержка JDBC-источников (Oracle, PostgreSQL, MySQL и др.)
- Возможность подключения REST API
- Интеграция с текстовыми, Avro, Parquet, JSON и другими форматами
Где используется
PXF особенно полезен в следующих случаях:
- Построение виртуальных витрин данных без физического копирования
- Интеграция с Data Lake (например, Hadoop)
- Анализ логов и потоковых файлов на S3/MinIO
- Интеграция с внешними СУБД
Архитектура
- PXF развёртывается на каждом сегментном узле ADB
- Использует Apache Tomcat в качестве контейнера сервиса
- Взаимодействует с ADB через внутренние механизмы сегментации
- Использует Java-based плагины для каждого типа источника данных
Установка и настройка
- Убедитесь, что PXF установлен (обычно входит в состав установки ADB через ADCM)
-
Отредактируйте конфигурацию:
- Файл: /etc/pxf/conf/pxf-site.xml
-
Примеры параметров:
- pxf.service.user=gpadmin
- pxf.service.address=0.0.0.0
- pxf.fs.defaultFS=hdfs://namenode:8020 (если используется Hadoop)
- Запустите/перезапустите PXF:
systemctl restart pxf
- Проверьте статус:
systemctl status pxf
Пример использования: подключение к S3
CREATE EXTERNAL TABLE s3_logs (
id int,
ts timestamp,
message text
)
LOCATION ('pxf://my-logs-bucket/logs.csv?PROFILE=s3:text')
FORMAT 'CSV';
SELECT * FROM s3_logs;
Пример использования: доступ к Hive
CREATE EXTERNAL TABLE hive_orders (
order_id bigint,
amount numeric
)
LOCATION ('pxf://hive.orders?PROFILE=hive')
FORMAT 'CUSTOM' (formatter='pxfwritable');
SELECT * FROM hive_orders WHERE amount > 1000;
Лучшие практики
- Размещайте PXF как можно ближе к данным (на той же сети или в том же датацентре)
- Не злоупотребляйте JOIN’ами между внешними таблицами
- Используйте partition pruning (если возможно)
- Ограничивайте выборки фильтрами WHERE, чтобы снизить нагрузку на внешнюю систему
Мониторинг и отладка
- Проверка логов: /var/log/pxf/
- Использование встроенного REST API PXF для диагностики
- Настройка логирования в log4j.properties
Заключение
PXF — мощный механизм, позволяющий Arenadata DB эффективно работать с широким спектром источников данных без физического импорта. Это делает архитектуру более гибкой и позволяет объединять lake и warehouse-подходы. При правильной настройке PXF становится неотъемлемым инструментом современного аналитического ландшафта.



