java - 云数据流: change bigquery destination on the fly

标签 java google-cloud-dataflow apache-beam

我正在使用 DataFlow 管道将数据从物联网设备(通过 PubSub 订阅)流式传输到 BigQuery。我正在寻找一种方法,将数据从给定设备动态定向到我可以即时指定的 BigQuery 数据集。这是一种典型情况:用户决定“我想开始将数据从物联网设备 A 流式传输到 BigQuery 数据集 5”,然后又决定“现在我想开始将数据从物联网设备 A 流式传输到 BigQuery 数据集 7”。

我正在寻找一种无需更新设备配置或重新启动数据流作业即可完成此操作的方法。这可能吗?如果没有,最好的方法是什么?

最佳答案

使用DynamicDestinations应该可以实现。这使您能够决定每个元素应存储在哪里。 如果您无法根据要存储的元素直接推导 BigQuery 数据集,则可以将其与设备配置结合起来,或者在 DynamicDestinations 实现中创建一些查找机制。

请查看文档,其中还提供了示例。 https://beam.apache.org/releases/javadoc/2.13.0/org/apache/beam/sdk/io/gcp/bigquery/DynamicDestinations.html

关于java - 云数据流: change bigquery destination on the fly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56820646/

相关文章:

java - Python 代码的运行速度比 Java 慢 20 倍。有没有办法加速Python?

java - 什么相当于 String... 在 Scala 中

python - 带有 DirectRunner (SUBPROCESS_SDK) 的 Apache Beam 只使用一个工作人员,我如何强制它使用所有可用的工作人员?

java - 如何将自定义 CombineFn 与 Combine.GroupedValues 一起使用?

JavaFX Action 事件语句执行顺序

java - 奇数舍入逻辑

java - 使用 Aggregator 测试 Metrics.Counter 值的方法

google-cloud-platform - BigQueryIO - 流和 FILE_LOADS 的写入性能

google-cloud-dataflow - 使用状态和定时器进行处理

google-cloud-platform - 为什么使用 Dataflow 写入 Bigquery 非常慢?