Хранилища — это физические расположения 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-хранилище.