我编写了一个简单的程序来读取CSV(电子邮件)并在数据存储区中查找相关ID。这还将搜索AES加密电子邮件。
使用eclipse,它从directrunner
正常运行,但是为了获得数据流中的流程图,我使用了dataflowruuner
。这将启用执行图,但即使对于3条记录,其运行正弦也要超过30分钟。为什么?
使用-DataflowPipelineOptions options = PipelineOptionsFactory.as(DataflowPipelineOptions.class);
代替
PipelineOptions options = PipelineOptionsFactory.fromArgs(option).withValidation().create();
答案 0 :(得分:0)
这取决于您的管道的细节。通常,与直接运行程序相比,在Dataflow中管道启动时间会更慢。例如。它需要构建和上载管道,然后启动机器,然后需要获取管道定义并开始执行它。在直接运行程序中执行管道时,通常只需像在其他程序中一样在本地编译和运行代码即可。因此,对于数据量较小的琐碎情况,很难并行化使用Dataflow的性能好处。
但是,如果管道从不停止在Dataflow中,那么您需要查看是否存在阻止其结束的错误(例如,可能存在一些身份验证错误,节流,资源不足等)。您可以从查看Stackdriver开始:https://cloud.google.com/dataflow/docs/guides/using-stackdriver-monitoring
一些文档链接,希望对您有所帮助: