我需要使用JavaSDK创建一个apache光束管道,它将从谷歌云存储中读取数据。这些文件由上游进程推送,可能有无效文件。例如,文件头可能不是预期的格式。我想将所有这些无效文件移动到错误位置,我的管道应该使用TextIO只读取有效文件。
我试图通过正常的java文件操作来做到这一点,当试图使用flex模板在谷歌数据流上运行时,它给了我超时错误(轮询结果文件中的超时)
无论如何,我可以完成上述任务吗?
Flex Template启动器有一个嵌入的时间限制,可以启动12分钟的作业。理想情况下,您应该将程序集中在创建实际的作业管道图上。
您可以将此类验证添加为管道本身的一部分吗?例如,匹配来自FileIO. match().filepattern
的文件,并使用只会发出有效文件的DoFn
/PTransform
?
这可能会给出一些想法:https://beam.apache.org/documentation/patterns/file-processing/#accessing-filenames