Google Dataflow работает очень медленно медленно - PullRequest
0 голосов
/ 26 ноября 2018

Я написал простую программу для чтения CSV (электронная почта) и поиска в хранилище данных для связанного идентификатора.При этом также выполняется поиск электронной почты с шифрованием AES.

Он работал нормально с directrunner с использованием eclipse, но для получения схемы потока данных, которую я использовал dataflowruuner.Это включает график выполнения, но даже для 3-х записей его синус больше 30 минут.Почему?

с использованием - DataflowPipelineOptions options = PipelineOptionsFactory.as(DataflowPipelineOptions.class);

вместо

    PipelineOptions options = PipelineOptionsFactory.fromArgs(option).withValidation().create();

1 Ответ

0 голосов
/ 05 декабря 2018

Зависит от специфики вашего конвейера.В общем, время запуска конвейера в потоке данных будет медленнее, чем в режиме прямого запуска.Например, он должен построить и загрузить конвейер, а затем раскрутить машины, которые затем должны получить определение конвейера и начать его выполнение.Выполняя конвейер в непосредственном запуске, вы обычно просто компилируете и запускаете код локально, похожий на любую другую программу.Таким образом, для тривиальных случаев с небольшими наборами данных, которые трудно распараллелить, преимущества производительности при использовании Dataflow не очевидны.

Однако, если конвейер никогда не останавливается в Dataflow, вам нужно посмотреть, есть ли какие-либо ошибки, которыепрепятствуют его завершению (например, могут быть какие-то ошибки аутентификации, регулирование, нехватка ресурсов или что-то еще).Вы можете начать с просмотра Stackdriver: https://cloud.google.com/dataflow/docs/guides/using-stackdriver-monitoring

Некоторые ссылки на документацию, надеюсь, это поможет:

...