Google 数据流:使用运行时参数创建模板
Google Dataflow: create templates with runtime parameters
在数据流中,我需要将开始日期和结束日期作为运行时参数传递,并查询该日期范围的 bigquery,并将输出写入日期明智的文件夹。
当我们使用 ValueProvider 时,getStartDate().get() 方法抛出 java.lang.RuntimeException:不是从运行时上下文中调用。如果我在 getStartDate().get().isAccessible() 为 false 时对某些值进行硬编码,则会生成模板,但运行时参数不会反映在作业中。它始终是 运行 模板创建期间的硬编码值。
有什么建议吗?
BigQueryIO
接受查询的 ValueProvider
。最简单的方法是将查询文本作为运行时值传递。
NestedValueProvider
可以帮助您从另一个值提供程序创建查询字符串,唉,NestedValueProvider
一次只支持一个输入 ValueProvider
。因此,您可以将开始日期和结束日期连接成一个值,然后进行拆分。
在数据流中,我需要将开始日期和结束日期作为运行时参数传递,并查询该日期范围的 bigquery,并将输出写入日期明智的文件夹。
当我们使用 ValueProvider 时,getStartDate().get() 方法抛出 java.lang.RuntimeException:不是从运行时上下文中调用。如果我在 getStartDate().get().isAccessible() 为 false 时对某些值进行硬编码,则会生成模板,但运行时参数不会反映在作业中。它始终是 运行 模板创建期间的硬编码值。
有什么建议吗?
BigQueryIO
接受查询的 ValueProvider
。最简单的方法是将查询文本作为运行时值传递。
NestedValueProvider
可以帮助您从另一个值提供程序创建查询字符串,唉,NestedValueProvider
一次只支持一个输入 ValueProvider
。因此,您可以将开始日期和结束日期连接成一个值,然后进行拆分。