Глава 15. Хранилища
Хранилища — это физические расположения Parquet-файлов и общих каталогов. Postgres Pro AXE поддерживает следующие типы хранилищ:
Локальные хранилища: массивы дисков, поддерживающих протокол NVME (энергонезависимая память Express), на серверах с установленным Postgres Pro AXE.
Сетевые хранилища: сетевые файловые системы (Network File Systems, NFS).
S3-хранилища.
Чтобы определиться с типом хранилища, используйте информацию из таблицы ниже.
Локальное хранилище | Сетевое хранилище | S3-хранилище | |
|---|---|---|---|
Пропускная способность | Высокая Определяется количеством NVME-дисков в массиве | Средняя Ограничена возможностями сетевого интерфейса сервера, сетевой нагрузкой и скоростью сетевого хранилища | Средняя Ограничена возможностями сетевого интерфейса сервера, сетевой нагрузкой и скоростью S3-хранилища |
Масштабируемость данных | Средняя Определяется количеством NVME-дисков и их объёмом | Высокая | Высокая |
Распределение данных по серверам | Не поддерживается | Поддерживается в рамках сети организации | Глобальный |
Поставщик отказоустойчивости | Администратор сервера Postgres Pro AXE | Администратор NFS | Поставщик услуг S3-хранилища |
Стоимость за терабайт и за одно обращение к хранилищу | Низкая | Средняя | Зависит от поставщика услуг S3-хранилища |
Метаданные хранилищ хранятся в таблице метаданных pga_storage.
Для хранения OLAP-данных можно использовать любую структуру каталогов, например:
В локальном или сетевом хранилище:
корневой_путь/имя_бд/имя_схемы/имя_таблицы
В S3-хранилище:
s3://корзина/имя_бд/имя_схемы/имя_таблицы
pgpro_axe позволяет автоматически экспортировать OLAP-данные в несколько Parquet-файлов и добавлять уникальный номер к имени каждого файла. OLAP-данные проще хранить в виде нескольких Parquet-файлов одинакового размера.
Для организации OLAP-данных по ключам секционирования в иерархии каталогов можно также использовать hive-секционирование:
table_name
├── year=2024
│ ├── month=1
│ │ ├── file1.parquet
│ │ └── file2.parquet
│ └── month=2
│ └── file3.parquet
└── year=2025
├── month=11
│ ├── file4.parquet
│ └── file5.parquet
└── month=12
└── file6.parquetЭтот тип иерархии может быть полезен для больших исторических таблиц, когда для выполнения аналитических запросов требуются данные, связанные с определённым подмножеством ключей секционирования.
Перенос фильтров на уровень пути также поддерживается. Благодаря этому в процессе чтения можно пропустить пути, которые не содержат необходимых OLAP-данных.
Для работы с S3-хранилищами используются сторонние серверы Postgres Pro. Благодаря этому параметры подключения и учётные данные пользователей надёжно хранятся в Postgres Pro без их указания в функциях. В настоящее время можно создать только одно S3-хранилище.