обрабатывают запросы, а на инициаторе мержатся результаты? Или они просто читают диск и льют туда всё прочитанное?
как мап-редус, типа
это если у вас запрос select sum() from table;
вам надо еще подумать, шарды делают группировку, но если ключ шардирования не совпадает, то инициатору надо финально группировать уже весь датасет, со всех шардов (по умолчанию инициатор делает группировку всегда)
а если что то посложнее, то это не так. многоуровневые запросы после 0 уровня работают на инициаторе, темп таблицы если есть копируются на все шарды. ещё есть всякие GLOBAL JOIN (если шардирование не совпадает)... и много вариантов.
Ну если вы захотите посчитать количество уников за день. То просто посчитать отдельно две цифры, а потом их сложить не прокатит, если шардирование не исключает возможность что одни и теже юзеры попадают на оазные сервера.
запрос, допустим, такой: SELECT some_name, count(distinct(uuid)) FROM qwe WHERE ev_time >= '2021-09-01 00:00:00' AND ev_time < '2021-10-01 00:00:00' AND domain = 'exmaple.com' GROUP BY some_name
не надо вам count(distinct(uuid)), откройте для себя приблизительные вычисления уже. это же надо все uuid передать на инициатор, без группировки, вы тупо в сеть упретесь
с этим проблем не особо, но state count(distinct(uuid)) будет ехать с шардов на сервер. и он будет дальше аггрегироваться там. если точность не важна можно использовать неточный uniq*
если точность важна и уникальных много - то метла не взлетит...
да никому не нужна такая точность, это бред в бигдате
ну точность может быть нужна, но масштабы там будут в миллионах максимум, поэтому они спокойно саггрегируются
собственно в вашем случае поэтому именно важно шардить правильно, например по uuid и тогда вообще можно сложить результаты с шардов. optimize_distributed_group_by_sharding_key
да все так + еще есть более дубовый --distributed_group_by_no_merge arg If 1, Do not merge aggregation states from different servers for distributed queries (shards will process query up to the Complete stage, initiator just proxies the data from the shards).
Обсуждают сегодня