如果我们的类路径中有2.2.0,那么我的管道使用哪个版本的SDK?

时间:2018-03-09 16:35:03

标签: google-cloud-dataflow

beam-sdks-java-core的最新版本是2.3.0。但是,如果我的管道代码使用beam-sdks-java-core 2.2.0,那么我的管道在数据流中运行时会使用2.2.0或2.3.0吗?

2 个答案:

答案 0 :(得分:1)

管道将使用v2.2.0实现。 Apache Beam SDK与Google Cloud Dataflow分开。您可以控制使用的Beam版本。 Dataflow简单地执行Beam管道。 Dataflow UI显示正在使用的Beam版本。

答案 1 :(得分:1)

将这个答案作为@Andrew答案的补充。

如果您使用的是Maven,您还可以在管道的beam-sdks-java-core配置文件中指定正在使用的pom.xml版本,如Apache Beam documentation中所述:

<dependency>
  <groupId>org.apache.beam</groupId>
  <artifactId>beam-sdks-java-core</artifactId>
  <version>2.2.0</version>
</dependency>

为了指定您要使用的版本,您可以按照Maven's version range specification上的指南进行操作。

您还可以在this other link中看到可用的Maven依赖项的完整列表,如您所见,对于Cloud Sataflow SDK jor Java 2.2.0,org.apache.beam <--> beam-sdks-java-core <--> 2.2.0是可用选项之一。 / p>

如果您没有使用Maven,那么在任何情况下,Pipeline都应该使用您在工作目录中指定的依赖关系,因为它将从那里获取所需的文件以使用SDK。