Толстые ключи разруливаются только изменением топологии. Тут нужно честно самостоятельно втыкать предаггрегаты, фильтры и т.п. Но есть инструменты для обнаружения подобных ключей и даже для оперативной фильтрации.
За счет механизма Lease в каждый момент за каждый ключ отвечает (то есть может коммитить) ровно один владелец. И, как следствие, ровно один раз будет закоммичен результат обработки одного сообщения.
Данные на YTsaurus (в том числе таймеры) при этом хранятся обычно привязанными к соответствующему Key. Поэтому новый владелец просто их подхватывает. И может быть уверен, что во время его работы их никто не подменит.
Вотермарк - это в первую очередь свойство стрима (стрим - это конкретный поток сообщений из одного Computation в другой). Во флоу нет отслеживания вотермарков по отдельному ключу. Соответственно, вотермарк зависит от необработанных сообщений.
Границы партиций - обычно первая колонка ключа - это хэш. Поэтому равномерное распределение в целом работает относительно неплохо на практике.
Про смену числа партиций - самое простое, и что уже стабильно работает долгое время, следить за CPU usage отдельных джобов. Грубо говоря, если они в полку - то стоит увеличить число партиций. Но это не универсальное решение.
Толстые ключи разруливаются только изменением топологии. Тут нужно честно самостоятельно втыкать предаггрегаты, фильтры и т.п.
Но есть инструменты для обнаружения подобных ключей и даже для оперативной фильтрации.
За счет механизма Lease в каждый момент за каждый ключ отвечает (то есть может коммитить) ровно один владелец. И, как следствие, ровно один раз будет закоммичен результат обработки одного сообщения.
Данные на YTsaurus (в том числе таймеры) при этом хранятся обычно привязанными к соответствующему Key. Поэтому новый владелец просто их подхватывает. И может быть уверен, что во время его работы их никто не подменит.
Вотермарк - это в первую очередь свойство стрима (стрим - это конкретный поток сообщений из одного Computation в другой). Во флоу нет отслеживания вотермарков по отдельному ключу. Соответственно, вотермарк зависит от необработанных сообщений.
Границы партиций - обычно первая колонка ключа - это хэш. Поэтому равномерное распределение в целом работает относительно неплохо на практике.
Про смену числа партиций - самое простое, и что уже стабильно работает долгое время, следить за CPU usage отдельных джобов. Грубо говоря, если они в полку - то стоит увеличить число партиций. Но это не универсальное решение.