google-cloud-dataflow

Dataflowのパラメータ指定可能なテンプレートを作成する」の記事中で触れなかった「Dataflowで実行パラメータを指定する方法」について、パイプラインの実行パラメータを指定する | Cloud Dataflowを参考にご紹介いたします。

以下の例では、実行時に --myCustomOption を指定できるようにする場合を説明します。

1. Optionインターフェイスを作成

public interface MyOptions extends PipelineOptions {
    @Description("My custom command line argument.")
    @Default.String("D-FAULT")
    String getMyCustomOption();
    void setMyCustomOption(String myCustomOption);
}

アノテーションを加えることで、--helpで表示される説明文とデフォルトの値を設定することができます。
説明文を有効化するには、オプションオブジェクトを作成する前に、オプションインターフェースを登録する必要があります。

2. Optionオブジェクトの作成

オプションインターフェイスを登録するにはPipelineOptionsFactory.register()を利用します。
コード例を以下示します。

// オプションインターフェースを登録
PipelineOptionsFactory.register(MyOptions.class);
// オプションオブジェクトの作成
MyOptions options = PipelineOptionsFactory.fromArgs(args)
                                                .withValidation()
                                                .as(MyOptions.class);
// オプションを指定してパイプラインを作成
Pipeline p = Pipeline.create(options);