Postgres – фичи, которых не хватает для КХД
Postgres как OLTP СУБД заточена под логику 1 приложение - 1 БД. Здесь речь про именно логическую базу данных. На инстансе или кластере postgres могут работать несколько логических БД под различные приложения. Когда нагрузка растет и ресурсов одного кластера не хватает, логические БД могут быть без большого труда перенесены на другой/отдельный кластер. Ситуации, когда несколько приложений делят между собой одни логическую БД редки, хотя и бывают. К примеру, это может быть основное приложение + админка.
В Корпоративном Хранилище по определению будет много пользователей и приложений. Это же единая версия данных для всех. Как раз то место, куда многие могут обратиться за единой и согласованной версией данных.
Поэтому а) будет большой и растущий параллелизм запросов, это мы частично обсудили, когда считали и планировали нагрузку и б) надо уметь большую конкурентную нагрузку грамотно распределять по пользователям.
В GreenPlum для этого есть ресурсные группы (или ресурсные очереди в старых версиях). В них как раз можно выделить нагрузку по типам и группам и нарезать ресурсы кластера на выполнение запросов. Вот эта группа пользователей – ETL, ей 30% ресурсов, вот эти – BI, им 50%, а вот эти аналитики, им 20%. Это во время рабочего дня, а ночью 80% кластера выделено для ETL, извините. В Greenplum v.7 можно дополнительно нарезать ПСП диска и сети.
Как добиться такого в Postgres (или ClickHouse), я, честно говоря, не знаю. Если знаете – подскажите в комментариях.
Post #49
207