我的数据流管道功能如下:
Read from Pubsub
Transform data into rows
Write the rows to bigquery
有时会传递无法插入的数据。没关系,我知道失败的原因。但是dataflow不断尝试一遍又一遍地插入这些数据。我想限制重试的次数,因为它会使worker日志膨胀,包含不相关的信息。因此,当相同的错误重复出现时,很难排查问题所在。
在本地运行管道时,我得到:
no evaluator registered for Read(PubsubSource)
我希望能够在本地测试管道。但是数据流似乎不支持PubSub的此选项。
为了清除错误,我别无选择,只能取消管道并在Google Cloud上运行新作业。这需要时间
数据流UI
职位ID:2017-02-08_09_18_15-3168619427405502955
要使用无界数据集在本地运行管道,请根据@Pablo的建议使用InProcessPipelineRunner
。
dataflowOptions.setRunner(InProcessPipelineRunner.class);
在本地运行该程序使我能够处理异常错误并快速优化我的工作流程。