建议使用Google Data Flow管道读取/解析/写入文件的方法是什么?

时间:2019-04-03 12:25:51

标签: google-cloud-platform google-cloud-dataflow

需要设置Google Dataflow管道来处理文件(读取,转换和写入),然后将输出写入另一个文件。简而言之,该过程是“读取”>“分析”>“转换”>“写入”。是否可以并行执行此操作?如何根据文件对记录进行分组?例如:来自输入文件A-IN.TXT的记录需要写入输出文件A-OUT.TXT。是否有任何内置功能可支持此功能?

1 个答案:

答案 0 :(得分:0)

Apache Beam(Google Cloud Dataflow使用的SDK)提供了许多用于处理文件的转换。例如,

  • TextIO:读取文本文件并产生PCollction条文本行。
  • AvroIO:读取Avro文件并产生PCollection条记录。
  • FileIO:许多用于读取和写入文件的有用转换。

数据流通过(1)在读取之前将初始分割成多个逻辑块来并行读取这些文件,(2)在读取时进行动态工作重新平衡以处理散乱者。 有关动态工作平衡的更多详细信息,请参见here

TextIOAvroIO等当前不跟踪输入文件。因此,可能您必须使用FIleIO提供的转换(例如FileIO.match()后跟FileIO.readMatches())并从ParDO读取数据并生成PCollection包含记录以及文件名。可以使用dynamic destination feature offered by FileIO将这些文件写入相应的文件。