繁体   English   中英

Google Cloud Dataflow消耗外部资源

[英]Google Cloud Dataflow consume external source

因此,我对数据流背后的概念有些疑问。 特别是关于管道的构造方式。

我正在尝试使用一个外部API,该API提供了索引XML文件以及指向单独XML文件的链接。 一旦有了所有XML文件的内容,就需要将它们拆分成单独的PCollection,以便可以完成其他PTransforms。

在可以下载和读取产品XML之前,必须先下载并读取第一个xml文件这一事实令人难以理解。 正如文档所述,管道以Source开头,以Sink结尾。

所以我的问题是:

  • Dataflow甚至是执行此类任务的正确工具吗?
  • 自定义源是要合并整个过程,还是应该在单独的步骤/管道中完成?
  • 是否可以在管道中处理此问题并让另一个管道读取文件?
  • 此过程的高级概述如何?

注意事项:我正在为此使用Python SDK,但这可能并不相关,因为这更多是架构问题。

是的,这绝对可以做到。 现在,刚开始时有点笨拙,但是即将在名为SplittableDoFn的新原语上进行的工作将使这种模式在将来更加容易。

  1. 首先使用Create创建一个具有单个元素的虚拟PCollection。
  2. 使用DoFn处理该PCollection,该DoFn下载文件,读取子文件并发出子文件。
  3. [可选]此时,您可能希望并行进行工作。 为了使系统易于并行化,您需要执行一个语义上不必要的GroupByKey,然后执行ParDo来“撤消”分组。 这会将这些文件名具体化到临时存储中,从而使系统可以让不同的工作人员处理每个元素。
  4. 通过读取每个子文件的内容来处理每个子文件,并将其发送到PCollections中。 如果要对不同的文件内容进行不同的处理,请使用“分区”将它们分类到不同的PCollection中。
  5. 做相关处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM