2017-03-16 89 views
2

在数据流中,我需要将开始日期和结束日期作为运行时参数,并查询该日期范围的bigquery并将输出写入日期明确的文件夹。Google Dataflow:使用运行时参数创建模板

当我们使用ValueProvider时,getStartDate()。get()方法抛出java.lang.RuntimeException:未从运行时上下文中调用。如果我在getStartDate()。get()。isAccessible()为false时硬编码了某个值,则正在生成模板,但运行时参数未反映在作业中。它在创建模板期间始终以硬编码值运行。

有什么建议吗?

回答

3

BigQueryIO需要查询的ValueProvider。最简单的方法是将查询文本作为运行时间值传递。

NestedValueProvider可以帮助您从另一个值提供程序创建查询字符串,唉,NestedValueProvider一次只支持一个输入ValueProvider。因此,您可以将开始日期和结束日期连接成单个值,然后进行拆分。

+0

非常感谢! NestedValueProvider非常有帮助。 – rhg

+2

我认为这将是非常有用的,如果Google的数据流模板的文档解释如何以及何时使用RuntimeValueProvider,NestedValueProvider和StaticValueProvider等一些例子。 – rhg

相关问题