Спецификация Apache Beam не определяет выполнение объединения, и нет более быстрого способа записи внутренних объединений, кроме SDK. Таким образом, ответ на этот вопрос зависит от того, что выполняет объединение, то есть от какого участника. Я не знаю бегунов Flink или Spark, поэтому этот ответ будет конкретным для бегуна Dataflow.
Если вы еще этого не сделали, взгляните на это сообщение в блоге на эту тему . В сообщении блога описывается служба перемешивания потоков данных, которую можно включить вручную. Этот сервис является лучшей реализацией, чем текущее значение по умолчанию, и в целом приводит к гораздо более быстрому выполнению, но особенно для соединений.
Чтобы включить Dataflow Shuffle Service, передайте следующие значения: flags :
--experiments=shuffle_mode=service
--region=<allowed region>
Где разрешенные регионы для перемешивания: «us-central1», «europe-west1», «europe-west4», «asia-northeast1».