OLTP-подходы, MPP-распределение, планы запросов и ограничения проверки на учебной базе.
2 мин чтения·База знаний
Справочный материал. Контракты данных, архитектурные решения и ограничения применения. Источники приведены в материалах, где используются внешние основания.
PostgreSQL и Greenplum имеют близкую SQL-основу, но распределённая архитектура Greenplum меняет стоимость операций: физическое размещение таблицы по сегментам и межсегментная передача данных могут существенно влиять на выполнение запроса.
Правило: нельзя переносить выводы о производительности из небольшой PostgreSQL-таблицы или SQLite-прототипа на промышленный MPP-кластер без новых измерений.
Hash-distribution, random distribution, replicated distribution (доступность зависит от версии).
Skew - неравномерная нагрузка или объём данных по сегментам.
Локальные соединения и операции, требующие перемещения данных.
Партиционирование отдельно от физического распределения по сегментам.
План выполнения и зависимость от статистики.
Тип распределения нужно выбирать с учётом гранулярности и ожидаемых соединений. Например, распределение по почти постоянному признаку может создать выраженный skew; распределение по одному уникальному полю не всегда будет лучшим для всех аналитических соединений.
Financial EDWH Lab сейчас работает на SQLite, не на PostgreSQL или Greenplum. Это решение сделано для запуска тестов без отдельного сервера БД. Темы MPP, EXPLAIN и распределения в данном разделе - справочные; лаборатория не подтверждает практическую оптимизацию Greenplum.
При переходе к PostgreSQL отдельным этапом нужны миграция схемы, тесты денежных типов, интеграционные тесты и сравнение планов.
PostgreSQL and Greenplum share a related SQL foundation, but Greenplum's distributed architecture changes operation costs. Physical placement across segments and inter-segment data movement can have a major impact on query execution.
Rule: do not transfer performance conclusions from a small PostgreSQL table or SQLite prototype to a production MPP cluster without new measurements.
Hash, random, and replicated distribution (availability depends on version).
Skew: uneven data volume or workload across segments.
Local joins and operations that require data movement.
Partitioning as a separate choice from segment distribution.
Execution plans and their dependence on statistics.
Choose distribution with grain and expected joins in mind. Distribution by a nearly constant attribute can create severe skew; distributing by a unique field is not necessarily best for every analytical join.
Financial EDWH Lab currently runs on SQLite, not PostgreSQL or Greenplum. This keeps tests runnable without a separate database server. MPP, EXPLAIN, and distribution topics here are reference material; the lab does not demonstrate practical Greenplum optimization.
A PostgreSQL transition needs a separate schema migration, monetary-type tests, integration tests, and plan comparisons.