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.