【发布时间】:2019-01-31 19:47:22
【问题描述】:
如果数据以各种文件格式出现在一个对象存储桶中。这应该用一个管道处理吗?最佳做法是什么?
【问题讨论】:
标签: pipeline apache-beam
如果数据以各种文件格式出现在一个对象存储桶中。这应该用一个管道处理吗?最佳做法是什么?
【问题讨论】:
标签: pipeline apache-beam
这取决于您的要求是否包括来自不同格式的连接/合并数据。
假设您有多个来源,并且每个来源都读取文件格式的数据。然后你想做一个扁平化来合并你的 PCollection 和聚合,你必须有一个管道。
也可以勾选[1]、[2]、[3]。
有 [4] 显示了 BeamSQL 如何从文本文件转换为行。
[1]https://beam.apache.org/documentation/pipelines/design-your-pipeline/#multiple-sources [2]https://github.com/apache/beam/blob/master/sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/Schema.java [3]https://github.com/apache/beam/blob/master/sdks/java/core/src/main/java/org/apache/beam/sdk/values/Row.java [4]https://github.com/apache/beam/blob/master/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/meta/provider/text/TextTable.java#L68
【讨论】:
PCollection 中,可能会更容易。在这种情况下,我可能会有一个ParDo 将所有元素解析为一种通用格式。但是,如果您只是一个接一个地转换元素,那么从 Beam 的角度来看,这并不重要,但是如果在这种情况下(或没有)有多个源,则可能更容易获得更好的并行性。