如何从 BigQuery 作为流读取

Posted

技术标签:

【中文标题】如何从 BigQuery 作为流读取【英文标题】:How to read from BigQuery as a stream 【发布时间】:2017-07-20 13:03:03 【问题描述】:

我正在使用 Java + Apache Beam SDK for Java 2.0.1-SNAPSHOT

场景:

从 BigQuery(BQ) 中读取数据 -> 数据流中的 ETL 过程 -> 将数据写入 BQ 表中

问题是管道在 BQ 中执行插入之前尝试处理所有数据。

在这种情况下有没有办法执行流插入?我已经尝试在从 BQ 提取时为元素设置 时间戳,但它没有没用。

或者是否可以设置 BatchLoads 使其不时插入大量数据?

【问题讨论】:

你能解释一下你为什么要这样做吗?是否只是通过让一些处理与一些写入同时运行来使管道更快地完成,还是有其他原因? 【参考方案1】:

我会看看this link to Googles Solution。话虽如此,BigQuery 听起来像是被视为有界源,但这不应该成为将数据下沉到数据流中的问题,请参阅here。

【讨论】:

以上是关于如何从 BigQuery 作为流读取的主要内容,如果未能解决你的问题,请参考以下文章

Dataproc + BigQuery 示例 - 有可用的吗?

使用 Apache Beam 向 BigQuery 传播插入时如何指定 insertId

Python BigQuery 存储。并行读取多个流

Google Cloud Dataproc 删除 BigQuery 表不起作用

AppEngine BigQuery PHP 库在运行时不隐含?

如何通过 Java 程序获取 Bigquery 表的架构?