2017-03-16 14 views
2

データフローでは、開始日と終了日をランタイム引数として渡し、その期間のbigqueryをクエリし、出力を日中のフォルダに書き込む必要があります。Google Dataflow:ランタイムパラメータ付きテンプレートを作成

ValueProviderを使用する場合、getStartDate()。get()メソッドはjava.lang.RuntimeExceptionをスローしています。ランタイムコンテキストからは呼び出されません。 getStartDate()。get()。isAccessible()がfalseの場合、テンプレートが生成されていますが、ランタイム引数がジョブに反映されていません。テンプレートの作成中は常にハードコーディングされた値で実行されます。

提案がありますか?

答えて

3

BigQueryIOは、クエリのValueProviderをとります。これを行う最も簡単な方法は、クエリテキストをランタイム値として渡すことです。

NestedValueProviderは、別の値プロバイダからクエリ文字列を作成するのに役立ちます。また、NestedValueProviderは一度に1つの入力ValueProviderをサポートしています。そのため、開始日と終了日を1つの値に連結して分割することができます。

+0

ありがとうございます! NestedValueProviderは非常に役に立ちます。 – rhg

+2

データフローテンプレートに関するGoogleのドキュメントで、RuntimeValueProvider、NestedValueProvider、StaticValueProviderなどを使用する方法と方法について、いくつかの例で説明すれば、非常に役に立ちます。 – rhg

関連する問題