首页 > 解决方案 > 谷歌数据流运行极其缓慢缓慢

问题描述

我编写了简单的程序来读取 CSV(电子邮件)并在数据存储中查找关联的 id。这也会搜索 AES 加密电子邮件。

使用 eclipse运行良好,directrunner但要在我使用的数据流中获取流程图dataflowruuner。这启用了执行图,但即使有 3 条记录,它的运行正弦曲线也超过 30 分钟。为什么?

使用 -DataflowPipelineOptions options = PipelineOptionsFactory.as(DataflowPipelineOptions.class);

代替

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

标签: google-cloud-dataflowpipelineapache-beamdataflow

解决方案


这取决于您的管道的具体情况。一般来说,与直接运行器相比,Dataflow 中的管道启动时间会更慢。例如,它需要构建和上传管道,然后启动机器,然后需要获取管道定义并开始执行它。在直接运行器中执行管道时,您通常只需在本地编译和运行代码,类似于任何其他程序。因此,对于难以并行化的小型数据集的琐碎情况,使用 Dataflow 的性能优势并不明显。

但是,如果管道在 Dataflow 中从未停止,那么您需要查看是否有任何错误阻止它完成(例如,可能存在一些身份验证错误、限制、资源不足或其他原因)。您可以从查看 Stackdriver 开始:https ://cloud.google.com/dataflow/docs/guides/using-stackdriver-monitoring

一些文档链接,希望对您有所帮助:


推荐阅读