【问题标题】:Apache Beam Options from property file属性文件中的 Apache Beam 选项
【发布时间】:2017-11-27 08:12:12
【问题描述】:

我将 Apache Beam 管道作为数据流模板成功运行。但是,我有一个选项类(它扩展了 DataflowPipelineOptions)。生成模板时,此类从 pom 或命令行界面获取参数。 我想知道是否存在某个类,以便我可以直接从属性文件加载这些参数。这样从一个环境切换到另一个环境会更容易,而且会更干净

【问题讨论】:

    标签: google-cloud-dataflow options apache-beam


    【解决方案1】:

    我不确定我是否理解您的问题。我想您是在问是否有办法将默认模板参数绑定到资源文件提供的值,而不是命令行或pom.xml 文件提供的值。

    指定为PipelineOptions 的参数可以使用@Default.InstanceFactory 进行注释,以指定用户提供的工厂方法来为参数生成默认值。这样,您可以从 DefaultValueFactory 实现中的资源文件中读取默认值。

    举个例子,看看WindowedWordCount是如何定义DefaultToCurrentSystemTime一个注解minTimestampMillis参数的:

    /** A {@link DefaultValueFactory} that returns the current system time. */
    public static class DefaultToCurrentSystemTime implements DefaultValueFactory<Long> {
      @Override
      public Long create(PipelineOptions options) {
        return System.currentTimeMillis();
      }
    }
    
    @Description("Minimum randomly assigned timestamp, in milliseconds-since-epoch")
    @Default.InstanceFactory(DefaultToCurrentSystemTime.class)
    Long getMinTimestampMillis();
    void setMinTimestampMillis(Long value);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多