google 云数据流处理压缩文件的变化

Change in google cloud dataflow's processing of compressed files

最近 google 数据流从 google 云存储读取压缩文件的方式有什么变化吗?我正在从事一个项目,该项目从 GCS 读取压缩的 csv 日志文件并将这些文件用作数据流管道的源。直到最近,无论是否指定文件的压缩类型,它都可以完美地工作。

目前我的 DoFn 中的 processElement 方法只被调用一次(对于 csv header 行),尽管文件有很多行。如果我使用相同的未压缩源文件,那么一切都会按预期工作(为每一行调用 processElement 方法)。正如此处所建议的 将 Content-Encoding 设置为 gzip 确实有效,但我之前不必这样做。

我在使用 DirectPipelineRunner 或 DataflowPipelineRunner 时遇到了这个问题。我正在使用 cloud-data-flow SDK 的 1.5.0 版。

我们发现了一个问题(BEAM-167) reading from concatenated gzip files. It has been fixed in the Apache Beam Github repository by PR 114 and the Dataflow SDK Github repository by PR 180。它将成为下一个版本的一部分。

在此之前,解决方法是使用从 Github 构建的 SDK 或将整个文件压缩为一个部分。