Google Dataflow:使用运行时参数创建模板

时间:2017-03-16 19:45:11

标签: google-cloud-platform google-cloud-dataflow

在数据流中,我需要将开始日期和结束日期作为运行时参数传递,并查询该日期范围的bigquery并将输出写入日间文件夹。

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

有什么建议吗?

1 个答案:

答案 0 :(得分:4)

BigQueryIO获取ValueProvider个查询。最简单的方法是将查询文本作为运行时值传递。

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