34.1. Архитектура #
Postgres Pro традиционно используется для транзакционных (OLTP) нагрузок и определяет архитектурные решения в отношении размещения данных и используемых алгоритмов обработки. OLTP-нагрузки имеют следующие характеристики:
Работают с небольшими объёмами данных
Выполняют операции чтения/записи над большинством столбцов
Требуют строгих гарантий ACID
Требуют высокой скорости отклика
Учитывая эти характеристики, оптимальным подходом является хранение и обработка данных в формате строк.
Аналитические (OLAP) нагрузки имеют значительные отличия:
Обрабатывают большие объёмы данных
Выполняют только операции чтения над небольшим подмножеством столбцов
Не требуют строгих гарантий ACID
Отдают больший приоритет пропускной способности, чем задержке
Учитывая существующие различия, специализированные системы управления OLAP-нагрузками имеют значительное преимущество, связанное с их архитектурой:
Сетевое или объектное хранилище для более эффективной масштабируемости и соотношения цена/производительность
Столбцовое размещение данных в хранилище и памяти для более эффективной работы с отдельными столбцами и более качественного сжатия
Векторное выполнение для порционной обработки данных
34.1.1. Экспорт и импорт данных #
Работа расширения pgpro_duckdb состоит из двух частей:
Экспорт данных и ETL-процессы
Импорт данных и выполнение аналитических запросов
Расширение pgpro_duckdb позволяет экспортировать данные и выстраивать ETL-процессы, используя в качестве источника таблицы Postgres Pro. Это расширение также можно использовать для обработки файлов из внешних систем. Промежуточные данные можно хранить во временных таблицах в столбцовом формате duckdb
. Все необходимые изменения выполняются с помощью SQL-запросов в рамках стандартного сеанса Postgres Pro.
34.1.2. Каталог файлов и автоматизация процессов #
Важными составляющими аналитической системы являются автоматизация ETL-процессов и поддержка каталога аналитических таблиц.
Текущая версия Postgres Pro Enterprise не поддерживает автоматическую настройку периодического выполнения ETL-процесса и реализацию каталога. Чтобы вручную настроить периодические задачи, используйте расширение pgpro_scheduler.