需要设置Google Dataflow管道来处理文件(读取,转换和写入),然后将输出写入另一个文件。简而言之,该过程是“读取”>“分析”>“转换”>“写入”。是否可以并行执行此操作?如何根据文件对记录进行分组?例如:来自输入文件A-IN.TXT的记录需要写入输出文件A-OUT.TXT。是否有任何内置功能可支持此功能?
答案 0 :(得分:0)
Apache Beam(Google Cloud Dataflow使用的SDK)提供了许多用于处理文件的转换。例如,
数据流通过(1)在读取之前将初始分割成多个逻辑块来并行读取这些文件,(2)在读取时进行动态工作重新平衡以处理散乱者。 有关动态工作平衡的更多详细信息,请参见here。
TextIO
,AvroIO
等当前不跟踪输入文件。因此,可能您必须使用FIleIO
提供的转换(例如FileIO.match()
后跟FileIO.readMatches()
)并从ParDO
读取数据并生成PCollection
包含记录以及文件名。可以使用dynamic destination feature offered by FileIO
将这些文件写入相应的文件。