如何在使用 apache beam 编写的流式管道中读取 bigquery

问题描述 投票:0回答:1

我想运行一个从 Google bigquery 表中连续读取的流管道。现在,我的流管道在从 bigquery 表读取一次后停止。 apache beam documentation 似乎没有提到它。

请帮忙

设计是

我有一个包含用户列表的基表(用户名、ID、出生日期等信息)。该表每 12 小时修改一次。我想运行一个管道,该管道将此表作为输入并查找唯一用户的总数。因此,我没有在整个基表上每 12 小时运行一次批处理管道,而是想到了一个不断从基表读取数据的流式管道,它有一个全局窗口,并且每 12 小时重复触发一次,以输出唯一用户数

google-bigquery google-cloud-dataflow apache-beam
1个回答
0
投票

不幸的是,从今天开始,您无法

stream
本地BigQuery表(使用beam SDK)。 当连接器 page 表示 BigQueryIO
 与流媒体兼容时,这意味着接收数据,而不是获取数据。我以前遇到过这个问题(beam SDK 文档没有那么有意义)。

您可以使用一些技巧来实现相同的行为。其中之一是使用

PeriodicImpulse

第二个选项是,如前所述,使用 PubSub 启动管道,然后使用常规

DoFn

 来获取 BigQuery 中的数据。

对于这两种情况,您只能阅读

APPENDS

这取决于您的场景。不过,我倾向于选择第一个选项。

© www.soinside.com 2019 - 2024. All rights reserved.