К сожалению, это невозможно.DataStreamUtils.reinterpretAsKeyedStream()
требует, чтобы данные были разделены идентично, как если бы вы назвали keyBy()
.
Причиной этого ограничения являются группы ключей и то, как ключи сопоставляются с группами ключей.Группа ключей - это единица Флинка того, как распределяется состояние ключа.Количество групп ключей определяет максимальный параллелизм оператора и настраивается с помощью setMaxParallelism()
.Ключи назначаются группам ключей с внутренней хэш-функцией.Изменяя разделение ключей, ключи для одной и той же группы ключей будут распределены по нескольким машинам, которые не будут работать.
Чтобы настроить назначение ключей компьютерам, необходимо изменить назначение ключей.в ключевые группы.Однако нет общедоступного или доступного интерфейса для этого.Поэтому пользовательские распределения ключей не поддерживаются в Flink 1.6.