Ну, я к тому, что уже сейчас можно разделить запрос на партиции и джойнить так, если union по очереди будет выполнятся, то и памяти жрать будет меньше
ну да, можно так писать по дням и прокидывать UNION ALL между ними, вынести логику в приложение. НО:
1. я не уверен, что они выполняются по очереди в КХ. Нигде не прописано.
Т.е. "это не точно".
2. это мягко говоря - изврат. Например: 30 дней-партиций, или 30 дней по 10 партиций каждая - запросы будут оооочень длинными. Может быть логично делать по 10 партиций за раз. Может быть логично делать 4 потока на билд, 4 на проб фазу Хешджойна. А может по 8. А может по 1.
3. Пользователь не знает сколько данных в партициях и какой там skew/min/max.
4. Сложно все это на приложении сделать и порождает вопросы ("почему шеф сволочь заставляет нас писать под КХ" и придется обновлять резюме ).
Проще взять другую базу... ну или варп опять таки =)