编写没有接收器的管道应该没有任何问题。实际上,接收器是ParDo
流式传输的一种。
我建议您使用自定义ParDo
并将BigQuery API与自定义逻辑一起使用。这是BigQuerySink的定义,您可以使用此代码作为起点。
您可以定义类似于StreamingWriteFn的自己的DoFn来添加自定义ParDo逻辑,该逻辑将写入适当的BigQuery数据集/表。
请注意,这是使用Reshuffle而不是GroupByKey
。我建议您使用Reshuffle,它也会按键分组,但避免不必要的窗口延迟。在这种情况下,这意味着元素应在输入时立即写出,而无需额外的缓冲/延迟。此外,这使您可以在运行时确定BQ表名称。
编辑:我不建议使用内置的BigQuerySink写入不同的表。建议您在自定义DoFn中使用BigQuery API,而不要使用BigQuerySink
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句