Ваш вопрос широк. Тем не менее, я постараюсь предоставить вам некоторые материалы. Трудно сравнить DirectRunner и DataflowRunner.
- DirectRunner запускает ваш конвейер на вашей текущей виртуальной машине и использует возможности этой единственной виртуальной машины. Это ваша виртуальная машина, вы должны настроить ее, исправить ее, позаботиться о том, чтобы освободить файл диска / раздела / журнала, (...)
- DataflowRunner запускает конвейер для управляемой платформы. Поток данных, в соответствии с его метриками и «предсказанием» (здесь нет ML!), Выбирает увеличение или уменьшение количества виртуальных машин для максимально быстрого выполнения вашего конвейера. Вы можете установить маленькую виртуальную машину (например, 1 vCPU), и Dataflow будет порождать их много, или большую виртуальную машину, и, возможно, этот поток данных будет порождать только 1, потому что этого достаточно для конвейера.
Советы профессионалов: пропускная способность виртуальной машины ограничена 2 Гбит / с на один виртуальный процессор до 8 виртуальных процессоров. Позаботьтесь о узких местах сети и разумно выберите размер виртуальной машины (обычно я рекомендую виртуальную машину с 4 или 8 виртуальными ЦП)
С одной стороны у вас есть только одна виртуальная машина для управления, с другой - вынужно только установить параметры и позволить Dataflow управлять и масштабировать ваш конвейер.
Я не знаю вашу перспективу роста, но вертикальная масштабируемость (добавление большего количества vCPU / памяти на вашей отдельной виртуальной машине) может достигать предела в день. С потоком данных он эластичен, и вы не беспокоитесь об этом;в дополнение к управлению сервером и исправлениям.
Наконец, ответьте на свой вопрос "быстрее или медленнее", слишком сложно ответить ... Поток данных, если он работает на нескольких ВМ, добавит задержку в сети, внутреннее управление потоком данныхнакладные расходы, но могут масштабироваться для параллельного использования большего количества виртуальных ЦП по сравнению с текущей виртуальной машиной. Ваш конвейер может использовать этот параллелизм или нет? Это решить некоторые из ваших нынешних узких мест? Слишком сложно ответить на моей стороне.